首页 > 解决方案 > 如何使用 Azure 数据工厂将数据库查询的结果拆分为多个 blob 文件以进行雪花提取?

问题描述

我们使用 ADF 的复制功能将单个文件从数据库表中提取到单个 blob 文件中。我们经常有 8-12 GB 的文件,有时会有更大的文件。加载到 Snowflake 时,Snowflake 加载似乎每个文件使用 1 个线程 - 这意味着加载单个文件可能需要一个多小时。相比之下,当我们从一个 API 源查看 9 GB 的 blob 并迫使我们分页(导致数百个大约 50 MB 的文件)时,由于并行处理,我们看到加载时间约为 2 分钟。

我们真正想做的是: 1. 执行完全提取,以便加载所有数据(我们研究了分区,但看起来每次运行都会多次命中表 - 我们希望所有数据在特定时间并且不希望数据在运行之间发生变化)。2. 从该提取中写入多个文件,最好按文件大小 - 但如果我们可以选择记录的数量,我们可以使用试错法来确定我们正在寻找的文件大小。

我们已尝试将 Azure Blob 表用作暂存区接收器,但它们的数据类型有限,与我们的源数据类型冲突。我们的资源是多种多样的,并且是本地的:Oracle、MySql 和 SQL Server(到目前为止)。我们查看了 ADF 中的新数据流,但它们是预览版,仅适用于 Azure SQL 源。

有什么方法可以对您在 ADF 中的文章进行分页吗?

谢谢!

标签: azure-blob-storageazure-data-factorysnowflake-cloud-data-platform

解决方案


数据工厂有一个替代方案。Mutilion 有一款专为 Snowflake 打造的产品,具有数据工厂的大部分连接器和功能。您可以在 Azure 市场中找到“雪花的 Matilion ETL”(Azure 门户中的“创建资源”)。


推荐阅读