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

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

入门

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

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

Prerequisites

  • 如果您尚未完成此操作,请在设置中注册账户。

  • 使用相同的 AWS 地区(例如, 美国西部(俄勒冈))和您正在使用的帐户 Athena, 在 Amazon S3 要保留您的查询结果 Athena.

步骤 1. 创建数据库

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

创建数据库

  1. 打开Athena控制台。

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

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

    
                        选择 设置查询结果位置.
  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. 创建 表

现在您有一个数据库,您可以运行语句来创建表。该表将基于 Athena 位置中的样品数据 s3://athena-examples-aws-region/cloudfront/plaintext/。创建表格的语句定义映射到数据的列,指定数据分隔方式,并指定 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 (历史记录) 选项卡可查看之前的查询。

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

    
                        在 Athena 控制台。

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

连接到其他数据源

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