

# Amazon RDS の Amazon S3 へのエクスポートのファイル命名規則
<a name="USER_ExportSnapshot.FileNames"></a>

特定のテーブルのエクスポートされたデータは、`base_prefix/files` の形式で保存されます。そのベースプレフィックスは次のとおりです。

```
export_identifier/database_name/schema_name.table_name/
```

例:

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

ファイルを名付ける方法には、次の 2 つの規則があります。
+ 現在の規則:

  ```
  batch_index/part-partition_index-random_uuid.format-based_extension
  ```

  バッチインデックスは、テーブルから読み込まれたデータのバッチを表すシーケンス番号です。テーブルを小さなチャンクに分割し、並列でエクスポートできない場合は、複数のバッチインデックスになります。テーブルが複数のテーブルにパーティション化されている場合にも同じことが起こります。メインテーブルのテーブルパーティションごとに 1 つずつ、複数のバッチインデックスがあります。

  テーブルを小さなチャンクに分割し、並列で読み取ることができる場合は、バッチインデックス `1` フォルダのみになります。

  バッチインデックスフォルダ内には、テーブルのデータを含む 1 つまたは複数の Parquet ファイルがあります。Parquet ファイル名のプレフィックスは `part-partition_index` です。テーブルがパーティション化されている場合、パーティションインデックス `00000` で始まる複数のファイルになります。

  パーティションインデックスシーケンスにギャップが生じる可能性があります。これは、各パーティションがテーブル内の範囲クエリから取得されるためです。そのパーティションの範囲内にデータがない場合、そのシーケンス番号はスキップされます。

  例えば、`id` 列がテーブルのプライマリキーで、その最小値と最大値が `100` と `1000` であるとします。このテーブルを 9 つのパーティションでエクスポートしようとすると、次のような並列クエリで読み取られます。

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

  これにより、`part-00000-random_uuid.gz.parquet` から `part-00008-random_uuid.gz.parquet` までの 9 つのファイルが生成されます。ただし、`200` と `350` の間に ID を持つ行がない場合、完了したパーティションの 1 つが空になり、それに対するファイルも作成されません。前の例では、`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
  ```

ファイルの命名規則は変更されることがあります。したがって、ターゲットテーブルを読み込む場合は、テーブルのベースプレフィックス内のすべてを読み込むことをお勧めします。