我使用AWS数据管道服务将数据从RDS MySql
数据库传输到s3
,然后传输到Redshift
,这很有效。
但是,我也有数据存在于RDS Postres
实例中,我想以同样的方式管道,但我很难设置jdbc连接。如果这不受支持,是否有解决办法?
"connectionString": "jdbc:postgresql://THE_RDS_INSTANCE:5432/THE_DB”
答案 0 :(得分:14)
现在,您可以定义一个复制活动,以将Postgres RDS实例中的数据提取到S3中。在数据管道界面中:
答案 1 :(得分:5)
这还行不通。 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"
}
我没有运行此验证,因为旋转管道很痛苦:(因此请仔细检查命令中的转义。
查看刚刚在参数化模板化数据管道上发布的新内容:http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-custom-templates.html。看起来它将允许加密任意参数。
答案 2 :(得分:0)
AWS现在允许合作伙伴近乎实时的RDS - > Redshift插入。
https://aws.amazon.com/blogs/aws/fast-easy-free-sync-rds-to-redshift/