我的问题陈述是我有一个csv blob,我需要将该blob导入到sql表中。这样做有用吗?
我在想一种方法,首先使用AzCopy实用程序将blob复制到内部部署的sql server,然后使用bcp实用程序在sql表中导入该文件。这是正确的方法吗?我正在寻找将blob复制到sql表的一步解决方案。
答案 0 :(得分:1)
关于有关将blob存储中的数据导入SQL Server的实用程序的可用性的问题,AFAIK没有。你需要写一个。
你的方法对我来说似乎没问题。虽然您可能想要编写批处理文件或类似的东西来自动化整个过程。在此批处理文件中,您首先要在计算机上下载该文件,然后运行BCP实用程序以在SQL Server中导入CSV。编写批处理文件的其他替代方法是:
答案 1 :(得分:0)
要将blob文件拉入Azure SQL Server,您可以使用此示例语法(这实际上有效,我使用它):
BULK INSERT MyTable
FROM 'container/folder/folder/file'
WITH ( DATA_SOURCE = 'ds_blob',BATCHSIZE=10000,FIRSTROW=2);
MyTable
必须具有相同的列(或者它可以是针对产生相同列的表的视图)ds_blob
是需要事先创建的外部数据源(https://docs.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql)这个方法唯一的缺点是你必须事先知道文件名 - 没有办法从SQL Server内部枚举它们。
我通过在Azure Automation中运行powershell来解决这个问题,它会枚举blobds并事先将它们写入队列表