代码之家  ›  专栏  ›  技术社区  ›  ASH

在SQL Server中,从blob中提取数据并将其加载到表中的最简单方法是什么?

  •  1
  • ASH  · 技术社区  · 6 年前

    我有数百个压缩文件放在不同的文件夹中,我可以使用MS Storage Explorer访问这些文件。我刚刚在Azure中安装了一个SQL Server数据库。现在我正试图弄清楚如何从每个文件夹中的每个文件中提取数据,解压、解析并加载到表中。数据每天都有,所以文件夹被命名为“1”、“2”、“3”等“31”,表示一个月中的几天。此外,我还有一年中12个月的每月文件夹“1”到“12”。最后,我有了名为“2017”、“2018”和“2019”的文件夹。我可以让团队中的一些人编写Python代码来完成这项工作,但似乎应该有一种更简单的方法。如果有更简单的方法来做这类事情,我希望避免编写数千行Python代码。蒂娅。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Adam Marczak    6 年前

    我会创建Azure Logic应用程序

    1. HTTP触发器(将手动运行)
    2. 遍历存储帐户上存在的所有Blob
    3. 对于每个元素,使用blob connector,它有一个名为Extract archive的操作,可以将压缩文件解压缩到blob中
    4. 使用Azure SQL BCP获取此数据,如果这与CSV格式不同,则使用Azure数据工厂

    稍后,如果您希望有新的blob,除了使用新的或修改过的blob触发器外,还会执行类似的流程。

    对于带有逻辑应用程序的BLOB示例中的Azure SQL BCP,请查看本文 https://marczak.io/posts/azure-loading-csv-to-sql/

    如果你想了解Azure Logic应用的一般介绍,请查看此视频 https://youtu.be/ZvsOzji_8ow 这里还有一个新的blob触发器演示。

    如果您需要数据工厂,请随时查看此视频。它还有blob到sql的演示。你也可以从逻辑应用程序中触发数据工厂。 https://youtu.be/EpDkxTHAhOs