【问题标题】:copy blob data into on-premise sql table将 blob 数据复制到本地 sql 表中
【发布时间】:2014-12-21 11:26:02
【问题描述】:

我的问题陈述是我有一个 csv blob,我需要将该 blob 导入到一个 sql 表中。有没有一个实用程序可以做到这一点?

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

【问题讨论】:

  • SQL Server 是本地还是 Azure?我目前使用 BULK INSERT 将 blob 导入到 Azure SQL 数据库的表中。设置完成后,您可以使用此语法将制表符分隔的 blob 插入表中:BULK INSERT MyTable FROM 'container/folder/folder/file' WITH ( DATA_SOURCE = 'ds_blob',BATCHSIZE=10000,FIRSTROW=2);

标签: sql azure blob


【解决方案1】:

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

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

  1. 完全在 PowerShell 中完成这项工作。
  2. 编写一些 C# 代码,利用存储客户端库下载 blob,下载 blob 后,在代码中启动 BCP 进程。

【讨论】:

    【解决方案2】:

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

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

    此方法的唯一缺点是您必须事先知道文件名 - 无法从 SQL Server 内部枚举它们。

    我通过在 Azure 自动化中运行 powershell 来解决这个问题,它会枚举 blobd 并将它们预先写入队列表

    【讨论】:

      猜你喜欢
      • 2019-02-24
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2022-01-24
      • 2020-04-25
      • 2019-01-23
      • 1970-01-01
      • 2019-04-03
      相关资源
      最近更新 更多