使用Glue从AWS RDS到S3的管道

时间:2018-12-11 03:54:24

标签: amazon-s3 amazon-rds amazon-athena aws-glue data-pipeline

我正在尝试将AWS Glue的当前数据管道从python脚本迁移到AWS Glue。我能够设置一个搜寻器来为不同的postgres数据库提取模式。但是,我在将数据从Postgres RDS提取到雅典娜的S3表时遇到了问题。

  • 是否可以将数据从AWS RDS直接拉到雅典娜的S3表中?
  • 如果是,那么如何
  • 否则,总是欢迎提出更好的建议

谢谢!

1 个答案:

答案 0 :(得分:4)

您不能使用Athena将数据从AWS RDS提取到S3。雅典娜是一个基于S3数据的查询引擎。为了能够将数据从RDS提取到S3,您可以运行Glue作业以从特定的RDS表中读取数据,并以镶木地板格式创建S3转储,这将创建另一个指向S3数据的外部表。然后,您可以使用Athena查询该S3数据。使用Glue目录从RDS读取并在S3中写入拼花的示例代码片段如下所示。有一些Glue预定义模板可用于实验。首先从一张小桌子开始。请告诉我它是否对您有帮助或其他任何问题/问题。

datasource0 = glueContext.create_dynamic_frame.from_options(connection_type="postgresql", connection_options = 
{"url": "jdbc-url/database",
"user": "user_name",
"password": "password",
"dbtable": "table_name"},
transformation_ctx = "datasource0")

   datasink4 = glueContext.write_dynamic_frame.from_options(frame = datasource0, connection_type = "s3", connection_options = {"path": "s3://aws-glue-tpcds-parquet/"+ tableName + "/"}, format = "parquet", transformation_ctx = "datasink4")