Amazon Redshift
データベース開発者ガイド (API バージョン 2012年12月1日)

Amazon Redshift Spectrum でクエリ用のデータファイルを作成する

Amazon Redshift Spectrum のクエリに使用するデータファイルは通常、Amazon Athena、Amazon EMR、Amazon QuickSight などの他の AWS サービスを含む他のアプリケーションで使用するものと同じファイルです。Redshift Spectrum がサポートする 1 つの共通形式でファイルがフォーマットされていて、クラスターがアクセス可能なバケット内に存在する場合は、元の型式で Amazon S3 から直接データにクエリを実行できます。

Amazon S3 バケットのデータファイルと Amazon Redshift クラスターは、同じ AWS リージョンに存在する必要があります。サポートされる AWS リージョンの詳細については、「Amazon Redshift Spectrum のリージョン」を参照してください。

ファイル形式

Redshift Spectrum は次の構造化されたおよび半構造化されたデータ形式をサポートします。

  • AVRO

  • PARQUET

  • TEXTFILE

  • SEQUENCEFILE

  • RCFILE

  • RegexSerDe

  • ORC

  • Grok

  • OpenCSV

  • Ion

  • JSON

注記

テキストファイルのタイムスタンプ値は、yyyy-MM-dd HH:mm:ss.SSSSSS 形式であることが必要です。次のタイムスタンプ値は、2017-05-01 11:30:59.000000 となっています。

Parquet など、列指向ストレージファイル形式を使用することをおすすめします。列指向ストレージファイル形式により、必要な列のみを選択士、Amazon S3 からのデータ転送を最小限に抑えることができます。

圧縮

ストレージスペースの縮小、パフォーマンスの向上、コストの最小化を行うため、データファイルを圧縮することを強くおすすめします。Redshift Spectrum は、ファイル名拡張子に基づいてファイル圧縮のタイプを認識します。

Redshift Spectrum は、次の圧縮タイプと拡張子をサポートしています。

  • gzip — .gz

  • Snappy — .snappy

  • bzip2 — .bz2

暗号化

Redshift Spectrum は、次の暗号化オプションを使用して暗号化されたデータファイルを透過的に複号化します。

  • Amazon S3 によって管理される AES-256 暗号化キーを使用したサーバー側暗号化 (SSE-S3)。

  • AWS Key Management Service で管理されたキー (SSE-KMS) によるサーバー側の暗号化。

Redshift Spectrum は、Amazon S3 クライアント側暗号化をサポートしていません。詳細については、「サーバー側の暗号化を使用したデータの保護」を参照してください。

複数のファイル

Amazon Redshift は、超並列処理 (MPP) により、大量のデータに対して非常に複雑なクエリを高速で実行できます。Redshift Spectrum は、ファイルのスキャンで必要な複数の Redshift Spectrum インスタンスを使用して、同じ原理を外部データに拡張します。テーブルごとにファイルを個別のフォルダに置きます。

次のようなプラクティスでデータを並列処理用に最適化できます。

  • 大きなファイルは多くの小さなファイルに分割します。64 MB より大きいファイルサイズの使用が推奨されます。同じフォルダのテーブルにファイルを保存します。

  • ファイルはすべてほぼ同じサイズで保存します。一部のファイルのサイズが他のファイルを大きく上回ると、Redshift Spectrum はワークロードを均等に分散できません。