Artie Transfer是一个用于数据库和数据仓库/数据湖的实时数据复制解决方案。
典型的ETL解决方案依赖于批处理或调度程序(例如DAG、Airflow),这意味着下游数据仓库中的数据通常已经有几个小时到几天的延迟。随着数据量的增长,这个问题会变得更加严重,因为批处理过程需要更长的时间来运行。
Artie利用变更数据捕获(CDC)和流处理以更高效的方式执行数据同步,从而实现亚分钟级的延迟。
Artie Transfer的优势:
- 亚分钟级数据延迟:始终可以访问实时生产数据。
- 易于使用:只需设置一个简单的配置文件即可开始使用!
- 自动表创建和架构检测:Artie推断架构并自动将更改合并到下游目标。
- 可靠性:Artie具有自动重试功能,处理过程是幂等的。
- 可扩展性:可处理从1GB到100+TB的数据。
- 监控:内置错误报告以及丰富的遥测统计数据。
查看此指南以开始使用!
架构
前提条件
如上面的架构图所示,Artie Transfer是一个Kafka消费者,并期望CDC消息采用特定格式。
最佳设置如下:
- 根据源使用Debezium或Artie Reader
- Kafka
- 每个表一个Kafka主题,以便可以根据吞吐量调整分区数。
- 分区键应为表的主键,以避免行级别的无序写入。
请查看支持的部分了解支持的源和目标。
示例
要在本地运行Artie Transfer的堆栈,请参考示例文件夹。
入门
目前支持哪些功能?
Transfer旨在为所有OLTP和OLAP数据库提供覆盖。目前Transfer支持:
-
消息队列
- Kafka(默认)
- Google Pub/Sub
-
目标:
- BigQuery
- Microsoft SQL Server
- Redshift
- S3
- Snowflake
-
源:
- DocumentDB
- DynamoDB
- Microsoft SQL Server
- MongoDB
- MySQL
- PostgreSQL
如果您使用的数据库不在列表中,请随时提交功能请求。
配置文件
遥测
测试
Transfer使用Go编写,并使用counterfeiter进行模拟。 要运行测试,请执行以下命令:
make generate
make test
发布
Artie Transfer通过GoReleaser发布,我们使用它在releases和我们的Dockerhub上交叉编译二进制文件。如果您的操作系统或架构不受支持,请提交功能请求!
许可证
Artie Transfer采用ELv2许可。请查看LICENSE文件以获取更多信息。如果您有任何许可问题,请发送电子邮件至hi@artie.com。