

# 使用 Athena 控制台连接数据来源
<a name="connect-to-a-data-source-console-steps"></a>

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

**创建数据来源连接**

1. 从 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) 打开 Athena 控制台。

1. 如果控制台导航窗格不可见，请选择左侧的扩展菜单。  
![\[选择扩展菜单。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/nav-pane-expansion.png)

1. 在导航窗格中，选择**数据来源和目录**。

1. 在**数据来源和目录**页面上，选择**创建数据来源**。

1. 对于**选择数据来源**，请选择想要 Athena 查询的数据来源，同时考虑以下准则：
   + 选择与数据来源对应的连接选项。Athena 具有预构建的数据来源连接器，您可以为 MySQL、Amazon DocumentDB 和 PostgreSQL 等源配置这些连接器。
   + 如果您想查询 Amazon S3 中的数据，但您没有使用 Apache Hive 元存储或本页面上的其他联合查询数据来源选项之一，请选择 **S3 - AWS Glue Data Catalog**。Athena 使用 AWS Glue Data Catalog 在 Amazon S3 中存储数据来源的元数据和架构信息。这是默认的（非联合）选项。有关更多信息，请参阅 [使用 AWS Glue Data Catalog 连接数据](data-sources-glue.md)。有关使用此工作流的步骤，请参阅[在 Athena 中注册和使用数据目录](gdc-register.md)。
   + 选择 **S3 - Apache Hive 元存储**，查询在 Amazon S3 中使用 Apache Hive 元存储的数据集。有关此选项的更多信息，请参阅 [将 Athena 连接到 Apache Hive 元存储](connect-to-data-source-hive-connecting-athena-to-an-apache-hive-metastore.md)。
   + 如果您想创建自己的数据来源连接器，以便与 Athena 一起使用，请选择**自定义或共享连接器**。有关编写数据来源连接器的信息，请参阅 [使用 Athena Query Federation SDK 编写数据来源连接器](connect-data-source-federation-sdk.md)。

1. 选择**下一步**。

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

1. 如果您选择的数据来源与 AWS Glue 连接集成：

   1. 对于 **AWS Glue 连接详细信息**，请输入所需的信息。连接包含连接到特定数据来源所需的属性。所需的属性因连接类型而异。有关与连接器相关的属性的更多信息，请参阅[可用数据来源连接器](connectors-available.md)。有关其他连接属性的信息，请参阅《AWS Glue 用户指南》中的 [AWS Glue 连接属性](https://docs.aws.amazon.com/glue/latest/dg/connection-properties.html)**。
**注意**  
更新 Glue 连接属性时，需要重新启动 Lambda 连接器才能获取更新后的属性。要执行此操作，请编辑环境属性，然后在实际上并未更改任何内容的情况下将其保存。
更新 Glue 连接时，以下属性不会在相应的 Lambda 函数中自动更新。您必须手动为 Lambda 函数更新这些属性。  
Lambda VPC 配置 – `security_group_ids`、`subnet_ids`
Lambda 执行角色 – `spill_bucket`、`secret_name`、`spill_kms_key_id`

   1. 对于 **Lambda 执行 IAM 角色**，请选择下列选项中的一个：
      + **创建并使用新的执行角色** –（默认）Athena 会创建一个执行角色，然后使用该角色代表您访问 AWS Lambda 中的资源。Athena 需要此角色才能创建联合数据来源。
      + **使用现有执行角色** – 使用此选项以选择一个现有的执行角色。对于此选项，请从**执行角色**下拉列表中选择要使用的执行角色。

1. 如果您选择的数据来源未与 AWS Glue 连接集成：

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

   1. 在 **Application settings**（应用程序设置）项下，请仔细阅读每个应用程序设置的说明，然后输入符合您要求的值。

      您看到的应用程序设置因数据来源的连接器而异。所需的最低设置包括：
      + **AthenaCatalogName**：指明其目标数据来源的小写 Lambda 函数名称，例如 `cloudwatchlogs`。
      + **SpillBucket** – 您的账户中用于存储超出 Lambda 函数响应大小限制的数据的 Amazon S3 存储桶。
**注意**  
溢出的数据不会在后续的执行中重复使用，并且可以安全地删除。Athena 不会为您删除这些数据。要管理这些对象，请考虑添加一个将从 Amazon S3 溢出存储桶中删除旧数据的对象生命周期策略。有关更多信息，请参阅《Amazon S3 用户指南》中的[管理对象的生命周期](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)。

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

   1. 选择**部署**。部署完成后，Lambda 函数将显示在 Lambda 控制台中的 **Resource**（资源）部分。

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

   1. 返回至 Athena 控制台中的**输入数据来源详细信息**页面。

   1. 在 **Connection details**（连接详细信息）部分中，选择 **Select or enter a Lambda function**（选择或输入 Lambda 函数）搜索框旁的刷新图标。

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

1. （可选）对于**标签**，添加要与此数据来源关联的键值对。有关标签的更多信息，请参阅[标记 Athena 资源](tags.md)。

1. 选择**下一步**。

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

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

1. 选择**创建数据来源**。**Athena** 将为您创建以下资源。
   + Lambda 执行 IAM 角色
   + AWS Glue 连接（仅限数据来源与 AWS Glue 连接兼容时）
   + Lambda 函数

数据来源此页面的**数据来源详细信息**部分显示了有关新连接器的信息。现在，您可以在 Athena 查询中使用连接器。

有关在查询中使用数据连接器的信息，请参阅 [运行联合查询](running-federated-queries.md)。