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

使用 Amazon Athena Federated Query (Preview)

如果您在 Amazon S3 以外的源中拥有数据,则可以使用 Athena Federated Query (Preview) 来查询数据或构建从多个数据源提取数据并将其存储在 Amazon S3 中的管道。通过 Athena Federated Query (Preview),您可以对存储在关系数据源、非关系数据源、对象数据源和自定义数据源中的数据运行 SQL 查询。

Athena 使用在 AWS Lambda 上运行的数据源连接器执行联合查询。数据源连接器是一段代码,可以在目标数据源和 Athena 之间进行转换。您可以将连接器视为 Athena 查询引擎的扩展。使用 Apache 2.0 许可证的 Amazon CloudWatch 日志、Amazon DynamoDB、Amazon DocumentDB 和 Amazon RDS 等数据源以及 MySQL 和 PostgreSQL 等兼容 JDBC 的关系数据源中存在预构建的 Athena 数据源连接器。您还可以使用 Athena Query Federation SDK 编写自定义连接器。要选择、配置数据源连接器并将其部署到您的账户,可以使用 Athena 和 Lambda 控制台或 AWS Serverless Application Repository。部署数据源连接器后,连接器将与可以在 SQL 查询中指定的目录相关联。您可以使用单个查询来组合来自多个目录的 SQL 语句和跨多个数据源。

针对某个数据源提交查询时,Athena 调用相应的连接器以识别需要读取的表部分、管理并行度以及下移筛选器谓词。根据提交查询的用户,连接器可以提供或限制对特定数据元素的访问。连接器使用 Apache Arrow 作为查询中请求的数据的返回格式,这使得连接器能够以 C、C++、Java、Python 和 Rust 等语言实现。由于连接器在 Lambda 中执行,因此它们可用于访问来自云中的任何数据源或可从 Lambda 访问的本地数据源的数据。

要编写自己的数据源连接器,您可以使用 Athena Query Federation SDK 自定义 Amazon Athena 提供和维护的预构建连接器之一。您可以修改来自 GitHub 存储库的源代码的副本,然后使用连接器发布工具创建您自己的 AWS Serverless Application Repository 软件包。

有关可用 Athena 数据源连接器的列表,请参阅 使用 Athena 数据源连接器

有关编写自己的数据源连接器的信息,请参阅 GitHub 上的示例 Athena 连接器

注意事项和限制

数据源连接器可能需要访问以下资源才能正常工作。如果您使用预构建的连接器,请检查连接器的信息,以确保您已正确配置 VPC。此外,请确保运行查询和创建连接器的 IAM 委托人具有执行所需操作的权限。有关更多信息,请参阅允许 Athena Federated Query (Preview) 的示例 IAM 权限策略

  • 有关已知问题和限制的最新信息,请参阅 aws-athena-query-federation GitHub 存储库中的限制和问题

  • AmazonAthenaPreviewFunctionality 工作组 – To use this feature in preview, you must create an Athena workgroup named AmazonAthenaPreviewFunctionality and join that workgroup. For more information, see 管理工作组.

  • Amazon S3 – 除了将查询结果写入 Amazon S3 中的 Athena 查询结果位置之外,数据连接器还会写入到 Amazon S3 中的溢出存储桶。此 Amazon S3 位置的连接和权限是必需的。

  • Athena – 数据源需要连接到 Athena,反之亦然,以便检查查询状态并防止过扫描。

  • 视图 – 您不能将视图与联合数据源结合使用。

  • AWS Glue 数据目录 – 如果连接器使用 Data Catalog 来获取补充元数据或主元数据,则需要连接和权限。