如何使用Azure数据工厂将数据库查询的结果拆分为多个blob文件以供雪花摄取?

问题描述 投票:1回答:1

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

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

我们已经尝试将Azure Blob Tables作为临时区域接收器,但它们的数据类型有限,与我们的源数据类型相冲突。我们的来源多种多样,并且是本地的:Oracle,MySql和SQL Server(到目前为止)。我们查看了ADF中的新数据流,但它们处于预览状态,仅适用于Azure SQL源。

有没有办法在ADF中对您的写入进行分页?

谢谢!

azure-storage-blobs azure-data-factory snowflake
1个回答
0
投票

有一个替代数据工厂。 Matilion有一款专为Snowflake打造的产品,拥有Data Factory的大部分连接器和功能。您可以在Azure Marketplace中找到“Matilion ETL for Snowflake”(Azure门户中的“创建资源”)。

© www.soinside.com 2019 - 2024. All rights reserved.