使用 Athena 控制台连接数据来源
您可以使用 Athena 控制台创建和配置数据来源连接。
创建数据来源连接
从 https://console.aws.amazon.com/athena/
打开 Athena 控制台。 如果控制台导航窗格不可见,请选择左侧的扩展菜单。
-
在导航窗格中,选择数据来源和目录。
-
在数据来源和目录页面上,选择创建数据来源。
-
对于 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 编写数据来源连接器。
-
选择下一步。
-
在输入数据来源详细信息页面中,对于数据来源名称,请输入从 Athena 查询该数据来源时要在 SQL 语句中使用的名称。名称最多可以包括 127 个字符,并且在您的账户中必须是唯一的。它在创建后即无法更改。有效字符包括 a-z、A-Z、0-9、_(下划线)、@(at 符号)和 -(连字符)。名称
awsdatacatalog
、hive
、jmx
和system
是 Athena 预留的名称,无法用于数据源名称。 -
如果您选择的数据来源与 Amazon Glue 连接集成:
-
对于 Amazon Glue 连接详细信息,请输入所需的信息。连接包含连接到特定数据来源所需的属性。所需的属性因连接类型而异。有关与连接器相关的属性的更多信息,请参阅可用数据来源连接器。有关其他连接属性的信息,请参阅《Amazon Glue 用户指南》中的 Amazon Glue 连接属性。
注意
-
更新 Glue 连接属性时,需要重新启动 Lambda 连接器才能获取更新后的属性。要执行此操作,请编辑环境属性,然后在实际上并未更改任何内容的情况下将其保存。
-
更新 Glue 连接时,以下属性不会在相应的 Lambda 函数中自动更新。您必须手动为 Lambda 函数更新这些属性。
-
Lambda VPC 配置 –
security_group_ids
、subnet_ids
-
Lambda 执行角色 –
spill_bucket
、secret_name
、spill_kms_key_id
-
-
-
对于 Lambda 执行 IAM 角色,请选择下列选项中的一个:
-
创建并使用新的执行角色 –(默认)Athena 会创建一个执行角色,然后使用该角色代表您访问 Amazon Lambda 中的资源。Athena 需要此角色才能创建联合数据来源。
-
使用现有执行角色 – 使用此选项以选择一个现有的执行角色。对于此选项,请从执行角色下拉列表中选择要使用的执行角色。
-
-
-
如果您选择的数据来源未与 Amazon Glue 连接集成:
-
对于 Lambda function(Lambda 函数),请选择 Create Lambda function(创建 Lambda 函数)。您选择的连接器的函数页将在 Amazon Lambda 控制台中打开。该页面包括连接器的详细信息。
-
在 Application settings(应用程序设置)项下,请仔细阅读每个应用程序设置的说明,然后输入符合您要求的值。
您看到的应用程序设置因数据源的连接器而异。所需的最低设置包括:
-
AthenaCatalogName – 指明其目标数据源的小写 Lambda 函数名称,例如
cloudwatchlogs
。 -
SpillBucket – 您的账户中用于存储超出 Lambda 函数响应大小限制的数据的 Amazon S3 存储桶。
注意
溢出的数据不会在后续的执行中重复使用,并且可以安全地删除。Athena 不会为您删除这些数据。要管理这些对象,请考虑添加一个将从 Amazon S3 溢出存储桶中删除旧数据的对象生命周期策略。有关更多信息,请参阅《Amazon S3 用户指南》中的管理对象的生命周期。
-
-
选中 I acknowledge that this app creates custom IAM roles and resource policies(我确认此应用程序创建自定义 IAM 角色和资源策略)。有关更多信息,请选择 Info (信息) 链接。
-
选择部署。部署完成后,Lambda 函数将显示在 Lambda 控制台中的 Resource(资源)部分。
将数据源连接器部署到您的账户后,可以将 Athena 连接到此数据源连接器。
-
返回至 Athena 控制台中的 Enter data source details(输入数据源详细信息)页面。
-
在 Connection details(连接详细信息)部分中,选择 Select or enter a Lambda function(选择或输入 Lambda 函数)搜索框旁的刷新图标。
-
在 Lambda 控制台上选择刚创建的函数名称。将显示 Lambda 函数的 ARN。
-
-
(可选)对于 Tags(标签),添加要与此数据源关联的键值对。有关标签的更多信息,请参阅 标记 Athena 资源。
-
选择下一步。
-
在检查并创建页面上,检查数据来源的详细信息。要进行更改,请选择编辑。
-
阅读 Athena 将在您的账户中创建资源中的信息。如果您同意,请选择我确认 Athena 将代表我创建资源。
-
选择创建数据来源。Athena 将为您创建以下资源。
-
Lambda 执行 IAM 角色
-
Amazon Glue 连接(仅限数据来源与 Amazon Glue 连接兼容时)
-
Lambda 函数
-
数据源此页面的 Data source details(数据源详细信息)部分显示了有关新连接器的信息。现在,您可以在 Athena 查询中使用连接器。
有关在查询中使用数据连接器的信息,请参阅 运行联合查询。