

# クエリの例
<a name="querying-r53-resolver-logs-example-queries"></a>

以下の例は、Resolver クエリログで Athena から実行できるクエリをいくつか説明しています。

## 例 1 – ログを降順の query\_timestamp 順にクエリする
<a name="querying-r53-resolver-logs-example-1-query-logs-in-descending-query_timestamp-order"></a>

以下のクエリは、`query_timestamp` 順で降順にログ結果を表示します。

```
SELECT * FROM "r53_rlogs"
ORDER BY query_timestamp DESC
```

## 例 2 – 指定された開始時刻と終了時刻の範囲内でログをクエリする
<a name="querying-r53-resolver-logs-example-2-query-logs-within-specified-start-and-end-times"></a>

以下のクエリは、2020 年 9 月 24 日の午前 0 時から午前 8 時の間のログをクエリします。開始時刻と終了時刻は、独自の要件に従って置き換えます。

```
SELECT query_timestamp, srcids.instance, srcaddr, srcport, query_name, rcode
FROM "r53_rlogs"
WHERE (parse_datetime(query_timestamp,'yyyy-MM-dd''T''HH:mm:ss''Z')
     BETWEEN parse_datetime('{{2020-09-24-00:00:00}}','yyyy-MM-dd-HH:mm:ss') 
     AND parse_datetime('{{2020-09-24-00:08:00}}','yyyy-MM-dd-HH:mm:ss'))
ORDER BY query_timestamp DESC
```

## 例 3 – 指定された DNS クエリ名パターンに基づいてログをクエリする
<a name="querying-r53-resolver-logs-example-3-query-logs-based-on-a-specified-dns-query-name-pattern"></a>

以下のクエリは、クエリ名に文字列「example.com」が含まれたレコードを選択します。

```
SELECT query_timestamp, srcids.instance, srcaddr, srcport, query_name, rcode, answers
FROM "r53_rlogs"
WHERE query_name LIKE '%example.com%'
ORDER BY query_timestamp DESC
```

## 例 4 – 応答のないログリクエストをクエリする
<a name="querying-r53-resolver-logs-example-4-query-log-requests-with-no-answer"></a>

以下のクエリは、リクエストが応答を受け取らなかったログエントリを選択します。

```
SELECT query_timestamp, srcids.instance, srcaddr, srcport, query_name, rcode, answers
FROM "r53_rlogs"
WHERE cardinality(answers) = 0
```

## 例 5 – 特定の回答が含まれるログをクエリする
<a name="querying-r53-resolver-logs-example-5-query-logs-with-a-specific-answer"></a>

以下のクエリは、`answer.Rdata` 値に指定された IP アドレスがあるログを表示します。

```
SELECT query_timestamp, srcids.instance, srcaddr, srcport, query_name, rcode, answer.Rdata
FROM "r53_rlogs"
CROSS JOIN UNNEST(r53_rlogs.answers) as st(answer)
WHERE answer.Rdata='203.0.113.16';
```