パーティション射影の設定 - Amazon Athena

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

パーティション射影の設定

テーブルのプロパティでのパーティション射影の設定は、次の 2 つのステップで行います。

  1. 各パーティション列のデータ範囲と関連するパターンを指定するか、カスタムテンプレートを使用します。

  2. テーブルのパーティション射影を有効にします。

このセクションでは、AWS Glue のこれらのテーブルプロパティを設定する方法について説明します。これらを設定するには、AWS Glue コンソール (Athena) を使用します。CREATE TABLEクエリ、またはAWS Glue APIオペレーション. 次の手順は、AWS Glue コンソールでプロパティを設定する方法を示しています。使用する例については、CREATE TABLEステートメントの詳細については、Amazon Kinesis Data Firehose 例

AWS Glue コンソールを使用してパーティション射影を設定および有効にするには

  1. AWS マネジメントコンソールにサインインし、AWS Glue コンソール (https://console.aws.amazon.com/glue/

  2. [テーブル] タブを選択します。

    [テーブル] タブでは、既存のテーブルを編集したり、[テーブルの追加] を選択して新しいテーブルを作成したりできます。手動またはクローラを使用してテーブルを追加する方法については、AWS Glue コンソールでのテーブルの使用()AWS Glue 開発者ガイド

  3. テーブルのリストで、編集するテーブルのリンクを選択します。

    
                        AWS Glue コンソールで、編集するテーブルを選択します。
  4. [テーブルの編集] を選択します。

    
                        選択テーブルの編集AWS Glue コンソールに表示されます。
  5. [テーブルの詳細の編集] ダイアログボックスの [テーブルプロパティ] セクションで、パーティション化された列ごとに、次のキーと値のペアを追加します。

    1. [キー] に、projection.columnName.type を追加します。

    2. を使用する場合サポートされているタイプの 1 つを追加します。enumintegerdate, またはinjected。詳細については、「パーティション射影のサポートされている型」を参照してください。

  6. パーティション射影のサポートされている型」のガイダンスに従って、設定要件に従って追加のキーと値のペアを追加します。

    次のテーブル設定例では、パーティション射影用に year 列を構成し、返すことのできる値を 2000 ~ 2016 の範囲に制限します。

    
                        AWS Glue コンソールのテーブルプロパティでパーティション列のパーティション射影の構成。
  7. キーと値のペアを追加して、パーティション射影を有効にします。[キー] に projection.enabled と入力し、[] に true と入力します。

    
                        AWS Glue コンソールのテーブルのプロパティでパーティション射影を有効にします。
    注記

    projection.enabledfalse に設定することで、このテーブルのパーティション射影をいつでも無効にすることができます。

  8. 完了したら、[Apply] を選択します。

  9. Athena クエリエディタで、テーブル用に設定した列をテストクエリします。

    次のクエリ例では、SELECT DISTINCT を使用して、year 列から一意の値を返します。データベースには 1987 年から 2016 年のデータが含まれていますが、projection.year.range プロパティでは返される値が 2000 年から 2016 年に制限されています。

    
                        パーティション射影を使用する列のクエリ。
    注記

    projection.enabledtrue に設定したが、1 つ以上のパーティション列を設定できない場合は、次のようなエラーメッセージが表示されます。

    HIVE_METASTORE_ERROR: Table database_name.table_name is configured for partition projection, but the following partition columns are missing projection configuration: [column_name] (table database_name.table_name).

カスタム S3 ストレージの場所の指定

AWS Glue でテーブルプロパティを編集する場合、射影パーティション用のカスタム Amazon S3 パステンプレートを指定することもできます。カスタムテンプレートを使用すると、Athena はパーティション値をカスタム Amazon S3 ファイルの場所に、通常の.../column=value/...パターン.

カスタムテンプレートの使用はオプションです。ただし、カスタムテンプレートを使用する場合、各パーティション列のプレースホルダをテンプレートに含める必要があります。

カスタムパーティションの場所のテンプレートを指定するには

  1. configure and enable partition projection using the AWS Glue console」のステップに従って、次のようにカスタムテンプレートを指定する追加のキーと値のペアを追加します。

    1. [キー] に「storage.location.template」と入力します。

    2. [] で、すべてのパーティション列のプレースホルダを含む場所を指定します。

      次のテンプレート値の例では、パーティション列 abc があるテーブルを想定しています。

      s3://bucket/table_root/a=${a}/${b}/some_static_subdirectory/${c}/
      s3://bucket/table_root/c=${c}/${b}/some_static_subdirectory/${a}/${b}/${c}/${c}/

      同じテーブルの場合、次のテンプレート値の例は、列 c のプレースホルダが含まれていないため無効です。

      s3://bucket/table_root/a=${a}/${b}/some_static_subdirectory/
  2. [Apply] を選択します。