【问题标题】:How to pipe data from AWS Postgres RDS to S3 (then Redshift)?如何将数据从 AWS Postgres RDS 传输到 S3(然后是 Redshift)?
【发布时间】:2015-01-03 02:16:14
【问题描述】:

我正在使用 AWS 数据管道服务将数据从 RDS MySql 数据库传输到 s3,然后传输到 Redshift,效果很好。

但是,我也有数据存在于 RDS Postres 实例中,我想以相同的方式进行管道传输,但我很难设置 jdbc 连接。如果不支持,是否有解决方法?

"connectionString": "jdbc:postgresql://THE_RDS_INSTANCE:5432/THE_DB”

【问题讨论】:

    标签: postgresql amazon-web-services amazon-redshift amazon-data-pipeline


    【解决方案1】:

    这还不行。 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"
    }
    

    我没有运行这个来验证,因为启动管道很痛苦:(所以仔细检查命令中的转义。

    • 优点:超级简单,不需要额外的脚本文件上传到 s3
    • 缺点:不完全安全。您的数据库密码将通过网络传输而无需加密。

    查看刚刚在参数化模板数据管道上推出的新内容:http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-custom-templates.html。看起来它将允许对任意参数进行加密。

    【讨论】:

    • 作为一个快速更新:Postgresql 现在支持 SSL,因此如果您使用的是较新版本,请确保设置 ssl=true 以便设置加密。
    【解决方案2】:

    AWS 现在允许合作伙伴进行近乎实时的 RDS -> Redshift 插入。

    https://aws.amazon.com/blogs/aws/fast-easy-free-sync-rds-to-redshift/

    【讨论】:

    • 截至 2015 年 2 月 25 日,上述链接仅支持 MySQL -> Redshift,并且不支持 OP 询问的 Postgres。
    • 看起来从那以后它已经更新了。来自链接:上面讨论的所有四种数据集成解决方案都可以与所有 RDS 数据库引擎(MySQL、SQL Server、PostgreSQL 和 Oracle)一起使用。
    【解决方案3】:

    现在您可以定义一个复制活动来将数据从 Postgres RDS 实例提取到 S3。在数据管道界面中:

    1. 创建SqlDataNode 类型的数据节点。指定表名并选择查询
    2. 通过指定 RDS 实例 ID(实例 ID 在您的 URL 中,例如 your-instance-id.xxxxx.eu-west-1.rds.amazonaws.com)以及用户名、密码和数据库名称来设置数据库连接.
    3. 创建 S3DataNode 类型的数据节点
    4. 创建一个 Copy 活动并将 SqlDataNode 设置为输入,将 S3DataNode 设置为输出

    【讨论】:

    • 可惜CA还没有这个功能
    • 你能添加截图来说明结果应该是什么样子吗?我得到了一个看起来很奇怪的结构。
    猜你喜欢
    • 2020-06-21
    • 2019-03-22
    • 2020-07-18
    • 1970-01-01
    • 2017-07-13
    • 2020-02-07
    • 1970-01-01
    • 2022-11-25
    • 2020-11-27
    相关资源
    最近更新 更多