Amazon Athena
对 S3 上的数据执行标准 SQL 查询的无服务器分析服务,无需管理基础设施即可按量付费实现 PB 级数据分析
概述
Amazon Athena 是一项无服务器的交互式查询服务,可对存储在 S3 中的数据执行标准 SQL (基于 Trino / Presto) 查询。无需预置数据库或集群,只需对 S3 上的数据定义模式即可执行查询。支持 CSV、JSON、Parquet、ORC、Avro 等多种数据格式,并与 Glue Data Catalog 集成管理模式。AWS 按扫描的数据量对 Athena 查询按量计费 (截至 2026 年 9 月),单价可在官方定价页面查看。使用 Parquet 或 ORC 等列式格式时,由于只扫描所需的列,可以降低成本。
无服务器分析的工作原理
Athena 在每次执行查询时自动预置所需的计算资源,查询完成后释放。与 Redshift 不同,无需常驻运行集群,因此不执行查询的时段不产生查询费用。查询执行引擎基于 Trino (原 Presto),通过分布式处理高速扫描大规模数据集。要最大化 Athena 的性能,数据的存储格式至关重要。CSV 和 JSON 是行式格式,即使只获取特定列也需要扫描整个文件。Parquet 和 ORC 是列式格式,只读取所需的列,因此扫描量大幅减少。此外,如果对数据进行分区 (年/月/日的目录结构),则只扫描与 WHERE 子句条件匹配的分区,成本和性能都会得到改善。
CloudTrail 日志与 VPC 流日志分析
Athena 的代表性应用场景之一是 AWS 日志分析。将 CloudTrail 日志投递到 S3 并用 Athena 查询,即可用 SQL 轻松提取特定用户的 API 调用历史、特定资源的访问模式、发生错误的 API 调用列表等。VPC 流日志同样可以投递到 S3 并用 Athena 分析,可以识别来自特定 IP 地址的通信模式、被拒绝的流量列表、数据传输量大的通信目标等。ALB 访问日志、S3 访问日志、CloudFront 访问日志也可以用 Athena 分析。在这些日志分析中,事先进行 Parquet 格式转换和分区分割,可以减少扫描量并降低查询成本。
实务活用模式
Athena 适合数据湖上的即席分析。以 S3 作为数据湖,汇集来自各种来源的数据 (应用程序日志、IoT 数据、业务数据),用 Athena 进行跨源分析。使用 Glue ETL 作业将数据转换为 Parquet 格式,用 Glue Data Catalog 管理模式,用 Athena 查询——这是经典的流水线模式。与 QuickSight 联动后,可以将 Athena 的查询结果可视化为仪表板。Azure 的对应服务是 Azure Synapse Analytics 的无服务器 SQL 池,同样可以对 Azure Blob Storage 上的数据执行 SQL 查询。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。