Amazon Athena 热门2016年〜
使用 SQL 直接分析 S3 上数据的无服务器查询服务
它能做什么
Amazon Athena 是一项无服务器分析服务,可使用标准 SQL 直接对 S3 中存储的数据执行查询。无需构建数据库服务器或移动数据,即可直接分析 S3 中的数据。支持 CSV、JSON、Parquet、ORC 等多种数据格式,按扫描的数据量计费。
使用场景
用于分析 S3 中积累的日志文件、调查 CloudTrail 审计日志、从访问日志中进行趋势分析、汇总数据湖中的业务数据、临时性数据分析等需要便捷分析 S3 数据的场景。
日常类比
可以将其比作图书馆的藏书检索系统。无需将海量藏书(S3 数据)搬到别处,只需在检索终端(Athena)输入条件,即可瞬间找到所需信息。按检索量收费,无需维护检索终端。
什么是 Athena
Amazon Athena 是以 S3 为数据源的无服务器交互式查询服务。内部使用 Apache Presto(Trino)引擎,即使面对大规模数据集也能高速执行查询。完全无需服务器配置和管理,只需编写并执行 SQL 即可开始数据分析。
主要特点
Athena 最大的魅力在于可以直接分析已存储在 S3 中的数据。无需通过 ETL(提取、转换、加载)处理将数据迁移到其他数据库。费用仅按扫描的数据量收取,约 5 美元/TB。将数据转换为 Parquet 或 ORC 等列式格式并进行分区,可大幅减少扫描量,优化成本和速度。
与数据目录的集成
Athena 与 AWS Glue 数据目录集成,管理 S3 上数据的 Schema(结构)。使用 Glue 爬虫程序可自动扫描 S3 数据并创建表定义。表定义完成后,即可像普通数据库一样使用 SELECT 语句检索数据。 关于与数据目录集成的详细机制,参考书籍(Amazon)中也有解说。
开始使用
要开始使用 Athena,在 Athena 控制台中打开查询编辑器。首先设置查询结果的存储目标 S3 存储桶。然后使用 CREATE TABLE 语句定义 S3 上数据的位置和 Schema。表创建完成后,即可使用 SELECT 语句检索数据。可直接从 AWS 管理控制台执行查询,结果也可以 CSV 格式下载。
注意事项
- 按扫描数据量计费,请通过分区和列式格式优化成本
- 对大量数据执行复杂查询时执行时间可能较长。定期分析可能更适合使用 Redshift
- 查询结果保存在 S3 中,请注意结果存储桶的存储成本