将blob数据复制到内部部署的sql表中

时间:2014-10-25 22:38:31

标签: sql azure blob

我的问题陈述是我有一个csv blob,我需要将该blob导入到sql表中。这样做有用吗?

我在想一种方法,首先使用AzCopy实用程序将blob复制到内部部署的sql server,然后使用bcp实用程序在sql表中导入该文件。这是正确的方法吗?我正在寻找将blob复制到sql表的一步解决方案。

2 个答案:

答案 0 :(得分:1)

关于有关将blob存储中的数据导入SQL Server的实用程序的可用性的问题,AFAIK没有。你需要写一个。

你的方法对我来说似乎没问题。虽然您可能想要编写批处理文件或类似的东西来自动化整个过程。在此批处理文件中,您首先要在计算机上下载该文件,然后运行BCP实用程序以在SQL Server中导入CSV。编写批处理文件的其他替代方法是:

  1. 在PowerShell中完全做这件事。
  2. 编写一些C#代码,利用存储客户端库下载blob,下载blob后,在代码中启动BCP流程。

答案 1 :(得分:0)

要将blob文件拉入Azure SQL Server,您可以使用此示例语法(这实际上有效,我使用它):

BULK INSERT MyTable 
FROM 'container/folder/folder/file' 
WITH ( DATA_SOURCE = 'ds_blob',BATCHSIZE=10000,FIRSTROW=2);

这个方法唯一的缺点是你必须事先知道文件名 - 没有办法从SQL Server内部枚举它们。

我通过在Azure Automation中运行powershell来解决这个问题,它会枚举blobds并事先将它们写入队列表