我想在自己的 Aurora PostgreSQL 兼容版数据库集群中开启 Amazon Simple Storage Solution (Amazon S3) 集成功能。
简短描述
您可以将存储在 Amazon S3 存储桶中的数据导入与 Aurora PostgreSQL 兼容的数据库集群上的表中。首先,安装 Aurora PostgreSQL 兼容版 aws_s3 扩展。此扩展提供从 S3 存储桶导入数据所需的功能。数据可以放在逗号分隔值 (CSV) 文件、文本文件 (txt) 或压缩 (gzip) 文件中。您的数据库必须运行 PostgreSQL 版本 10.7 或更高版本,才能从 Amazon S3 导入 Aurora PostgreSQL 兼容版。
要将 Aurora 数据库集群与 S3 存储桶集成,请执行以下操作:
- 安装 aws_s3 扩展
- 设置 S3 存储桶访问权限
- 向 Aurora 集群添加选项
- 使用 psql 查询从数据库导入或导出数据
解决方案
安装 aws_s3 扩展
要安装允许连接到数据库的 aws_s3 扩展,请运行以下命令:
postgres=> CREATE EXTENSION aws_s3 CASCADE;
要验证 aws_s3 是否已安装,请使用 psql\dx 元命令。或者,可以从任何数据库客户端工具中使用此查询:
select * from pg_available_extensions where installed_version is not null;
设置 S3 存储桶访问权限
要授予与 Aurora PostgreSQL 兼容的集群访问 Amazon S3 的权限,请创建 AWS Identity and Access Management (IAM) 策略。此策略提供存储桶和对象权限,可让您的数据库集群访问 S3 存储桶。
在创建的 IAM 策略中,包括这些必需的操作。这些操作允许将文件从 S3 存储桶传输到数据库集群:
- s3:GetObject
- s3:ListBucket
- s3:PutObject
- s3:AbordMultipartUpload
有关更多信息,请参阅设置 Amazon S3 存储桶的访问权限。
向 Aurora 集群添加选项
使用 Amazon Relational Database Service (Amazon RDS) 控制台或 AWS 命令行界面 (AWS CLI) 向集群添加 IAM 角色。
使用控制台
- 登录 Amazon RDS 控制台。
- 从导航窗格中,选择要修改的 PostgreSQL 集群
- 选择 Connectivity & security(连接与安全性)选项卡。
- 在 Manage IAM roles(管理 IAM 角色)部分的 Add IAM roles to this instance(向此实例添加 IAM 角色)下,选择要添加的角色。
- 在 Feature(功能)下,选择 s3Export,然后选择 Add role(添加角色)。
从数据库导入或导出数据
从 S3 存储桶将数据导入您的 PostgreSQL 集群,或者从 PostgreSQL 集群将数据导出至您的 S3 存储桶。
有关更多信息,请参阅将数据从 Amazon S3 导出和导入至 Amazon Aurora PostgreSQL。
完成这些步骤后,使用 aws_s3.table_import_from_s3 将数据从 Amazon S3 导入与 Aurora PostgreSQL 兼容的集群。可以使用 aws_s3.query_export_to_s3 函数将数据从与 Aurora PostgreSQL 兼容的集群导出至 Amazon S3。