復元された 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 CLI
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 コンソールでテーブルプロパティを設定するには
AWS Management Consoleにサインインし、AWS Glue コンソール (https://console.aws.amazon.com/glue/
) を開きます。 -
次のいずれかを行います。
-
[データカタログに移動] を選択します。
-
ナビゲーションペインで、[データカタログログテーブル] を選択します。
-
-
[テーブル] ページのテーブルのリストで、編集するテーブルのリンクを選択します。
-
[Actions] (アクション)、[Edit table] (テーブルの編集) の順に選択します。
-
[テーブルを編集] ページの [テーブルプロパティ] セクションで、以下のキーと値のペアを追加します。
-
[キー] に、
read_restored_glacier_objects
を追加します。 -
[Value (値)] に「
true
」と入力します。
-
-
[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
パラメータ内に指定するようにしてください。