

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 兼容 Aurora PostgreSQL 与亚马逊 S3 的集成
<a name="amazon-s3"></a>

Amazon Simple Storage Service (Amazon S3) 是一项对象存储服务，可提供可扩展、耐用、高度可用且经济实惠的数据存储。兼容 Amazon Aurora PostgreSQL 的版本通过扩展程序与亚马逊 S3 集`aws_s3`成，该扩展提供对 S3 存储桶的直接读写访问权限。这种集成促进了数据交换，包括数据摄取、备份和其他与数据相关的操作。

## aws\_s3 用例和高级步骤
<a name="aws-s3"></a>

与 Amazon S3 集成的最常见高级用例和优势如下：
+ **从 Amazon S3 提取数据-使用`aws_s3`扩展程序将存储在亚马逊 S3 中的逗号分隔值 (CSV)、JSON 或其他文件格式的数据直接加载到兼容 Aurora Post** greSQL 的表中。这对于批量数据摄取过程、ETL（提取、转换和加载）工作流程或数据迁移特别有用。
+ 将@@ **数据导出到亚马逊 S3**-将数据从兼容 Aurora PostgreSQL 的表导出为 CSV、JSON 或其他文件格式，然后将数据存储在亚马逊 S3 中。这对于数据存档、备份或与其他系统或服务共享数据非常有用。
+ **直接从亚马逊 S3 查询数据** — 直接从兼容 Aurora PostgreSQL 的数据库中查询存储在 CSV 或 JSON 文件中的数据，无需将数据加载到表中。这对于一次性数据分析或探索性数据处理非常有用。
+ **备份和还原** — 使用 Amazon S3 作为兼容 Aurora PostgreSQL 的数据库的备份目的地。这提供了额外的数据保护层，如果需要，您可以从 Amazon S3 备份中恢复数据库。

要将兼容 Aurora PostgreSQL 的数据库集群与 S3 存储桶集成，请使用以下高级步骤：

1. 使用 PostgreSQL 客户端连接到与 Aurora PostgreSQL 兼容的集群，然后创建扩展模块：`aws_s3`

   ```
   create extension aws_s3
   ```

1. 设置对 S3 存储桶和所需角色的访问权限。有关详细步骤，请参阅[AWS 文档](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PostgreSQL.S3Import.html#USER_PostgreSQL.S3Import.AccessPermission)。

1. 使用 psql 查询从数据库中导入或导出数据：
   + 要将文件从 Amazon S3 导入与 Aurora PostgreSQL 兼容的表，请运行以下命令：

     ```
     SELECT aws_s3.table_import_from_s3( 'Table_Name', '',  '(format text)',
                                                        aws_commons.create_s3_uri('S3_BUCKETNAME', 'FileName.dat','Region-Name')  );
     ```
   + 要将文件从兼容 Aurora PostgreSQL 的表中导出到 Amazon S3，请运行以下命令：

     ```
     SELECT * FROM aws_s3.query_export_to_s3('TABLE_NAME', aws_commons.create_s3_uri('S3_BUCKETNAME', 'FileName.dat', 'Region-Name') );
     ```
   + 要使用 SQL 查询导出到 Amazon S3，请运行以下命令：

     ```
     SELECT * FROM aws_s3.query_export_to_s3('SELECT * FROM data_table', aws_commons.create_s3_uri('S3_BUCKETNAME', 'FileName.dat', 'Region-Name') );
     ```