本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Lake Formation 中为开放表存储格式设置权限
Amazon Lake Formation 支持管理开放表格格式 (OTF) 的访问权限,例如 Apache I ceberg、Apache
注意
Amazon 分析服务不支持所有交易表格式。有关更多信息,请参阅 使用其他 Amazon 服务。本教程介绍如何仅使用 Amazon Glue 作业在数据目录中手动创建新数据库和表。
本教程包括一个用于快速设置的 Amazon CloudFormation 模板。您可以查看和自定义该模板来满足自己的需求。
主题
目标受众
本教程适用于 IAM 管理员、数据湖管理员和业务分析师。下表列出了本教程中使用 Lake Formation 创建受管控表时所使用的角色。
| 角色 | 说明 |
|---|---|
| IAM 管理员 | 可以创建 IAM 用户和角色以及 Amazon S3 存储桶的用户。有AdministratorAccess Amazon 托管策略。 |
| 数据湖管理员 | 可以访问数据目录、创建数据库以及向其他用户授予 Lake Formation 权限的用户。拥有的 IAM 权限比 IAM 管理员少,但足以管理数据湖。 |
| 业务分析师 | 可以对数据湖运行查询的用户。拥有运行查询的权限。 |
先决条件
在开始本教程之前,您必须拥有一个 Amazon Web Services 账户 可以以具有正确权限的用户身份登录的。有关更多信息,请参阅 注册获取 Amazon Web Services 账户。
本教程假定您熟悉 IAM 角色和策略。有关 IAM 的信息,请参阅 IAM 用户指南。
要完成本教程,您需要设置以下 Amazon 资源:
数据湖管理员用户
Lake Formation 数据湖设置
Amazon Athena 引擎版本 3
创建数据湖管理员
-
以管理员用户身份登录 Lake For https://console.aws.amazon.com/lakeformation/
mation 控制台。在本教程中,您将在美国东部(弗吉尼亚州北部)区域创建资源。 -
在 Lake Formation 控制台上的导航窗格中,在权限下选择管理角色和任务。
-
在数据湖管理员下选择数据湖管理员。
-
在弹出窗口管理数据湖管理员中,在 IAM 用户和角色下,选择 IAM 管理用户。
-
选择保存。
启用数据湖设置
-
打开 Lake Formation 控制台,网址为https://console.aws.amazon.com/lakeformation/
。在导航窗格中的数据目录下,选择设置。取消选中以下选项: 仅对新数据库使用 IAM 访问控制。
-
仅对新数据库中的新表使用 IAM 访问控制。
-
在跨账户版本设置下,选择版本 3 作为跨账户版本。
-
选择保存。
将 Amazon Athena 引擎升级到版本 3
-
打开 Athena 控制台,网址为。https://console.aws.amazon.com/athena/
-
选择工作组,然后选择主工作组。
-
确保工作组的最低版本为 3。如果不是,请编辑工作组,为升级查询引擎选择手动,然后选择版本 3。
选择保存更改。
第 1 步:调配资源
本节介绍如何使用 Amazon CloudFormation 模板设置 Amazon 资源。
要创建您的资源,请使用 Amazon CloudFormation 模板
在美国东部(弗吉尼亚北部)地区以 IAM 管理员身份登录 Amazon CloudFormation 控制台。https://console.aws.amazon.com/cloudformation
选择启动堆栈
。 在创建堆栈屏幕上,选择下一步。
输入堆栈名称。
选择下一步。
在下一页上,选择下一步。
查看最后一页上的详细信息,然后选择我确认这 Amazon CloudFormation 可能会创建 IAM 资源。
选择创建。
堆栈创建过程可能需要几分钟时间才能完成。
启动 Cloud Formation 堆栈可创建以下资源:
-
lf-otf-datalake-123456789012 – 用于存储数据的 Amazon S3 存储桶
注意
Amazon S3 存储桶名称中附加的账户 ID 将由您的账户 ID 替换。
-
lf-otf-tutorial-123456789012 — 用于存储查询结果和作业脚本的 Amazon S3 存储桶 Amazon Glue
lficebergdb — 冰山数据库 Amazon Glue
lfhudidb — Hudi 数据库 Amazon Glue
-
lfdeltadb — 增量数据库 Amazon Glue
native-iceberg-create — 在数据目录中创建 Iceberg 表的 Amazon Glue 作业
native-hudi-create — 在数据目录中创建 Hudi 表的 Amazon Glue 作业
-
native-delta-create — 在 Amazon Glue 数据目录中创建 Delta 表的作业
LF-OTF-GlueServiceRole — 您传递 Amazon Glue 给运行任务的 IAM 角色。此角色附加了访问数据目录、Amazon S3 存储桶等资源所需的策略。
LF-OTF-RegisterRole — IAM 角色向 Lake Formation 注册亚马逊 S3 地点。此角色已附加
LF-Data-Lake-Storage-Policy。lf-consumer-analystuser – 使用 Athena 查询数据的 IAM 用户
-
lf-consumer-analystuser-credentials — 存储在中的数据分析师用户的密码 Amazon Secrets Manager
创建完堆栈后,导航至输出选项卡并记下以下各项的值:
AthenaQueryResultLocation — Athena 查询输出的亚马逊 S3 位置
BusinessAnalystUserCredentials — 数据分析师用户的密码
检索密码值:
通过导航到 Secrets Manager 控制台来选择
lf-consumer-analystuser-credentials值。在密钥值部分中,选择检索密钥值。
记下密码的值。
第 2 步:为 Iceberg 表设置权限
在本节中,您将学习如何在中创建 Iceberg 表 Amazon Glue Data Catalog、在中设置数据权限以及如何使用 Amazon Athena 查询数据。 Amazon Lake Formation
创建 Iceberg 表
在此步骤中,您将运行一个在数据目录中创建 Iceberg 事务表的 Amazon Glue 作业。
-
以数据湖管理员用户身份在美国东部(弗吉尼亚北部)区域打开Amazon Glue控制台。https://console.aws.amazon.com/glue/
-
从左侧导航窗格中选择作业。
-
选择
native-iceberg-create。
-
在操作下,选择编辑作业。
-
在 “Job det ail Amazon Glue Data Catalog s” 下,展开 “高级属性”,然后选中 “用作 Hive 元数据仓” 旁边的复选框,将表元数据添加到中。 Amazon Glue Data Catalog这将指定 Amazon Glue Data Catalog 为作业中使用的数据目录资源的元数据库,并允许稍后对目录资源应用 Lake Formation 权限。
选择保存。
-
选择运行。您可以查看运行中作业的状态。
有关 Amazon Glue 作业的更多信息,请参阅《Amazon Glue 开发人员指南》中的在 Amazon Glue 控制台上处理作业。
此作业将在
lficebergdb数据库中创建名为product的 Iceberg 表。在 Lake Formation 控制台中验证 Product 表。
在 Lake Formation 中注册数据位置
接下来,将 Amazon S3 路径注册为数据湖的位置。
-
以数据湖管理员用户身份打开 La https://console.aws.amazon.com/lakeformation/
ke Formation 控制台。 在导航窗格中的注册和提取下,选择数据位置。
在控制台右上角,选择注册位置。
在注册位置页面上,输入以下内容:
-
Amazon S3 路径 – 选择浏览,然后选择
lf-otf-datalake-123456789012。单击 Amazon S3 根位置旁边的右箭头 (>) 以导航到s3/buckets/lf-otf-datalake-123456789012/transactionaldata/native-iceberg位置。 -
IAM 角色 — 选择
LF-OTF-RegisterRole作为 IAM 角色。 选择注册位置。
有关在 Lake Formation 中注册数据位置的更多信息,请参阅向数据湖添加 Amazon S3 位置。
-
授予对 Iceberg 表的 Lake Formation 权限
在这一步,我们将向业务分析师用户授予数据湖权限。
在数据湖权限下,选择授权。
在授予数据权限屏幕上,选择 IAM 用户和角色。
-
从下拉列表中选择
lf-consumer-analystuser。
选择命名数据目录资源。
对于数据库,选择
lficebergdb。对于表,选择
product。
接下来,您可以通过指定列来授予基于列的访问权限。
在表权限下,选择选择。
在数据权限下,选择Column-based 访问权限,选择包括列。
依次选择列
product_name、price和category。选择授权。
使用 Athena 查询 Iceberg 表
现在,您可以开始使用 Athena 查询您创建的 Iceberg 表。如果您是首次在 Athena 中运行查询,则需要配置查询结果位置。有关更多信息,请参阅指定查询结果位置。
以数据湖管理员用户身份登录,然后使用 Amazon CloudFormation 输出中前面注明的密码以美国东部(弗吉尼亚北部)区域的身份登录。
lf-consumer-analystuser从 https://console.aws.amazon.com/athena/
打开 Athena 控制台。 选择设置,然后选择管理。
在查询结果的位置框中,输入您在 Amazon CloudFormation 输出中创建的存储桶的路径。复制
AthenaQueryResultLocation(s3://lf-otf-tutorial-123456789012/athena-results/) 的值并选择 “保存”。运行以下查询以预览存储在 Iceberg 表中的 10 条记录:
select * from lficebergdb.product limit 10;有关使用 Athena 查询 Iceberg 表的更多信息,请参阅《Amazon Athena 用户指南》中的查询 Iceberg 表。
第 3 步:为 Hudi 表设置权限
在本节中,您将学习如何在中创建 Hudi 表 Amazon Glue Data Catalog、在中设置数据权限以及如何使用 Amazon Athena 查询数据。 Amazon Lake Formation
创建 Hudi 表
在此步骤中,您将运行一个在数据 Amazon Glue 目录中创建 Hudi 事务表的作业。
-
在美国东部(弗吉尼亚北部)区域登录Amazon Glue主机 https://console.aws.amazon.com/glue/
。
-
从左侧导航窗格中选择作业。
-
选择
native-hudi-create。 -
在操作下,选择编辑作业。
-
在 “Job det ail Amazon Glue Data Catalog s” 下,展开 “高级属性”,然后选中 “用作 Hive 元数据仓” 旁边的复选框,将表元数据添加到中。 Amazon Glue Data Catalog这将指定 Amazon Glue Data Catalog 为作业中使用的数据目录资源的元数据库,并允许稍后对目录资源应用 Lake Formation 权限。
选择保存。
-
选择运行。您可以查看运行中作业的状态。
有关 Amazon Glue 作业的更多信息,请参阅《Amazon Glue 开发人员指南》中的在 Amazon Glue 控制台上处理作业。
此作业在 database:lfhudidb 中创建 Hudi(cow) 表。在 Lake Formation 控制台中验证
product表。
在 Lake Formation 中注册数据位置
接下来,将 Amazon S3 路径注册为数据湖的根位置。
-
以数据湖管理员用户身份登录 Lake https://console.aws.amazon.com/lakeformation/
Formation 控制台。 在导航窗格中的注册和提取下,选择数据位置。
在控制台右上角,选择注册位置。
在注册位置页面上,输入以下内容:
-
Amazon S3 路径 – 选择浏览,然后选择
lf-otf-datalake-123456789012。单击 Amazon S3 根位置旁边的右箭头 (>) 以导航到s3/buckets/lf-otf-datalake-123456789012/transactionaldata/native-hudi位置。 -
IAM 角色 — 选择
LF-OTF-RegisterRole作为 IAM 角色。 选择注册位置。
-
授予对 Hudi 表的数据湖权限
在这一步,我们将向业务分析师用户授予数据湖权限。
在数据湖权限下,选择授权。
在授予数据权限屏幕上,选择 IAM 用户和角色。
-
从下拉列表中选择
lf-consumer-analystuser。 选择命名数据目录资源。
对于数据库,选择
lfhudidb。对于表,选择
product。接下来,您可以通过指定列来授予基于列的访问权限。
在表权限下,选择选择。
在数据权限下,选择Column-based 访问权限,选择包括列。
依次选择列
product_name、price和category。选择授权。
使用 Athena 查询 Hudi 表
现在开始使用 Athena 查询您创建的 Hudi 表。如果您是首次在 Athena 中运行查询,则需要配置查询结果位置。有关更多信息,请参阅指定查询结果位置。
以数据湖管理员用户身份登录,然后使用 Amazon CloudFormation 输出中前面注明的密码以美国东部(弗吉尼亚北部)区域的身份登录。
lf-consumer-analystuser从 https://console.aws.amazon.com/athena/
打开 Athena 控制台。 选择设置,然后选择管理。
在查询结果的位置框中,输入您在 Amazon CloudFormation 输出中创建的存储桶的路径。复制
AthenaQueryResultLocation(s3://lf-otf-tutorial-123456789012/athena-results/) 的值并保存。运行以下查询以预览存储在 Hudi 表中的 10 条记录:
select * from lfhudidb.product limit 10;有关查询 Hudi 表的更多信息,请参阅《Amazon Athena 用户指南》中的查询 Hudi 表一节。
第 4 步:为 Delta Lake 表设置权限
在本节中,您将学习如何创建包含符号链接清单文件的 Delta Lake 表 Amazon Glue Data Catalog、在中设置数据权限 Amazon Lake Formation 以及如何使用 Amazon Athena 查询数据。
创建 Delta Lake 表
在此步骤中,您将运行一项在数据目录中创建 Delta Lake 事务表的 Amazon Glue 作业。
-
在美国东部(弗吉尼亚北部)区域登录Amazon Glue主机 https://console.aws.amazon.com/glue/
。
-
从左侧导航窗格中选择作业。
-
选择
native-delta-create。 -
在操作下,选择编辑作业。
-
在 “Job det ail Amazon Glue Data Catalog s” 下,展开 “高级属性”,然后选中 “用作 Hive 元数据仓” 旁边的复选框,将表元数据添加到中。 Amazon Glue Data Catalog这将指定 Amazon Glue Data Catalog 为作业中使用的数据目录资源的元数据库,并允许稍后对目录资源应用 Lake Formation 权限。
选择保存。
-
在操作下选择运行。
此作业将在
lfdeltadb数据库中创建名为product的 Delta Lake 表。在 Lake Formation 控制台中验证product表。
在 Lake Formation 中注册数据位置
接下来,将 Amazon S3 路径注册为数据湖的根位置。
-
在数据湖管理员用户处打开 Lake https://console.aws.amazon.com/lakeformation/
Formation 控制台。 在导航窗格中的注册和提取下,选择数据位置。
在控制台右上角,选择注册位置。
在注册位置页面上,输入以下内容:
-
Amazon S3 路径 – 选择浏览,然后选择
lf-otf-datalake-123456789012。单击 Amazon S3 根位置旁边的右箭头 (>) 以导航到s3/buckets/lf-otf-datalake-123456789012/transactionaldata/native-delta位置。 -
IAM 角色 — 选择
LF-OTF-RegisterRole作为 IAM 角色。 选择注册位置。
-
授予对 Delta Lake 表的数据湖权限
在这一步,我们将向业务分析师用户授予数据湖权限。
在数据湖权限下,选择授权。
在授予数据权限屏幕上,选择 IAM 用户和角色。
-
从下拉列表中选择
lf-consumer-analystuser。 选择命名数据目录资源。
对于数据库,选择
lfdeltadb。对于表,选择
product。接下来,您可以通过指定列来授予基于列的访问权限。
在表权限下,选择选择。
在数据权限下,选择Column-based 访问权限,选择包括列。
依次选择列
product_name、price和category。选择授权。
使用 Athena 查询 Delta Lake 表
现在开始使用 Athena 查询您创建的 Delta Lake 表。如果您是首次在 Athena 中运行查询,则需要配置查询结果位置。有关更多信息,请参阅指定查询结果位置。
以数据湖管理员用户身份注销,然后使用 Amazon CloudFormation 输出
BusinessAnalystUser中前面注明的密码以美国东部(弗吉尼亚北部)区域的身份登录。从 https://console.aws.amazon.com/athena/
打开 Athena 控制台。 选择设置,然后选择管理。
在查询结果的位置框中,输入您在 Amazon CloudFormation 输出中创建的存储桶的路径。复制
AthenaQueryResultLocation(s3://lf-otf-tutorial-123456789012/athena-results/) 的值并保存。运行以下查询来预览存储在 Delta Lake 表中的 10 条记录:
select * from lfdeltadb.product limit 10;有关查询 Delta Lake 表的更多信息,请参阅《Amazon Athena 用户指南》中的查询 Delta Lake 表一节。
第 5 步:清理 Amazon 资源
清理资源
为防止向你收取不必要的费用 Amazon Web Services 账户,请删除你在本教程中使用的 Amazon 资源。
-
以 IAM 管理员的https://console.aws.amazon.com/cloudformation
身份登录 Amazon CloudFormation 控制台。 -
删除 Cloud Formation 堆栈。您创建的表将自动与堆栈一起被删除。