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

时间:2019-02-28 15:37:01

标签: azure-storage-blobs azure-data-factory snowflake

我们已经使用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中对您的文章进行分页?

谢谢!

1 个答案:

答案 0 :(得分:0)

Data Factory可以替代。 Matilion的一种产品是专门为Snowflake构建的,具有Data Factory的大多数连接器和功能。 您可以在Azure市场中找到“雪花的Matilion ETL”(在Azure门户中找到“创建资源”)。