【问题标题】:How to automate ETL job deployment and run?如何自动化 ETL 作业部署和运行?
【发布时间】:2018-12-06 18:56:11
【问题描述】:

我们有 ETL 作业,即通过 shell 脚本运行一个 java jar(执行 etl 操作)。根据正在运行的作业,shell 脚本与一些参数一起传递。这些 shell 脚本可以通过 crontab 运行,也可以根据需要手动运行。有时,在运行 shell 脚本之前,也需要在 posgresql RDS DB 上运行一些 sql 命令/脚本。

我们在 AWS 上拥有一切,即 Ec2 talend 服务器、Postgresql RDS、Redshift、ansible 等。 我们如何使这个过程自动化?如何部署和处理传递自定义参数等。欢迎指点。

【问题讨论】:

  • 我总是使用 Airflow 来处理复杂的日程安排,或者只使用带有 cron 作业设置的简单 ec2 服务器来处理简单的情况
  • 这与日程安排无关。我们有 3-4 名 ETL 开发人员,每天必须由运营团队安排 5-8 个工作。我正在寻找一个平台来减少繁重的工作。

标签: automation amazon-redshift etl data-warehouse aws-glue


【解决方案1】:

您可以使用Aws Glue 执行无服务器 ETL。 Glue 还具有触发器,可让您自动执行其工作。

【讨论】:

  • 你用过吗?如何在 Glue 中使用 jar 文件中的功能。我看到了这一点,但不清楚如何将我们当前的功能与 Glue 一起使用。
  • Glue 可以执行文档中提到的 ETL 功能。您必须使用 Python 或 Scala 编写 ETL 代码。
  • 目前只支持原生 python,没有 pandas,numpy 库。它在 AWS 的待办事项列表中,但目前还没有 ETA。
  • 这也取决于您现有的 ETL 作业中使用的语言,如果原生 python 或 scala 是,否则它将无法工作。如果它的简单转换和移动到目标,Glue 可以帮助您生成代码,也可以自定义。正如我所说,这取决于您现有代码的复杂性和性质,以及在允许的情况下修改代码的时间线。
【解决方案2】:

我更喜欢使用 AWS 数据管道,并添加步骤以对您的 ETL 作业执行任何前/后操作,例如运行 shell 脚本或任何 hql 等。

AWS Glue 在 Spark 引擎上运行,它具有其他功能以及 AWS Glue 开发终端节点、爬虫、目录、作业调度程序等。如果您重新开始,或计划将 ETL 迁移到 AWS Glue,我认为 AWS Glue 将是理想的选择。请refer here on price comparison

AWS 管道:For details on AWS Pipeline

AWS Glue 常见问题解答:For details on supported languages for AWS Glue

请注意根据 AWS Glue 常见问题:

问:我可以使用什么编程语言为 AWS 编写 ETL 代码 胶水?

您可以使用 Scala 或 Python。

编辑:正如 Jon scott 评论的那样,Apache Airflow 是作业调度的另一种选择,但我没有使用它。

【讨论】:

  • 谢谢,很遗憾,Data Pipeline 在法兰克福地区尚不可用。现在我必须寻找 AirFlow。
猜你喜欢
  • 2014-02-22
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
  • 1970-01-01
  • 2023-02-11
  • 1970-01-01
  • 2023-03-13
相关资源
最近更新 更多