azure-blob-storage - 如何使用 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 中的文章进行分页吗?
谢谢!
解决方案
数据工厂有一个替代方案。Mutilion 有一款专为 Snowflake 打造的产品,具有数据工厂的大部分连接器和功能。您可以在 Azure 市场中找到“雪花的 Matilion ETL”(Azure 门户中的“创建资源”)。
推荐阅读
- deployment - Netlify 部署命令失败,退出代码为 254:npm run build-studio && cp studio/netlify.toml studio/dist
- android-studio - 运行此 AVD 需要 Intel HAXM。未安装 HAXM。安装 Intel HAXM 以获得更好的仿真性能
- javascript - 通过 Node.js 比较 PostgreSQL 中的日期不起作用
- javascript - 根据最高数字突出显示 div
- reactjs - 如何在 React 前端显示来自我的 express 服务器的数据?
- reactjs - 即使在实施后端快速代理设置后也出现 CORS 策略错误
- python - TypeError:import_optional_dependency() 得到了一个意外的关键字参数“错误”
- postgresql - 如何在postgresql中将三个不同的表组合成一个json响应
- python - 在opencv中计算移动物体上的乘客
- docker - 通过同一端口 80 上的 Nginx 网关的多个 Flask 应用程序 api 给出 502 错误