復元された Amazon S3 Glacier オブジェクトをクエリする - Amazon Athena

復元された Amazon S3 Glacier オブジェクトをクエリする

Athena を使用して、S3 Glacier Flexible Retrieval (以前の Glacier) および S3 Glacier Deep Archive Amazon S3 ストレージクラスから復元されたオブジェクトをクエリできます。この機能はテーブルごとに有効にする必要があります。クエリを実行する前にテーブルでこの機能を有効にしない場合、Athena はクエリ実行中にテーブルの S3 Glacier Flexible Retrieval オブジェクトと S3 Glacier Deep Archive オブジェクトをすべてスキップします。

考慮事項と制約事項

  • 復元された Amazon S3 Glacier オブジェクトのクエリは、Athena エンジンバージョン 3 でのみサポートされています。

  • この機能は Apache Hive テーブルでのみサポートされています。

  • Athena はオブジェクトを復元しないため、データをクエリする前にオブジェクトを復元する必要があります。

復元されたオブジェクトを使用するようにテーブルを設定する

復元されたオブジェクトをクエリに含めるように Athena テーブルを設定するには、read_restored_glacier_objects テーブルプロパティを true に設定する必要があります。これを行うには、Athena クエリエディタまたは AWS Glue コンソールを使用できます。また、AWS Glue CLIAWS Glue API、または AWS Glue SDK も使用できます。

Athena クエリエディタを使用する

Athena では、次の例のように、ALTER TABLE SET TBLPROPERTIES コマンドを使用してテーブルプロパティを設定できます。

ALTER TABLE table_name SET TBLPROPERTIES ('read_restored_glacier_objects' = 'true')

AWS Glue コンソールを使用する

AWS Glue コンソールで、次の手順を実行して、read_restored_glacier_objects テーブルプロパティを追加します。

AWS Glue コンソールでテーブルプロパティを設定するには
  1. AWS Management Consoleにサインインし、AWS Glue コンソール (https://console.aws.amazon.com/glue/) を開きます。

  2. 次のいずれかを行います。

    • [データカタログに移動] を選択します。

    • ナビゲーションペインで、[データカタログログテーブル] を選択します。

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

  4. [Actions] (アクション)、[Edit table] (テーブルの編集) の順に選択します。

  5. [テーブルを編集] ページの [テーブルプロパティ] セクションで、以下のキーと値のペアを追加します。

    • [キー] に、read_restored_glacier_objects を追加します。

    • [Value (値)] に「true」と入力します。

  6. [Save] を選択します。

AWS CLI を使用する

AWS CLI では、テーブルを再定義するために AWS Glue update-table コマンドとその --table-input 引数を使用でき、そうすることで read_restored_glacier_objects プロパティが追加されます。--table-input 引数では、Parameters の構造を使用して read_restored_glacier_objects プロパティと true の値を指定します --table-input の引数にはスペースがあってはならず、二重引用符をエスケープするにはバックスラッシュを使用する必要があることに注意してください。以下の例では、my_database および my_table を独自のデータベース名とテーブル名に置き換えます。

aws glue update-table \ --database-name my_database \ --table-input={\"Name\":\"my_table\",\"Parameters\":{\"read_restored_glacier_objects\":\"true\"}}
重要

AWS Glue update-table コマンドは上書きモードで動作します。これは、このコマンドが既存のテーブル定義を table-input パラメータ指定の新しい定義に置き換えることを意味します。このため、read_restored_glacier_objects プロパティを追加するときは、テーブルに含めるすべてのフィールドも table-input パラメータ内に指定するようにしてください。