此项目包含通用的传输操作符,可以将源数据集中可以读取的所有数据传输到目标数据集中。从DAG作者的角度来看,所有传输都将通过仅调用通用传输操作符来完成。
项目描述
通用传输操作符
轻松进行传输
通用传输操作符 简化了用户使用 Apache Airflow 在源和目标之间传输数据的方式。它提供了一个一致的通用接口,改善了用户体验,因此用户不需要显式使用特定的提供者或操作符。
目前,它支持在 文件位置 和 数据库(双向)之间以及跨数据库的传输。
此项目由 Astronomer 维护。
安装
pip install apache-airflow-provider-transfers
示例DAG
查看example_dags文件夹,了解如何使用UniversalTransfeOperator的示例。
通用传输操作符的工作原理
使用通用传输操作符,用户可以使用以下传输模式进行数据传输
- 非原生
- 原生
- 第三方
非原生传输
非本地传输依赖于通过Airflow工作节点传输数据。在可能的情况下,会应用分块处理。这种方法可能适用于小于2GB的数据集,具体取决于源和目标。此方法的表现高度依赖于工作节点的内存、磁盘、处理器和网络配置。
内部步骤包括
- 从数据集存储中分块检索数据集数据到工作节点。
- 从工作节点向云数据集发送数据。
以下是一个在Google云存储和Sqlite之间进行非本地传输的示例
通过使用本地传输改进瓶颈
使用非本地传输方法的替代方法是本地方法。本地传输依赖于数据源或数据目标提供商提供的机制和工具。例如,从对象存储迁移到Snowflake数据库时,本地传输包括使用内置的COPY INTO
命令。当从S3加载数据到BigQuery时,通用传输操作员使用GCP存储传输服务。
本地传输的优点是,对于更大的数据集(2GB)来说,它们可能会表现得更好,并且不依赖于Airflow工作节点的硬件配置。使用这种方法,Airflow工作节点用作协调器,不执行传输。速度完全取决于所使用的服务和源与目标之间的带宽。
步骤
- 请求目标数据集从源数据集摄取数据。
- 目标数据集请求源数据集的数据。
注意:本地方法的实现正在进行中,将在未来的版本中提供。
使用第三方工具进行传输
通用传输操作员还可以提供一个类似于Fivetran的通用第三方数据传输服务的接口。
以下是如何使用Fivetran进行传输的示例
支持的技术
-
支持的数据库
-
支持的文件存储
文档
文档正在编写中--我们旨在遵循Diátaxis系统。
变更日志
通用传输操作员遵循语义版本控制进行发布。请查看变更日志以获取最新更改。
发布管理
有关我们的发布理念和步骤的更多信息,请参阅发布管理。
贡献指南
欢迎所有贡献、错误报告、错误修复、文档改进、增强功能和想法。
阅读贡献指南以获取贡献的详细概述。
贡献者和维护者应遵守贡献者行为准则。
许可证
项目详情
apache-airflow-provider-transfers-0.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7b949719d371ff06996fd450073ee62c17687601a063cbfd955f595c127c662f |
|
MD5 | 8a92ac4e3bdbf1d4e4ddf77e303761af |
|
BLAKE2b-256 | e575a351df3dec0b824113fd0fd201e16b1bacd552ad45a4c220957d86071e60 |
apache_airflow_provider_transfers-0.1.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 97eee03c6fbadffe68c24956dee260311c5608affbb48c96c16475263dba3deb |
|
MD5 | c3623e1ae8739e3ac6b175f1484cf08b |
|
BLAKE2b-256 | 1e257d869d65840fd3e5edb31b3fa97252db01f00b4c452d841266c8ba372c1b |