

# 为解析程序查询日志创建表
<a name="querying-r53-resolver-logs-creating-the-table"></a>

您可以使用 Athena 控制台中的查询编辑器为 Route 53 解析程序查询日志创建和查询表。

**为 Route 53 解析程序查询日志创建和查询 Athena 表**

1. 从 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) 打开 Athena 控制台。

1. 在 Athena 查询编辑器中，输入以下 `CREATE TABLE` 语句。将 `LOCATION` 子句值替换为与您的解析程序日志在 Amazon S3 中的位置相对应的子句值。

   ```
   CREATE EXTERNAL TABLE r53_rlogs (
     version string,
     account_id string,
     region string,
     vpc_id string,
     query_timestamp string,
     query_name string,
     query_type string,
     query_class
       string,
     rcode string,
     answers array<
       struct<
         Rdata: string,
         Type: string,
         Class: string>
       >,
     srcaddr string,
     srcport int,
     transport string,
     srcids struct<
       instance: string,
       resolver_endpoint: string
       >,
     firewall_rule_action string,
     firewall_rule_group_id string,
     firewall_domain_list_id string
    )
        
   ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
   LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/aws_account_id/vpcdnsquerylogs/{vpc-id}/'
   ```

   由于解析程序查询日志数据是 JSON 格式的，因此 CREATE TABLE 语句将使用 [JSON SerDe 库](json-serde.md)来分析数据。
**注意**  
SerDe 期望每个 JSON 文档都位于单行文本中，并且不使用行终止字符分隔记录中的字段。如果 JSON 文本采用美观的打印格式，当您在创建表后尝试对其进行查询时，可能会收到类似以下内容的错误消息：HIVE\$1CURSOR\$1ERROR: Row is not a valid JSON Object（HIVE\$1CURSOR\$1ERROR：行不是有效的 JSON 对象）或 HIVE\$1CURSOR\$1ERROR: JsonParseException: Unexpected end-of-input: expected close marker for OBJECT（HIVE\$1CURSOR\$1ERROR：JsonParseException：意外的输入结束：对象的预期关闭标记）。有关更多信息，请参阅 GitHub 上 OpenX SerDe 文档中的 [JSON 数据文件](https://github.com/rcongiu/Hive-JSON-Serde#json-data-files)。

1. 选择**运行查询**。该语句创建名为 `r53_rlogs` 的 Athena 表，其中的列表示解析程序日志数据中的每个字段。

1. 在 Athena 控制台查询编辑器中，运行以下查询以验证您的表是否已创建。

   ```
   SELECT * FROM "r53_rlogs" LIMIT 10
   ```