从 aws Glue 脚本调用存储过程



ETL 作业完成后,在 AWS Glue 脚本中调用存储过程的最佳方式是什么?

我正在使用 PySpark 从 S3 获取数据并存储在临时表中。完成此过程后,需要调用存储过程。此存储过程将数据从临时表加载到相应的 MDS 表中。

如果我必须在 ETL 作业完成后调用存储过程,最好的方法是什么?如果我考虑 AWS lambda,有什么方法可以在 ETL 之后通知 lambda。

您可以使用

py4j来完成,并且所有代码都将集中在一个地方,恕我直言,比其他解决方案更好的解决方案

如何使用 AWS Glue 运行任意/DDL SQL 语句或存储过程

您可以使用 boto sdk 在胶水 ETL 作业结束时触发您的 lambda。由于您要写入临时表,因此还需要在连接的子网上有一个 NAT 网关,以便 boto 调用正常工作。此链接中的示例使用 boto 触发 ECS 任务,这将是一个类似的过程:https://github.com/full360/glue-sneaql-demo/blob/master/Glue-Job-Script。

直接使用 SDK 可避免设置额外的基础设施并对其进行协调,但有时这是不可能的(网络、安全、架构等)。

在这种情况下,您可以设置 Cloudwatch 规则,以便在作业的状态更改为 SUCCESSED 时触发 Lambda。

事件模式:

{
  "detail-type": [
    "Glue Job State Change"
  ],
  "source": [
    "aws.glue"
  ],
  "detail": {
    "state": [
      "SUCCEEDED"
    ]
  }
}

并在此事件上触发 Lambda。

相关内容

  • 没有找到相关文章

最新更新