5

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

  • 有没有办法直接将数据从 AWS RDS 拉到 Athena 中的 S3 表?
  • 如果是,那么如何
  • 如果没有,那么任何更好的建议总是受欢迎的

提前致谢 !

4

1 回答 1

8

您无法使用 Athena 将数据从 AWS RDS 提取到 S3。Athena 是一个基于 S3 数据的查询引擎。为了能够将数据从 RDS 提取到 S3,您可以运行 Glue 作业以从特定 RDS 表中读取数据,并以 parquet 格式创建 S3 转储,这将创建另一个指向 S3 数据的外部表。然后,您可以使用 Athena 查询该 S3 数据。使用 Glue 目录从 RDS 读取并在 S3 中写入 parquet 的示例代码片段如下所示。您可以使用一些 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")
于 2018-12-13T11:28:44.237 回答