本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将数据目录连接到外部 Hive 元存储
要连接 AWS Glue Data Catalog 到 Hive 元数据仓,您需要部署一个名为 GlueDataCatalogFederation-的 AWS SAM 应用程序。HiveMetastore
该 AWS SAM 应用程序使用 Lambda 函数为 Amazon API Gateway 后面的 Hive 元数据仓创建连接。 AWS SAM 应用程序使用统一资源标识符 (URI) 作为用户的输入,并将外部 Hive 元数据仓连接到数据目录。当用户对 Hive 表运行查询时,数据目录会调用 API Gateway 终端节点。该端点调用 Lambda 函数来检索 Hive 表的元数据。
将数据目录连接到 Hive 元存储并设置权限
-
部署 AWS SAM 应用程序。
登录 AWS Management Console 并打开 AWS Serverless Application Repository。
在导航窗格中,选择 Available applications (可用应用程序)。
-
选择公用应用程序。
选择 Show apps that create custom IAM roles or resource policies(显示创建自定义 IAM 角色或资源策略的应用程序)选项。
在搜索框中输入名称 GlueDataCatalogFederation-HiveMetastore。
-
选择 GlueDataCatalogFederation-HiveMetastore 应用程序。
-
在应用程序设置下,为您的 Lambda 函数输入以下必需的最低设置:
应用程序名称- AWS SAM 应用程序的名称。
GlueConnectionName-连接的名称。
HiveMetastoreURI-您的 Hive 元数据仓主机的 URI。
-
LambdaMemory-从 128-10240 开始的 Lambda 内存量(以 MB 为单位)。默认值为 1024。
LambdaTimeout-Lambda 调用的最大运行时间(以秒为单位)。默认值为 30。
VPC SecurityGroupIds 和 VPC SubnetIds-存在 Hive 元数据仓的 VPC 的信息。
选中 I acknowledge that this app creates custom IAM roles and resource policies(我确认此应用程序创建自定义 IAM 角色和资源策略)。有关更多信息,请选择 Info (信息) 链接。
在 Application settings(应用程序设置)部分的右下角,选择 Deploy(部署)。部署完成后,Lambda 函数将显示在 Lambda 控制台中的 Resource(资源)部分。
该应用程序已部署到 Lambda。它的名称前面带有 serverlessrepo-,表示该应用程序是从中部署的。 AWS Serverless Application Repository选择该应用程序会将您带到资源页面,该页面中列出了已部署的应用程序的每个资源。这些资源包括允许在数据目录和 Hive 元数据仓之间进行通信的 Lambda 函数、 AWS Glue 连接以及数据库联合所需的其他资源。
-
在数据目录中创建数据库。
创建与 Hive 元数据仓的连接后,可以在数据目录中创建指向外部 Hive 元数据仓数据库的联合数据库。您需要在数据目录中为连接到数据目录的每个 Hive 元数据仓数据库创建相应的数据库。
-
查看联合数据库中的表。
创建联合数据库后,您可以使用 Lake Formation 控制台或 AWS CLI查看 Hive 元存储中表的列表。
-
授予权限
创建数据库后,您可以向账户中的其他 IAM 用户和角色或外部 AWS 账户 和组织授予权限。您将无法授予对联合数据库的写入数据权限(插入、删除)和元数据权限(更改、删除、创建)。有关授予权限的更多信息,请参阅管理 Lake Formation 权限。
-
查询联合数据库。
在您授予权限后,用户可以使用 Athena 和 Amazon Redshift 登录并开始查询联合数据库。用户现在可以在 SQL 查询中使用本地数据库名称引用 Hive 数据库。
Amazon Athena 查询语法示例
fed_glue_db
替换为之前创建的本地数据库名称。Select * from fed_glue_db.customers limit 10;