如何将 Amazon S3 与兼容 Aurora PostgreSQL 的数据库集群集成?

2 分钟阅读
0

我想在自己的 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 角色。

使用控制台

  1. 登录 Amazon RDS 控制台
  2. 从导航窗格中,选择要修改的 PostgreSQL 集群
  3. 选择 Connectivity & security(连接与安全性)选项卡。
  4. Manage IAM roles(管理 IAM 角色)部分的 Add IAM roles to this instance(向此实例添加 IAM 角色)下,选择要添加的角色。
  5. 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。


AWS 官方
AWS 官方已更新 1 年前