如何构建将多个源的连续数据同步到单个数据接收器的服务

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

我正在设计一个服务来持续从多个来源提取数据(例如 mysql/postgres 表、雪花数据库、redshift 等),进行一些转换(简单的字段映射)并将数据保存到我的系统中。

要求:

  • 每次同步应仅从一个源提取数据(例如:特定表)。像这样的多个同步应该并行运行。
  • 每次同步需要定期安排(比如每 x 分钟)
  • 需要某种 CDC 机制,以便每次同步中提取/处理的数据最少
  • 系统应该是基于Java的

我想到使用 AWS Glue 来实现此目的:

  • 为每个数据源创建一个基于Python的ETL作业(每个数据库表1个作业)
  • 运行一个包含所有 java 代码的 jar 文件,通过作业脚本提取数据并保存在我的系统中(类似这样

但是 Glue 似乎有一些缺点,不符合我的要求:

  • 没有原生 Java 支持(通过 python 运行 jar 似乎是一种 hack)
  • 为我的用例触发 Spark 作业听起来有点矫枉过正(我以前从未使用过 Spark,所以如果我错了请纠正我)
  • 不知道从 jar 内部推送的日志如何进行日志记录/警报监控

我愿意使用托管服务的任意组合来构建此项目。希望得到任何建议/指示。

提前致谢!

java amazon-web-services apache-spark etl aws-glue
1个回答
0
投票

为每个数据源创建一个基于Python的ETL作业(每个数据库表1个作业)

您可以创建一个通用脚本,然后为需要导入的每个实体自定义它(您可以在 s3 中导入文件并将其导入到glue脚本中)。

不知道从 jar 内部推送的日志如何进行日志记录/警报监控

您可以在活动桥上看到是否找到符合您需求的东西

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