入门 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

入门

本教程将指导您完成使用 Amazon Athena 来查询数据。您将根据 Amazon Simple Storage Service 中存储的示例数据创建表,查询表,并检查查询的结果。

本教程使用的是实时资源,因此,您需要为您运行的查询付费。您无需为本教程使用的位置中的示例数据付费,但如果您将自己的数据文件上传到 Amazon S3,则会收取费用。

先决条件

步骤 1:创建数据库

首先,您需要在 Athena 中创建一个数据库。

创建数据库

  1. 打开 Athena 控制台。

  2. 如果这是您第一次访问 Athena 控制台,您将转到“Getting Started”(入门) 页面。选择 Get Started 以打开查询编辑器。如果您不是第一次访问,则会打开 Athena 查询编辑器。

  3. 选择链接以 set up a query result location in Amazon S3 (在 &S3; 中设置查询结果位置)

    
                        选择 set up query result location (设置查询结果位置)。
  4. Settings (设置) 对话框中,输入您在 Amazon S3 中为查询结果创建的存储桶路径。使用 s3:// 作为路径前缀,并在路径结尾添加正斜杠。

    
                        指定 Amazon S3 中的位置用于接收来自 Athena 的查询结果。
  5. 单击 Save

  6. 在 Athena 查询编辑器中,您会看到一个查询窗格。您可以在此键入查询和语句。

    
                        Athena 控制台中的查询窗格。
  7. 要创建一个名为 mydatabase 的数据库,请输入以下 CREATE DATABASE 语句。

    CREATE DATABASE mydatabase
  8. 选择 Run query (运行查询) 或者按 Ctrl+ENTER

  9. 确认目录显示刷新并且 mydatabase 出现在左侧导航窗格中 Database (数据库) 列表内。

    
                        创建的数据库将显示在 Athena 控制台导航窗格中。

步骤 2:创建表

现在您有一个数据库,您可以运行语句来创建表。该表将基于位置 s3://athena-examples-aws-region/cloudfront/plaintext/ 中的 Athena 示例数据。创建表的语句定义映射到数据的列,指定如何分隔数据,并指定包含示例数据的 Amazon S3 位置。

创建表

  1. 对于 Database (数据库),请选择 mydatabase

  2. 在查询编辑器中选择加号 (+) 以创建带有新查询的选项卡。您最多可以同时打开十个查询选项卡。

    
                        选择加号图标以创建新查询。
  3. 在查询窗格中,输入以下 CREATE TABLE 语句。在查询结尾的 LOCATION 语句中,将 myregion 替换为您当前使用的 AWS 区域(例如,us-west-1)。

    CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( `Date` DATE, Time STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, os STRING, Browser STRING, BrowserVersion STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$" ) LOCATION 's3://athena-examples-myregion/cloudfront/plaintext/';
  4. 选择 Run Query

    此表 cloudfront_logs 将创建并显示在 mydatabase 数据库的 Tables (表) 列表下。

    
                        在 Athena 控制台中创建的表。

步骤 3:查询数据

现在,您已根据 Amazon S3 中的数据在 Athena 中创建了 cloudfront_logs 表,您可以针对该表运行 SQL 查询,并在 Athena 中查看结果。有关在 Athena 中使用 SQL 的更多信息,请参阅 Amazon Athena 的 SQL 参考

运行查询

  1. 打开新的查询选项卡,然后在查询窗格中输入以下 SQL 语句。

    SELECT os, COUNT(*) count FROM cloudfront_logs WHERE date BETWEEN date '2014-07-05' AND date '2014-08-05' GROUP BY os;
  2. 选择 Run Query

    结果与以下内容类似:

    
                        在 Athena 控制台中查看查询结果。
  3. 您可以选择 Results (结果) 窗格上的下载图标,将查询的结果保存到 .csv 文件中。

    
                        以 CSV 格式下载查询结果。
  4. 选择 History (历史记录) 选项卡可查看之前的查询。

    
                        选择 History (历史记录) 可查看之前的查询。
  5. 选择 Download results (下载结果) 可下载之前查询的结果。查询历史记录保留 45 天。

    
                        在 Athena 控制台中查看查询历史记录。

    有关更多信息,请参阅 使用查询结果、输出文件和查询历史记录

连接到其他数据源

本教程使用 Amazon S3 中 CSV 格式的数据源。您可以使用 AWS Glue、ODBC 和 JDBC 驱动程序、外部 Hive 元存储和 Athena 数据源连接器,将 Athena 连接到各种数据源。有关更多信息,请参阅连接到数据源