将数据从AWS S3加载到Aurora Postgres

时间:2018-09-17 12:20:26

标签: postgresql amazon-web-services amazon-s3 amazon-rds-aurora

我正在尝试将数据从AWS S3加载到Aurora Postgres。我遵循了此链接https://aws.amazon.com/blogs/database/stream-data-into-an-aurora-postgresql-database-using-aws-dms-and-amazon-kinesis-data-firehose/,但没有成功。有没有人加载它或知道一些链接,我可以在其中找到实现它的步骤。

1 个答案:

答案 0 :(得分:1)

尽管这是一篇过时的文章,但我希望它能对来找人的人有所帮助。大部分来自official AWS doc。我正在添加一些说明来帮助您。

这是演习:

连接到RDS Postgres实例。

在psql提示符上运行以下命令,以创建必要的扩展名以从s3导入数据:

CREATE EXTENSION aws_s3 CASCADE;

创建数据库:

CREATE DATABASE students;

创建表(假设如下三列):

CREATE TABLE t1 (col1 varchar(80), col2 varchar(80), col3 varchar(80));

请注意,除非您要跳过某些列(这超出了本文的范围),否则S3存储桶中的csv文件应具有相同的列数。

要使用控制台为PostgreSQL数据库集群添加IAM角色,

  1. 登录到AWS管理控制台,然后在https://console.aws.amazon.com/rds/上打开Amazon RDS控制台。
  2. 选择PostgreSQL数据库集群名称以显示其详细信息。
  3. 在“连通性和安全性”选项卡上的“管理IAM角色”部分中,选择要添加到“将IAM角色添加到此实例”下的角色。
  4. 在“功能”下,选择“ s3Import”。
  5. 选择添加角色。

    选择aws_commons.create_s3_uri('your_bucket_name','full / path / to / file.csv','aws_region')AS s3_uri \ gset
    选择aws_s3.table_import_from_s3('t1','','(format csv)',::'s3_uri');

不要在存储桶名称前添加full / path / to / file.csv。使用正确的aws_region(例如us-east-1),并且不要在此处添加任何可用区。

您应该得到类似的东西:

1000 rows imported into relation "t1" from file ...

使用示例查询进行测试:

SELECT * FROM t1 LIMIT 5;

HTH。