2

有没有办法将数据从 Azure Blob 批量加载到 SQL Server?我正在通过 Azure 存储资源管理器访问这些文件。我很确定它可以完成,但我收到一条错误消息,提示“无法打开文件”。这是我的代码。

DECLARE @cmd varchar(1000)
SET @cmd = 'BULK INSERT [dbo].[dest_table]
FROM ''alldata/2019/06/29/BB/dds_id.out.20190629.gz''
WITH (      FIELDTERMINATOR = ''\n'',
            FIRSTROW = 46,
            ROWTERMINATOR = '''+CHAR(10)+''')';
PRINT @cmd
EXEC(@cmd)

该文件以 .gz 结尾,因此已压缩。我认为这就是问题所在。有人可以确认。更重要的是,是否有解决方法?我只有 SQL Server;无法访问 SSIS。

4

1 回答 1

0

压缩文件不是数据文件。

文档BULK INSERT (Transact-SQL)

在 SQL Server 中以用户指定的格式将数据文件导入数据库表或视图。

参数 data_file :

是包含要导入指定表或视图的数据的数据文件的完整路径。BULK INSERT 可以从磁盘(包括网络、软盘、硬盘等)导入数据。

一种方法是先解压缩 .gz 文件,然后使用 BULK INSERT 将数据文件加载到 SQL 服务器。

还有另一种方法可以使用 Azure 数据工厂进行尝试。数据工厂可以帮助您在数据集设置中解压 .gz 文件: 在此处输入图像描述

参考本教程:使用 Azure 数据工厂将数据从 Azure Blob 存储复制到 SQL 数据库

希望这可以帮助。

于 2019-09-05T02:49:41.433 回答