我正在使用 AWS 数据管道服务将数据从RDS MySql
数据库传输到s3
,然后再传输到Redshift
,效果很好。
但是,我也有一个RDS Postres
实例中的数据,我想以相同的方式进行管道传输,但我很难设置 jdbc 连接。如果这不受支持,是否有解决方法?
"connectionString": "jdbc:postgresql://THE_RDS_INSTANCE:5432/THE_DB”
我正在使用 AWS 数据管道服务将数据从RDS MySql
数据库传输到s3
,然后再传输到Redshift
,效果很好。
但是,我也有一个RDS Postres
实例中的数据,我想以相同的方式进行管道传输,但我很难设置 jdbc 连接。如果这不受支持,是否有解决方法?
"connectionString": "jdbc:postgresql://THE_RDS_INSTANCE:5432/THE_DB”
现在,您可以定义一个复制活动来将 Postgres RDS 实例中的数据提取到 S3 中。在数据管道界面中:
这还不行。aws 还没有构建/发布很好地连接到 postgres 的功能。不过,您可以在 shellcommandactivity 中执行此操作。您可以编写一些 ruby 或 python 代码来执行此操作,然后使用 scriptUri 将其放入 s3 上的脚本中。您也可以只编写一个 psql 命令将表转储到 csv,然后在该活动节点中使用“staging: true”将其通过管道传输到 OUTPUT1_STAGING_DIR。
像这样的东西:
{
"id": "DumpCommand",
"type": "ShellCommandActivity",
"runsOn": { "ref": "MyEC2Resource" },
"stage": "true",
"output": { "ref": "S3ForRedshiftDataNode" },
"command": "PGPASSWORD=password psql -h HOST -U USER -d DATABASE -p 5432 -t -A -F\",\" -c \"select blah_id from blahs\" > ${OUTPUT1_STAGING_DIR}/my_data.csv"
}
我没有运行它来验证,因为启动管道很痛苦:(所以仔细检查命令中的转义。
查看刚刚在参数化模板数据管道上推出的新内容 aws:http: //docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-custom-templates.html。看起来它将允许对任意参数进行加密。
AWS 现在允许合作伙伴进行近乎实时的 RDS -> Redshift 插入。
https://aws.amazon.com/blogs/aws/fast-easy-free-sync-rds-to-redshift/