本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
入门
本教程将指导您完成使用 Amazon Athena 来查询数据。您将根据 Amazon Simple Storage Service 中存储的示例数据创建表,查询表,并检查查询的结果。
本教程使用的是实时资源,因此,您需要为您运行的查询付费。您无需为本教程使用的位置中的示例数据付费,但如果您将自己的数据文件上传到 Amazon S3,则会收取费用。
Prerequisites
-
如果您尚未完成此操作,请在设置中注册账户。
-
使用用于 AWS 的相同 美国西部(俄勒冈) 区域(例如,Athena)和账户在 Amazon S3 中创建存储桶以保存来自 Athena 的查询结果。
步骤 1:创建数据库
首先,您需要在 Athena 中创建一个数据库。
创建数据库
-
打开 Athena 控制台。
-
如果这是您第一次访问 Athena 控制台,您将转到“Getting Started”(入门) 页面。选择 Get Started 以打开查询编辑器。如果您不是第一次访问,则会打开 Athena 查询编辑器。
-
选择链接以 set up a query result location in Amazon S3 (在 &S3; 中设置查询结果位置)。
-
在 Settings (设置) 对话框中,输入您在 Amazon S3 中为查询结果创建的存储桶路径。使用
s3://
作为路径前缀,并在路径结尾添加正斜杠。 -
单击保存。
-
在 Athena 查询编辑器中,您会看到一个查询窗格。您可以在此键入查询和语句。
-
要创建一个名为
mydatabase
的数据库,请输入以下 CREATE DATABASE 语句。CREATE DATABASE mydatabase
-
选择 Run query (运行查询) 或者按
Ctrl+ENTER
。 -
确认目录显示刷新并且
mydatabase
出现在左侧导航窗格中 Database (数据库) 列表内。
步骤 2:创建表
现在您有一个数据库,您可以运行语句来创建表。该表将基于位置 Athena 中的 s3://athena-examples-
示例数据。 创建表的语句定义映射到数据的列,指定如何分隔数据,并指定包含示例数据的 Amazon S3 位置。
myregion
/cloudfront/plaintext/
创建 表
-
对于 Database (数据库),请选择
mydatabase
。 -
在查询编辑器中选择加号 (+) 以创建带有新查询的选项卡。您最多可以同时打开十个查询选项卡。
-
在查询窗格中,输入以下
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/'; -
选择 Run Query。
将创建表
cloudfront_logs
并显示在 数据库的 Tables (表)mydatabase
列表下。
步骤 3:查询数据
现在,您已根据 Amazon S3 中的数据在 Athena 中创建了 cloudfront_logs
表,您可以针对该表运行 SQL 查询,并在 Athena 中查看结果。有关在 Athena 中使用 SQL 的更多信息,请参阅 Amazon Athena 的 SQL 参考。
运行查询
-
打开新的查询选项卡,然后在查询窗格中输入以下 SQL 语句。
SELECT os, COUNT(*) count FROM cloudfront_logs WHERE date BETWEEN date '2014-07-05' AND date '2014-08-05' GROUP BY os;
-
选择 Run Query。
结果与以下内容类似:
-
您可以通过选择
.csv
Results (结果) 窗格上的下载图标将查询的结果保存到 文件中。 -
选择 History (历史记录) 选项卡可查看之前的查询。
-
选择 Download results (下载结果) 可下载之前查询的结果。查询历史记录保留 45 天。
有关更多信息,请参阅使用查询结果、输出文件和查询历史记录。
连接到其他数据源
本教程使用 Amazon S3 中 CSV 格式的数据源。您可以使用 AWS Glue、ODBC 和 JDBC 驱动程序、外部 Hive 元存储和 Athena 数据源连接器,将 Athena 连接到各种数据源。有关更多信息,请参阅连接到数据源。