本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS Glue 连接创建联合目录
要将 AWS Glue Data Catalog 连接到外部数据源,您需要使用能够与外部数据源进行通信的 AWS Glue 连接。您可以使用 AWS Glue 控制台、创建 AWS Glue 连接 API 和 Amazon SageMaker Lakehouse 控制台创建连接。
有关创建连接的分步说明,请参阅 AWS Glue 开发者指南中的 AWS Glue 连接数据或在 Amazon SageMaker Lakehouse 中创建连接。
当用户对联合表运行查询时,Lake Formation 会出售证书,这些凭据调用 AWS Glue 连接中指定的 AWS Lambda 函数从数据源检索元数据对象。
- AWS 管理控制台
-
从外部数据来源创建联合目录并设置权限(控制台)
-
打开 Lake Formation 控制台,网址为https://console.aws.amazon.com/lakeformation/
。 在导航窗格的 Data Catalog 下,选择目录。
选择创建目录选项。
在设置目录详细信息页面上,输入以下信息:
-
名称:您的联合目录的唯一名称。名称不能更改,且必须为小写。名称最多可包含 255 个字符,并且在账户内必须是唯一的。
-
类型:选择联合目录作为目录类型。
-
来源:从下拉列表中选择一个数据来源。将显示您为其创建了连接的数据来源。有关创建外部数据源 AWS Glue 连接的更多信息,请参阅 AWS Glue 开发者指南中的为连接器创建连接或在 Amazon SageMaker Lakehouse 中创建连接。
-
连接-选择与数据源的现有 AWS Glue 连接。
-
描述:输入从数据来源创建的目录的描述。
-
-
选择 IAM 角色来让 Lake Formation 代入,以便为查询引擎提供凭证,从而访问数据来源中的数据。此角色必须具有访问 AWS Glue 连接和调用 Lambda 函数访问来自外部数据源的数据所需的权限。
您也可以在 IAM 控制台中创建新角色。
有关所需权限,请参阅 将 Data Catalog 连接到外部数据来源的先决条件 部分。
-
选择激活连接器以连接到数据来源选项,以便使 Athena 可以运行联合查询。
有关支持的连接器列表,请参阅《Amazon Athena 用户指南》中的注册连接。
-
加密选项:如果要使用自定义密钥来加密目录,请选择自定义加密设置选项。要使用自定义密钥,必须向 KMS 密钥添加额外的自定义托管式密钥策略。
选择下一步向其他主体授予权限。
在授予权限页面上,请选择添加权限。
-
在添加权限屏幕上,选择主体和要授予的权限类型。
-
在主体部分中,选择主体类型,然后指定要授予权限的主体。
-
IAM 用户和角色:从 IAM 用户和角色列表中选择一个或多个用户或角色。
-
SAML 用户和群组 — 对于 SAML 以及 Amazon Quick Suite 用户和群组,请为通过 SAML 联合的用户或群组或 Amazon Quick Suite 用户或群组输入一个或多个 ARNs 亚马逊资源名称 (ARNs)。在每个 ARN 后按 Enter。
-
-
在权限部分中,选择权限和可授予的权限。
在目录权限下,选择要授予的一项或多项权限。
选择超级用户以授予对目录中所有资源的不受限管理权限。
在 “可授予权限” 下,选择授予接受者可以向其 AWS 账户中的其他委托人授予的权限。当您从外部账户向 IAM 委托人授予权限时,不支持此选项。
-
-
选择下一步检查信息并创建目录。目录列表会显示新的联合目录。
数据位置列表会显示新注册的联合连接。
-
- AWS CLI
-
从外部数据来源创建联合目录并设置权限
-
以下示例说明如何创建 AWS Glue 连接。
aws glue create-connection --connection-input \ '{ "Name":"DynamoDB connection", "ConnectionType":"DYNAMODB", "Description":"A connection created for DynamoDB", "ConnectionProperties": {}, "AthenaProperties": "spill_prefix":"your_spill_prefix", "lambda_function_arn":"Lambda_function_arn", "spill_bucket":"Your_Bucket_name", "AuthenticationConfiguration": {} }' -
以下示例显示了如何向 Lake For AWS Glue mation 注册连接。
aws lakeformation register-resource --cli-input-json \ {"ResourceArn":"arn:aws:glue:us-east-1:123456789012:connection/dynamo","RoleArn":"arn:aws:iam::123456789012:role/AdminTelemetry","WithFederation":true} -
以下示例演示了如何创建联合目录。
aws glue create-catalog --cli-input-json \ '{ "Name":"ddbcatalog", "CatalogInput":{"CatalogProperties":{"DataLakeAccessProperties":{"DataTransferRole":"arn:aws:iam::123456789012:role/role name"}}, "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[], "FederatedCatalog":{"ConnectionName":"dynamo","Identifier":"dynamo"} } }'
-