Amazon RDS 导出到 Amazon S3 时的文件命名约定 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon RDS 导出到 Amazon S3 时的文件命名约定

特定表的导出数据以 base_prefix/files 格式存储,基本前缀如下:

export_identifier/database_name/schema_name.table_name/

例如:

export-1234567890123-459/rdststdb/rdststdb.DataInsert_7ADB5D19965123A2/

文件的命名方式有两种约定。

  • 当前约定:

    batch_index/part-partition_index-random_uuid.format-based_extension

    批量索引是一个序列号,表示从表中读取的一批数据。如果我们无法将您的表分区成小块以并行导出,则会有多个批量索引。如果表分区成多个表,也会发生同样的情况。这会出现多个批量索引,主表的每个表分区对应一个。

    如果我们可以将表分区成小块以并行读取,那么就只有批量索引 1 文件夹。

    在批量索引文件夹中,有一个或多个包含表数据的 Parquet 文件。Parquet 文件名的前缀是 part-partition_index。如果您的表已分区,则会有多个以分区索引 00000 开头的文件。

    分区索引序列中可能存在间隙。之所以发生这种情况,是因为每个分区都是从表中的范围查询中获得的。如果该分区的范围内没有数据,则跳过该序列号。

    例如,假设 id 列是表的主键,其最小值和最大值为 1001000。当我们尝试导出这个带有九个分区的表时,我们会使用并行查询读取它,如下所示:

    SELECT * FROM table WHERE id <= 100 AND id < 200 SELECT * FROM table WHERE id <= 200 AND id < 300

    这应该生成九个文件,从 part-00000-random_uuid.gz.parquetpart-00008-random_uuid.gz.parquet。但是,如果没有 ID 介于 200350 之间的行,则其中一个已完成的分区为空,并且不会为其创建任何文件。在前面的示例中,未创建 part-00001-random_uuid.gz.parquet

  • 较早的约定:

    part-partition_index-random_uuid.format-based_extension

    这与当前约定相同,但没有 batch_index 前缀,例如:

    part-00000-c5a881bb-58ff-4ee6-1111-b41ecff340a3-c000.gz.parquet part-00001-d7a881cc-88cc-5ab7-2222-c41ecab340a4-c000.gz.parquet part-00002-f5a991ab-59aa-7fa6-3333-d41eccd340a7-c000.gz.parquet

文件命名约定可能会更改。因此,在读取目标表时,我们建议您读取表的基本前缀内的所有内容。