一般性问题
- 统一的元数据存储库:AWS Glue 可以与各种 AWS 服务集成。AWS Glue 支持在 Amazon Aurora、Amazon RDS MySQL、Amazon RDS PostreSQL、Amazon Redshift 和 Amazon S3,以及 Amazon EC2 上运行的 Virtual Private Cloud (Amazon VPC) 中的 MySQL 和 PostgreSQL 数据库中存储的数据。AWS Glue 可与 Amazon Athena、Amazon EMR、Amazon Redshift Spectrum 以及任何 Apache Hive Metastore 兼容的应用程序进行开箱即用的集成。
- 自动 schema 和分区识别:AWS Glue 可以自动抓取您的数据源、识别数据格式并提出 schema 和转换建议。抓取程序可帮助自动创建表并自动加载分区。
- 轻松构建管道:AWS Glue 的 ETL 引擎能生成可自定义、可重用且可移植的 Python 代码。您可以使用喜爱的 IDE 或笔记本电脑编辑代码,并使用 GitHub 将其与其他人共享。ETL 作业准备就绪后,您可以安排它在 AWS Glue 完全托管的扩展 Spark 基础设施上运行。AWS Glue 是一项无服务器服务,因此它可以对运行 ETL 作业所需的资源进行预置、配置和扩展,从而让您能够将 ETL 与工作流程紧密集成。
何时该使用 Athena,何时该使用其他大数据服务
创建表、数据格式和分区
- Apache Web 日志:“org.apache.hadoop.hive.serde2.RegexSerDe”
- CSV:“org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe”
- TSV:“org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe”
- 自定义分隔符:“org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe”
- Parquet:“org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe”
- Orc:“org.apache.hadoop.hive.ql.io.orc.OrcSerde”
- JSON:“org.apache.hive.hcatalog.data.JsonSerDe”或“org.openx.data.jsonserde.JsonSerDe”
查询和数据格式
问:能否将 Amazon QuickSight 与 Amazon Athena 配合使用?
问:Athena 是否支持其他 BI 工具和 SQL 客户端?
问:如何访问 Amazon Athena 支持的函数?
您可以使用 Athena Query Federation SDK 在 Java 中编写 UDF。在提交到 Athena 的 SQL 查询中使用 UDF 时,将会在 AWS Lambda 上调用和执行该 UDF。UDF 可用于 SQL 查询的 SELECT 和 FILTER 子句。您可以在同一查询中调用多个 UDF。
联合查询
问:什么是联合查询?
如果您有 Amazon S3 以外的数据来源,可以使用 Athena 就地查询数据或者构建从多个数据源提取数据并将其存储在 Amazon S3 中的管道。使用 Athena 联合查询,您可以跨关系、非关系、对象和自定义数据源运行 SQL 查询。
问:为何应在 Athena 中使用联合查询?
企业经常将数据存储在满足其应用程序或业务流程需要的数据源中。除了在 S3 数据湖中存储数据之外,这些数据源可能还包括关系、键值、文档、内存中、搜索、图形、时间序列和分类账数据库。在这些不同的数据源上执行分析可能是复杂且耗时的,因为它通常需要学习新的编程语言或数据库构造,并在用于分析之前构建复杂的管道来提取、转换和复制数据。Athena 通过允许您对它所在的数据运行 SQL 查询,消除了这种复杂性。您可以跨多个数据源使用众所周知的 SQL 构造查询数据以实现快速分析,或使用调度的 SQL 查询从多个数据源提取和转换数据,并将它们存储在 S3 中以用于将来的分析。
问:支持哪些数据源?
Athena 为几个常见的数据存储提供了内置连接器,包括 Amazon Redshift 和 Amazon DynamoDB。您可以使用这些连接器在结构化、半结构化、对象、图形、时间序列和其他数据存储类型上支持 SQL 分析使用案例。有关支持的源列表,请参阅使用 Athena 数据源连接器。
您还可以使用 Athena 的数据连接器开发工具包创建自定义数据源连接器并使用 Athena 查询它。首先查看我们的文档和示例连接器实施。
问:联合查询支持哪些使用案例?
通过 Athena,您可以利用现有的 SQL 知识从广泛的数据源中提取洞察,而无需学习一门新的语言,开发脚本来提取(和复制)数据,或管理基础设施。使用 Amazon Athena,您可以:
- 使用单一工具和 SQL 方言对分布在多个数据存储中的的数据进行按需分析
- 可视化商业智能应用程序中的数据,这些应用程序通过 JDBC 和 ODBC 接口将复杂的多源连接下推到 Athena 的分布式计算引擎
- 通过 Athena 与 AWS Step Functions 的集成,设计自助式 ETL 管道和基于事件的数据处理工作流
- 统一多种数据源,为机器学习模型训练工作流生成丰富的输入功能
- 开发面向用户的数据即产品应用程序,提供跨数据网格架构的洞察
- 在您的企业将本地部署资源迁移到 AWS 云时,支持分析使用案例
问:我是否能够将联合查询用于 ETL(提取、转换、加载)?
Athena 将查询结果存储在 Amazon S3 中的一个文件中。这意味着您可以使用 Athena 让其他用户和应用程序能够使用联合数据。如果您想要使用 Athena 对数据执行分析而不重复查询基础源,请使用 Athena 的 CREATE TABLE AS 函数。您还可以使用 Athena 的 UNLOAD 函数查询数据并将结果以特定文件格式存储在 Amazon S3 上。
问:数据源连接器是如何工作的?
数据源连接器是运行在 AWS Lambda 上的一段代码,它在目标数据源和 Athena 之间进行转换。当您使用数据源连接器向 Athena 注册数据存储后,就可以在联合数据存储上运行 SQL 查询。当查询在联合源上运行时,Athena 会调用 Lambda 函数,并让它执行特定于联合源的查询的各个部分。要了解更多信息,请参阅使用 Amazon Athena 联合查询。