使用 Athena 控制台连接数据来源 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Athena 控制台连接数据来源

您可以使用 Athena 控制台创建和配置数据来源连接。

创建数据来源连接
  1. https://console.aws.amazon.com/athena/ 打开 Athena 控制台。

  2. 如果控制台导航窗格不可见,请选择左侧的扩展菜单。

    选择扩展菜单。
  3. 在导航窗格中,选择数据来源和目录

  4. 数据来源和目录页面上,选择创建数据来源

  5. 对于 Choose Data source(选择数据源),请选择想要 Athena 查询的数据源,同时考虑以下准则:

    • 选择与数据来源对应的连接选项。Athena 具有预构建的数据源连接器,您可以为 MySQL、Amazon DocumentDB 和 PostgreSQL 等源配置这些连接器。

    • 如果您想查询 Amazon S3 中的数据,但您没有使用 Apache Hive 元数据仓或本页面上的其他联合查询数据源选项之一,请选择 S3 - Amazon Glue Data Catalog。Athena 使用 Amazon Glue Data Catalog 在 Amazon S3 中存储数据源的元数据和架构信息。这是默认的(非联合)选项。有关更多信息,请参阅 使用 Amazon Glue Data Catalog 连接数据。有关使用此工作流的步骤,请参阅在 Athena 中注册和使用数据目录

    • 选择 S3 - Apache Hive metastore(S3 - Apache Hive 元数据仓),查询在 Amazon S3 中使用 Apache Hive 元数据仓的数据集。有关此选项的更多信息,请参阅 将 Athena 连接到 Apache Hive 元存储

    • 如果您想创建自己的数据源连接器,以便与 Athena 一起使用,请选择 Custom or shared connector(自定义或共享连接器)。有关编写数据源连接器的信息,请参阅 使用 Athena Query Federation SDK 编写数据来源连接器

  6. 选择下一步

  7. 输入数据来源详细信息页面中,对于数据来源名称,请输入从 Athena 查询该数据来源时要在 SQL 语句中使用的名称。名称最多可以包括 127 个字符,并且在您的账户中必须是唯一的。它在创建后即无法更改。有效字符包括 a-z、A-Z、0-9、_(下划线)、@(at 符号)和 -(连字符)。名称 awsdatacataloghivejmxsystem 是 Athena 预留的名称,无法用于数据源名称。

  8. 如果您选择的数据来源与 Amazon Glue 连接集成:

    1. 对于 Amazon Glue 连接详细信息,请输入所需的信息。连接包含连接到特定数据来源所需的属性。所需的属性因连接类型而异。有关与连接器相关的属性的更多信息,请参阅可用数据来源连接器。有关其他连接属性的信息,请参阅《Amazon Glue 用户指南》中的 Amazon Glue 连接属性

      注意
      • 更新 Glue 连接属性时,需要重新启动 Lambda 连接器才能获取更新后的属性。要执行此操作,请编辑环境属性,然后在实际上并未更改任何内容的情况下将其保存。

      • 更新 Glue 连接时,以下属性不会在相应的 Lambda 函数中自动更新。您必须手动为 Lambda 函数更新这些属性。

        • Lambda VPC 配置 – security_group_idssubnet_ids

        • Lambda 执行角色 – spill_bucketsecret_namespill_kms_key_id

    2. 对于 Lambda 执行 IAM 角色,请选择下列选项中的一个:

      • 创建并使用新的执行角色 –(默认)Athena 会创建一个执行角色,然后使用该角色代表您访问 Amazon Lambda 中的资源。Athena 需要此角色才能创建联合数据来源。

      • 使用现有执行角色 – 使用此选项以选择一个现有的执行角色。对于此选项,请从执行角色下拉列表中选择要使用的执行角色。

  9. 如果您选择的数据来源未与 Amazon Glue 连接集成:

    1. 对于 Lambda function(Lambda 函数),请选择 Create Lambda function(创建 Lambda 函数)。您选择的连接器的函数页将在 Amazon Lambda 控制台中打开。该页面包括连接器的详细信息。

    2. Application settings(应用程序设置)项下,请仔细阅读每个应用程序设置的说明,然后输入符合您要求的值。

      您看到的应用程序设置因数据源的连接器而异。所需的最低设置包括:

      • AthenaCatalogName – 指明其目标数据源的小写 Lambda 函数名称,例如 cloudwatchlogs

      • SpillBucket – 您的账户中用于存储超出 Lambda 函数响应大小限制的数据的 Amazon S3 存储桶。

        注意

        溢出的数据不会在后续的执行中重复使用,并且可以安全地删除。Athena 不会为您删除这些数据。要管理这些对象,请考虑添加一个将从 Amazon S3 溢出存储桶中删除旧数据的对象生命周期策略。有关更多信息,请参阅《Amazon S3 用户指南》中的管理对象的生命周期

    3. 选中 I acknowledge that this app creates custom IAM roles and resource policies(我确认此应用程序创建自定义 IAM 角色和资源策略)。有关更多信息,请选择 Info (信息) 链接。

    4. 选择部署。部署完成后,Lambda 函数将显示在 Lambda 控制台中的 Resource(资源)部分。

      将数据源连接器部署到您的账户后,可以将 Athena 连接到此数据源连接器。

    5. 返回至 Athena 控制台中的 Enter data source details(输入数据源详细信息)页面。

    6. Connection details(连接详细信息)部分中,选择 Select or enter a Lambda function(选择或输入 Lambda 函数)搜索框旁的刷新图标。

    7. 在 Lambda 控制台上选择刚创建的函数名称。将显示 Lambda 函数的 ARN。

  10. (可选)对于 Tags(标签),添加要与此数据源关联的键值对。有关标签的更多信息,请参阅 标记 Athena 资源

  11. 选择下一步

  12. 检查并创建页面上,检查数据来源的详细信息。要进行更改,请选择编辑

  13. 阅读 Athena 将在您的账户中创建资源中的信息。如果您同意,请选择我确认 Athena 将代表我创建资源

  14. 选择创建数据来源Athena 将为您创建以下资源。

    • Lambda 执行 IAM 角色

    • Amazon Glue 连接(仅限数据来源与 Amazon Glue 连接兼容时)

    • Lambda 函数

数据源此页面的 Data source details(数据源详细信息)部分显示了有关新连接器的信息。现在,您可以在 Athena 查询中使用连接器。

有关在查询中使用数据连接器的信息,请参阅 运行联合查询