我们最近 公布 支持 AWS湖形成 细粒度的访问控制策略 亚马逊雅典娜 使用表格式(例如 Apache Iceberg、Apache Hudi 和 Apache Hive)查询以任何支持的文件格式存储的数据。 AWS Lake Formation 允许您定义和实施数据库、表和列级访问策略,以查询存储在 Amazon S3 中的 Iceberg 表。 Lake Formation 为存储在 Amazon S3 中的数据提供授权和治理层。 此功能要求您升级到 雅典娜引擎版本 3.
大型组织通常拥有业务线 (LoB),这些业务线在管理其业务数据方面具有自主权。 它使得跨 LoB 共享数据变得非常重要。 这些组织采用了联合模型,每个 LoB 都可以自主决定其数据。 他们使用带有集中管理层的发布者/消费者模型,该管理层用于实施访问控制。 如果您有兴趣了解有关数据网格架构的更多信息,请访问 使用 AWS Lake Formation 和 AWS Glue 设计数据网格架构. 借助 Athena 引擎版本 3,客户可以对 Apache Iceberg、Apache Hudi 和 Apache Hive 等开放数据框架使用相同的细粒度控制。
在这篇文章中,我们深入探讨了一个用例,在该用例中,您拥有一个启用了数据共享的生产者/消费者模型,以限制对消费者可以查询的 Apache Iceberg 表的访问。 我们将讨论用于限制某些行的列过滤、用于限制列级别访问的过滤、模式演变和时间旅行。
解决方案概述
为了使用 Athena 和 Lake Formation 说明 Apache Iceberg 表的细粒度权限功能,我们设置了以下组件:
- 在生产者账户中:
- An AWS胶水 Data Catalog 以 Apache Iceberg 格式注册表的架构
- Lake Formation 提供对消费者帐户的细粒度访问
- Athena 验证生产者账户的数据
- 在消费者帐户中:
- AWS 资源访问管理器 (AWS RAM) 在生产者数据目录和消费者之间创建握手
- Lake Formation 提供对消费者帐户的细粒度访问
- 雅典娜验证来自生产者账户的数据
下图说明了该体系结构。
先决条件
在开始之前,请确保您具备以下条件:
数据生产者设置
在本节中,我们介绍设置数据生产者的步骤。
创建一个 S3 存储桶来存储表数据
我们创建一个新的 S3 存储桶来保存表的数据:
- 在 Amazon S3 控制台上, 创建一个S3存储桶 具有唯一名称(对于这篇文章,我们使用
iceberg-athena-lakeformation-blog
). - 在存储桶中创建用于表的生产者文件夹。
使用 Lake Formation 注册存储表的 S3 路径
我们在Lake Formation中注册S3全路径:
- 导航到 Lake Formation 控制台。
- 如果您是第一次登录,系统会提示您创建管理员用户。
- 在导航窗格中, 注册并提取,选择 数据湖位置.
- 注册地点,并提供您之前创建的 S3 存储桶路径。
-
AWSServiceRoleForLakeFormationDataAccess
IAM 角色。
有关角色的更多信息,请参阅 用于注册位置的角色的要求.
如果您启用了 S3 存储桶的加密,则必须为 Lake Formation 提供执行加密和解密操作的权限。 参考 注册加密的 Amazon S3 位置 作为指导。
- 注册地点.
使用 Athena 创建 Iceberg 表
现在让我们使用由 Apache Iceberg 格式支持的 Athena 创建表:
- 在Athena控制台上,选择 查询编辑器 在导航窗格中。
- 如果您是第一次使用 Athena,请在 个人设置,选择 管理 并输入您之前创建的 S3 存储桶位置 (
iceberg-athena-lakeformation-blog/producer
). - 保存.
- 在查询编辑器中,输入以下查询(将位置替换为您向 Lake Formation 注册的 S3 存储桶)。 请注意,我们使用默认数据库,但您可以使用任何其他数据库。
- 运行.
与消费者账户共享表格
为了说明功能,我们实现了以下场景:
- 提供对选定列的访问
- 根据过滤器提供对选定行的访问
完成以下步骤:
- 在 Lake Formation 控制台上的导航窗格中 资料目录,选择 数据过滤器.
- 建立新的筛选器.
- 针对 数据过滤器名称,输入
blog_data_filter
. - 针对 目标数据库,输入
lf-demo-db
. - 针对 目标表,输入
consumer_iceberg
. - 针对 列级访问, 选择 包括栏.
- 选择要与消费者共享的列:
country, address, contactfirstname, city, customerid,
和customername
. - 针对 行过滤器表达式, 输入过滤器
country='France'
. - 创建过滤器.
现在让我们授予对消费者帐户的访问权限 consumer_iceberg
表。
- 在导航窗格中,选择 表.
- 选择 consumer_iceberg 表,然后选择 格兰特 在 行动 菜单。
- 选择 外部帐户.
- 输入外部帐户 ID。
- 选择 命名数据目录资源.
- 选择您的数据库和表。
- 针对 数据过滤器, 选择您创建的数据过滤器。
- 针对 数据过滤权限 和 授予的权限, 选择 选择.
- 格兰特.
数据消费者设置
为了设置数据消费者,我们接受资源共享并使用 AWS RAM 和 Lake Formation 创建一个表。 完成以下步骤:
- 登录到消费者账户并导航到 AWS RAM 控制台。
- 下 与我分享 在导航窗格中,选择 资源份额.
- 选择您的资源共享。
- 接受资源共享.
- 记下要在后续步骤中使用的资源共享的名称。
- 导航到 Lake Formation 控制台。
- 如果您是第一次登录,系统会提示您创建管理员用户。
- 数据库 在导航窗格中,然后选择您的数据库。
- 点击 行动 菜单中选择 创建资源链接.
- 针对 资源链接名称,输入资源链接的名称(例如,
consumer_iceberg
). - 选择您的数据库和共享表。
- 创建.
验证解决方案
现在我们可以对表运行不同的操作来验证细粒度的访问控制。
插入操作
让我们将数据插入 consumer_iceberg
生产者帐户中的表,并验证数据过滤是否按预期在消费者帐户中工作。
- 登录生产者账户。
- 在Athena控制台上,选择 查询编辑器 在导航窗格中。
- 使用以下 SQL 向 Iceberg 表写入和插入数据。 使用查询编辑器一次运行一个查询。 您可以一次突出显示/选择一个查询,然后单击“运行”/“再次运行”:
- 使用以下 SQL 读取和选择 Iceberg 表中的数据:
- 登录消费者账户。
- 在 Athena 查询编辑器中,对共享表运行以下 SELECT 查询:
基于过滤器,消费者可以看到国家/地区为法国的列和行的子集。
更新/删除操作
现在让我们更新其中一行并从与消费者共享的数据集中删除一行。
- 验证更新和删除的数据集:
- 登录消费者账户。
- 在 Athena 查询编辑器中,对共享表运行以下 SELECT 查询:
我们可以观察到只有一行可用,城市更新为巴黎。
架构演变:添加新列
让我们更新其中一行并从与消费者共享的数据集中删除一行。
- 登录生产者账户。
- 添加一个名为的新列
geo_loc
在冰山表中。 使用查询编辑器一次运行一个查询。 您可以一次突出显示/选择一个查询,然后单击“运行”/“再次运行”:
为新添加的提供可见性 geo_loc
列,我们需要更新 Lake Formation 数据过滤器。
- 在 Lake Formation 控制台上,选择 数据过滤器 在导航窗格中。
- 选择您的数据过滤器并选择 编辑.
- 下 列级访问, 添加新列 (
geo_loc
). - 保存.
- 登录消费者账户。
- 在 Athena 查询编辑器中,运行以下命令
SELECT
查询共享表:
新专栏 geo_loc
是可见的和一个额外的行。
架构演变:删除列
让我们更新其中一行并从与消费者共享的数据集中删除一行。
- 登录生产者账户。
- 更改表以从 Iceberg 表中删除地址列。 使用查询编辑器一次运行一个查询。 您可以一次突出显示/选择一个查询,然后单击“运行”/“再次运行”:
我们可以观察到列地址不在表中。
- 登录消费者账户。
- 在 Athena 查询编辑器中,对共享表运行以下 SELECT 查询:
表中不存在列地址。
时间旅行
我们现在已经多次更改 Iceberg 表。 Iceberg 表跟踪快照。 完成以下步骤以探索时间旅行功能:
- 登录生产者账户。
- 查询系统表:
我们可以观察到我们已经生成了多个快照。
- 记下其中一个
committed_at
在接下来的步骤中使用的值(对于这个例子,2023-01-29 21:35:02.176 UTC
). - 使用时间旅行来查找表快照。 使用查询编辑器一次运行一个查询。 您可以一次突出显示/选择一个查询,然后单击“运行”/“再次运行”:
清理
完成以下步骤以避免产生未来费用:
- 在 Amazon S3 控制台上,删除表存储桶(对于本文,iceberg-athena-lakeformation-blog)。
- 在 Athena 控制台的生产者账户中,运行以下命令删除您创建的表:
结论
通过对 Iceberg 等格式的跨账户、细粒度访问控制策略的支持,您可以灵活地使用 Athena 支持的任何格式。 对 S3 数据湖中的数据执行 CRUD 操作的能力与 Athena 支持的所有表和格式的 Lake Formation 细粒度访问控制相结合,为创新和简化数据策略提供了机会。 我们很想听听您的反馈!
关于作者
基肖尔·达莫达兰 是 AWS 的高级解决方案架构师。 Kishore 利用他多年的行业和云经验,帮助战略客户制定云企业战略和迁移之旅。
叶杰克 是 AWS 雅典娜数据湖和存储团队的软件工程师。 他是 Apache Iceberg Committer 和 PMC 成员。
克里斯奥尔森 是 AWS 的一名软件开发工程师。
李小轩 是 AWS 的一名软件开发工程师。
拉胡尔·索纳瓦尼(Rahul Sonawane) 是 AWS 的首席分析解决方案架构师,专长是 AI/ML 和分析。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://aws.amazon.com/blogs/big-data/interact-with-apache-iceberg-tables-using-amazon-athena-and-cross-account-fine-grained-permissions-using-aws-lake-formation/
- :是
- $UP
- 1
- 10
- 100
- 7
- a
- 对,能力--
- 关于我们
- 接受
- ACCESS
- 账号管理
- 横过
- 添加
- 额外
- 附加信息
- 地址
- 管理员
- 采用
- 驳
- AI / ML
- 所有类型
- 允许
- Amazon
- 亚马逊雅典娜
- 分析
- 和
- 阿帕奇
- 架构
- 保健
- 国家 / 地区
- 艺术
- AS
- At
- 授权
- 可使用
- 避免
- AWS
- AWS湖形成
- 已备份
- 基于
- 之间
- 商业
- 企业
- by
- 被称为
- CAN
- 检索目录
- 集中
- 一定
- 更改
- 收费
- 城市
- 点击
- 云端技术
- 柱
- 列
- COM的
- 结合
- 完成
- 组件
- 安慰
- 消费者
- 控制
- 控制
- 国家
- 创建信息图
- 创建
- 创造
- 创建
- USB和Thunderbolt Cross
- 合作伙伴
- data
- 数据湖
- 数据共享
- 数据策略
- 数据库
- 决定
- 深
- 深潜
- 默认
- 研发支持
- 不同
- 讨论
- 向下
- 下降
- 每
- 此前
- 编辑
- 邮箱地址
- 欧洲与中东地区
- 启用
- 加密
- 加密
- 发动机
- 工程师
- 输入
- 企业
- 醚(ETH)
- 进化
- 例子
- 预期
- 体验
- 探索
- 外部
- 文件
- 过滤
- 过滤
- 过滤器
- 找到最适合您的地方
- 姓氏:
- 第一次
- 高度灵活
- 以下
- 针对
- 格式
- 训练
- 框架
- 法国
- 止
- ,
- 功能
- 未来
- 产生
- 得到
- 给
- 治理
- 授予
- 指导
- 有
- 有
- 听
- 帮助
- 蜂房
- HTML
- HTTP
- HTTPS
- ID
- 实施
- in
- 公司
- 行业中的应用:
- 信息
- 创新
- 相互作用
- 有兴趣
- IT
- 旅程
- JPG
- 湖泊
- 土地
- 层
- 学习
- Level
- 借力
- 极限
- 线
- 友情链接
- 圖書分館的位置
- 爱
- 里昂
- 使
- 制作
- 管理的
- 会员
- 菜单
- 移民
- 模型
- 更多
- 多
- 姓名
- 导航
- 旅游导航
- 需求
- 全新
- 下页
- 纽约市
- 观察
- of
- on
- 一
- 打开
- 开放的数据
- 操作
- 运营
- 机会
- 组织
- 其他名称
- 面包
- 巴黎
- 径
- 演出
- 权限
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 政策
- 帖子
- 当下
- 校长
- 制片人
- 提供
- 提供
- 内存
- 阅读
- 最近
- 反映
- 寄存器
- 在相关机构注册的
- 更换
- 需要
- 资源
- 限制
- 受限
- 导致
- 角色
- 角色
- 行
- 运行
- 同
- 保存
- 情景
- 部分
- 选
- 前辈
- 集
- Share
- 共用的,
- 共享
- 简化
- 快照
- 软件
- 软件开发
- 软件工程师
- 解决方案
- 其他
- SQL
- 开始
- 步骤
- 存储
- 商店
- 存储
- 善用
- 策略
- 串
- 这样
- SUPPORT
- 支持
- 系统
- 表
- 团队
- 这
- 其
- 博曼
- 次
- 时间旅行
- 时
- 时间戳
- 至
- 跟踪时
- 旅行
- 下
- 独特
- 更新
- 更新
- 升级
- 美国
- 使用
- 用户
- UTC
- 验证
- 价值观
- 确认
- 版本
- 能见度
- 可见
- 参观
- 工作
- 合作
- 写
- 年
- 您一站式解决方案
- 和风网