选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

将数据从 Amazon S3 导入到 RDS for PostgreSQL 数据库实例

聚焦模式
将数据从 Amazon S3 导入到 RDS for PostgreSQL 数据库实例 - Amazon Relational Database Service

您可以使用 aws_S3 扩展的 table_import_from_s3 函数从 Amazon S3 桶导入数据。有关参考信息,请参阅aws_s3.table_import_from_s3

注意

以下示例使用 IAM 角色方法以允许访问 Amazon S3 桶。因此,aws_s3.table_import_from_s3 函数调用不包括凭据参数。

下面显示典型示例。

postgres=> SELECT aws_s3.table_import_from_s3( 't1', '', '(format csv)', :'s3_uri' );

下面是参数:

  • t1 – 将数据复制到的 PostgreSQL 数据库实例中的表的名称。

  • '' – 数据库表中的列的可选列表。您可以使用此参数来指示哪些 S3 数据列进入哪些表列中。如果未指定任何列,则会将所有列复制到表中。有关使用列列表的示例,请参阅 导入使用自定义分隔符的 Amazon S3 文件

  • (format csv) – PostgreSQL COPY 参数。复制过程使用 PostgreSQL COPY 命令的参数和格式以导入数据。格式选择包括本例中所示的逗号分隔值(CSV),以及文本和二进制。原定设置为文本。

  • s3_uri – 包含标识 Amazon S3 文件的信息的结构。有关使用 aws_commons.create_s3_uri 函数创建 s3_uri 结构的示例,请参阅 从 Amazon S3 数据导入数据概述

有关此函数的更多信息,请参阅 aws_s3.table_import_from_s3

aws_s3.table_import_from_s3 函数返回文本。要指定要从 Amazon S3 存储桶中导入的其他类型的文件,请参阅以下示例之一。

注意

导入 0 字节文件将导致错误。

导入使用自定义分隔符的 Amazon S3 文件

以下示例说明了如何导入使用自定义分隔符的文件。它还说明如何使用 column_list 函数的 aws_s3.table_import_from_s3 参数来控制将数据放置在数据库表中的哪个位置。

在此示例中,假定将以下信息组织到 Amazon S3 文件中的竖线分隔列中。

1|foo1|bar1|elephant1 2|foo2|bar2|elephant2 3|foo3|bar3|elephant3 4|foo4|bar4|elephant4 ...
导入使用自定义分隔符的文件
  1. 在数据库中为导入的数据创建一个表。

    postgres=> CREATE TABLE test (a text, b text, c text, d text, e text);
  2. 使用以下形式的 aws_s3.table_import_from_s3 函数从 Amazon S3 文件导入数据。

    您可以在 aws_commons.create_s3_uri 函数调用中以内联方式包括 aws_s3.table_import_from_s3 函数调用来指定文件。

    postgres=> SELECT aws_s3.table_import_from_s3( 'test', 'a,b,d,e', 'DELIMITER ''|''', aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'pipeDelimitedSampleFile', 'us-east-2') );

数据现在位于表的以下列中。

postgres=> SELECT * FROM test; a | b | c | d | e ---+------+---+---+------+----------- 1 | foo1 | | bar1 | elephant1 2 | foo2 | | bar2 | elephant2 3 | foo3 | | bar3 | elephant3 4 | foo4 | | bar4 | elephant4

导入 Amazon S3 压缩 (gzip) 文件

以下示例说明如何从 Amazon S3 导入使用 gzip 压缩的文件。导入的文件需要具有以下 Amazon S3 元数据:

  • 键:Content-Encoding

  • 值:gzip

如果使用 AWS Management Console 上传文件,则元数据通常由系统应用。有关使用 AWS Management Console、AWS CLI 或 API 将文件上传到 Amazon S3 的信息,请参阅《Amazon Simple Storage Service 用户指南》中的上传对象

有关 Amazon S3 元数据的更多信息以及有关系统提供的元数据的详细信息,请参阅《Amazon Simple Storage Service 用户指南》中的在 Amazon S3 控制台中编辑对象元数据

将 gzip 文件导入到 RDS for PostgreSQL 数据库实例,如下所示。

postgres=> CREATE TABLE test_gzip(id int, a text, b text, c text, d text); postgres=> SELECT aws_s3.table_import_from_s3( 'test_gzip', '', '(format csv)', 'amzn-s3-demo-bucket', 'test-data.gz', 'us-east-2' );

导入编码的 Amazon S3 文件

以下示例说明如何从 Amazon S3 导入具有 Windows-1252 编码的文件。

postgres=> SELECT aws_s3.table_import_from_s3( 'test_table', '', 'encoding ''WIN1252''', aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'SampleFile', 'us-east-2') );
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。