

# Amazon S3 でクエリ出力ファイルを検索する
<a name="querying-finding-output-files"></a>

ワークグループでクエリが発生し、そのワークグループの設定がクライアント側の設定よりも優先される場合でない限り、クエリ出力ファイルは次のパスパターンで Amazon S3 サブフォルダに保存されます。ワークグループの設定がクライアント側の設定よりも優先される場合、クエリはワークグループによって指定された結果パスを使用します。

```
{{QueryResultsLocationInS3}}/[{{QueryName}}|Unsaved{{/yyyy/mm/dd}}/]
```
+ {{QueryResultsLocationInS3}} は、ワークグループ設定またはクライアント側設定で指定されたクエリ結果の場所です。詳細については、このドキュメントで後述する「[クエリ結果の場所を指定する](query-results-specify-location.md)」を参照してください。
+ 次のサブフォルダは、ワークグループ設定が結果パスよりも優先されていないコンソールから実行されるクエリに対してのみ作成されます。AWS CLI から実行されるクエリまたは Athena API を使用して実行されるクエリは、{{QueryResultsLocationInS3}} に直接保存されます。
  + {{QueryName}} は結果を保存するクエリの名前です。クエリが実行されたものの、保存されなかった場合は、`Unsaved` が使用されます。
  + {{yyyy/mm/dd}} は、クエリが実行された日付です。

`CREATE TABLE AS SELECT` クエリに関連付けられたファイルは、上記のパターンの `tables` サブフォルダに保存されます。

## クエリ出力ファイルを識別する
<a name="querying-identifying-output-files"></a>

ファイルは、クエリの名前、クエリ ID、およびクエリが実行された日付に基づいて、Amazon S3 のクエリ結果の場所に保存されます。各クエリのファイルは {{QueryID}} を使用して命名されます。QueryID は、クエリの実行時に Athena が各クエリに割り当てる一意の識別子です。

次のファイルタイプが保存されます。


| ファイルタイプ | ファイル命名パターン | 説明 | 
| --- | --- | --- | 
| **クエリ結果ファイル** | `{{QueryID}}.csv`<br />`{{QueryID}}.txt` | DML クエリ結果ファイルはカンマ区切り値 (CSV) 形式で保存されます。<br />DDL クエリ結果は、プレーンテキストファイルとして保存されます。<br />結果ファイルは、コンソールの使用時には [**Results**] (結果) ペインから、またはクエリの [**History**] (履歴) からダウンロードできます。詳細については、「[Athena コンソールを使用してクエリ結果ファイルをダウンロードする](saving-query-results.md)」を参照してください。 | 
| **クエリメタデータファイル** | `{{QueryID}}.csv.metadata`<br />`{{QueryID}}.txt.metadata` | DML および DDL クエリメタデータファイルはバイナリ形式で保存され、人間が読めるものではありません。ファイル拡張子は、関連するクエリ結果ファイルに対応しています。Athena は、`GetQueryResults` アクションを使用してクエリ結果を読み込むときに、メタデータを使用します。これらのファイルは削除できますが、クエリに関する重要な情報が失われるため、お勧めしません。 | 
| **データマニフェストファイル** | `{{QueryID}}-manifest.csv` | データマニフェストファイルは、[INSERT INTO](insert-into.md) クエリの実行時に Athena が Simple Storage Service (Amazon S3) データソースの場所に作成するファイルを追跡するために生成されます。クエリが失敗した場合、マニフェストはクエリが書き込むことを意図したファイルも追跡します。マニフェストは、失敗したクエリの結果として孤立したファイルを識別するのに役立ちます。 | 

## AWS CLI を使用して、クエリ出力の場所とファイルを特定する
<a name="querying-finding-output-files-cli"></a>

AWS CLI を使用してクエリ出力の場所と結果ファイルを特定するには、次の例のように、`aws athena get-query-execution` コマンドを実行します。{{abc1234d-5efg-67hi-jklm-89n0op12qr34}} をクエリ ID に置き換えます。

```
aws athena get-query-execution --query-execution-id {{abc1234d-5efg-67hi-jklm-89n0op12qr34}}
```

このコマンドにより、以下のような出力が返されます。各出力パラメータの説明については、*AWS CLI コマンドリファレンス*の「[get-query-execution](https://docs.aws.amazon.com/cli/latest/reference/athena/get-query-execution.html)」を参照してください。

```
{
    "QueryExecution": {
        "Status": {
            "SubmissionDateTime": 1565649050.175,
            "State": "SUCCEEDED",
            "CompletionDateTime": 1565649056.6229999
        },
        "Statistics": {
            "DataScannedInBytes": 5944497,
            "DataManifestLocation": "s3://amzn-s3-demo-bucket/athena-query-results-123456789012-us-west-1/MyInsertQuery/2019/08/12/abc1234d-5efg-67hi-jklm-89n0op12qr34-manifest.csv",
            "EngineExecutionTimeInMillis": 5209
        },
        "ResultConfiguration": {
            "EncryptionConfiguration": {
                "EncryptionOption": "SSE_S3"
            },
            "OutputLocation": "s3://amzn-s3-demo-bucket/athena-query-results-123456789012-us-west-1/MyInsertQuery/2019/08/12/abc1234d-5efg-67hi-jklm-89n0op12qr34"
        },
        "QueryExecutionId": "abc1234d-5efg-67hi-jklm-89n0op12qr34",
        "QueryExecutionContext": {},
        "Query": "INSERT INTO mydb.elb_log_backup SELECT * FROM mydb.elb_logs LIMIT 100",
        "StatementType": "DML",
        "WorkGroup": "primary"
    }
}
```