

# 復元された Amazon Glacier オブジェクトをクエリする
<a name="querying-glacier"></a>

Amazon Athena を使用して、Amazon Glacier Flexible Retrieval (以前の Glacier) と Amazon Glacier Deep Archive [Amazon S3 ストレージクラス](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-glacier)から復元されたオブジェクトをクエリできます。この機能はテーブルごとに有効にする必要があります。クエリを実行する前にテーブルでこの機能を有効にしない場合、Athena はクエリ実行中にテーブルの Amazon Glacier Flexible Retrieval オブジェクトと Amazon Glacier Deep Archive オブジェクトをすべてスキップします。

## 考慮事項と制約事項
<a name="querying-glacier-considerations-and-limitations"></a>
+  復元された Amazon Glacier オブジェクトのクエリは、Athena エンジンバージョン 3 でのみサポートされています。
+  この機能は Apache Hive テーブルでのみサポートされています。
+  Athena はオブジェクトを復元しないため、データをクエリする前にオブジェクトを復元する必要があります。

## 復元されたオブジェクトを使用するようにテーブルを設定する
<a name="querying-glacier-configuring-a-table-to-use-restored-objects"></a>

 復元されたオブジェクトをクエリに含めるように Athena テーブルを設定するには、`read_restored_glacier_objects` テーブルプロパティを `true` に設定する必要があります。これを行うには、Athena クエリエディタまたは AWS Glue コンソールを使用できます。また、[AWS Glue CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/update-table.html)、[AWS Glue API](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-UpdateTable)、または [AWS Glue SDK](https://docs.aws.amazon.com/glue/latest/dg/sdk-general-information-section.html) も使用できます。

### Athena クエリエディタを使用する
<a name="querying-glacier-using-the-athena-query-editor"></a>

 Athena では、次の例のように、[ALTER TABLE SET TBLPROPERTIES](alter-table-set-tblproperties.md) コマンドを使用してテーブルプロパティを設定できます。

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

### AWS Glue コンソールを使用する
<a name="querying-glacier-using-the-aws-glue-console"></a>

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

**AWS Glue コンソールでテーブルプロパティを設定するには**

1. AWS マネジメントコンソール にサインインし、AWS Glue コンソール ([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)) を開きます。

1. 次のいずれかを行います。
   + **[データカタログに移動]** を選択します。
   + ナビゲーションペインで、**[データカタログログテーブル]** を選択します。

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

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

1. **[テーブルを編集]** ページの **[テーブルプロパティ]** セクションで、以下のキーと値のペアを追加します。
   + **[Key]** (キー)に、`read_restored_glacier_objects` を追加します。
   + **[Value]** (値) に「`true`」と入力します。

1. **[保存]** を選択します。

### AWS CLI の使用
<a name="querying-glacier-using-the-aws-cli"></a>

 AWS CLI では、テーブルを再定義するために AWS Glue [update-table](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/update-table.html) コマンドとその `--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` パラメータ内に指定するようにしてください。