AWS 上的 Power BI:使用 RLS 进行 Athena、Glue 和 Lake Formation 的终极指南

Avilas

将 Power BI 连接到现代 AWS 数据湖是企业分析的强大策略,但应对 Athena、Glue 和 Lake Formation 的复杂性可能令人望而生畏。本权威指南为构建安全、高性能和可治理的解决方案提供了完整的端到端蓝图。我们将超越基本连接来应对企业部署的现实挑战,重点关注直接在数据源逐步实施强大的行级安全性 (RLS),确保您的分析既强大又安全。

GigXP.com | AWS 上的 Power BI:终极端到端指南

GigXP.com

建筑学
联系
部署
RLS
优化

将 Power BI 与 Athena、Glue 和 Lake Formation 集成的明确蓝图,重点关注性能、治理和强大的行级安全性 (RLS)。

架构概览

此架构可实现从 S3 中的原始存储到 Power BI 中的交互式可视化的无缝、安全的数据流。它利用无服务器堆栈来消除传统数据仓库的成本和复杂性。

端到端数据流

1.S3数据湖

原始和处理后的数据存储

2. 胶水目录

元数据和模式发现

3. 湖泊形成

集中治理和安全

4.雅典娜

无服务器 SQL 查询引擎

5. Power BI

可视化(通过网关)

第 1 部分:在 AWS 中构建数据湖基础

整个分析解决方案的完整性、安全性和性能取决于正确配置的 AWS 基础。本节详细介绍了构建该基础层的细致过程。

1.1:数据湖存储和基础安全(S3 和 IAM)

结构良好的 S3 环境至关重要。我们建议在 Athena 中使用分区布局以获得最佳查询性能并节省成本。应使用 Hive 样式的键值对约定对数据进行分区(例如“s3://…/year=2024/month=05/”)。

要点:遵循最小权限原则,创建专用的 IAM 角色,而不是具有静态密钥的 IAM 用户。此角色将由 Power BI 网关的 EC2 实例承担。

1.3:使用 AWS Lake Formation 进行集中治理

Lake Formation 从根本上改变了授权模型,从基础设施级 IAM 策略转变为数据级治理。它成为数据访问权限的单一事实来源。

关键配置:在 Lake Formation 设置中,您必须取消选择“仅对新数据库/表使用 IAM 访问控制”。这会将所有新 Glue 资源的权限管理委托给 Lake Formation,使其成为取代机构。

第 2 部分:将 Power BI 连接到 AWS 数据湖

AWS 基础建立后,下一阶段就是缩小与 Power BI 前端的差距。这涉及配置客户端环境、了解连接参数以及选择 Power BI 与数据交互的方式。

2.1:通过ODBC驱动程序建立连接

ODBC 驱动程序促进从 Power BI Desktop 到 Athena 的连接。 Power BI 中的本机“Amazon Athena”连接器是一个包装器,需要预安装并正确配置的 64 位 ODBC 驱动程序和数据源名称 (DSN) 才能运行。

ODBC DSN 配置

使用 Windows“ODBC 数据源(64 位)”工具,使用以下精确参数创建系统 DSN:

  • AWS 区域:Athena 和 S3 所在的区域(例如“us-east-1”)。
  • 架构:Glue 中要连接的数据库的名称(例如“sales_db”)。
  • S3输出位置:Athena 查询结果的完整 S3 路径(例如“s3://your-athena-results-bucket/”)。
  • 验证:将“IAM 凭据”与指定 Power BI IAM 角色的访问密钥和密钥一起使用。

关键设置:在 DSN 的高级选项中,“LakeformationEnabled”属性必须设置为“true”(或“1”)。这指示驱动程序使用 Lake Formation 进行授权。如果没有这个,您的整个治理模型和 RLS 策略将被绕过。

阅读更多:DirectLake、Athena 与 Redshift Spectrum:2025 年 Lakehouse BI 终极指南

2.2:数据连接模式:DirectQuery 与导入

通过 Athena 连接大规模数据湖时,DirectQuery 通常是唯一可行的选择。数据湖中的数据集大小可能为 TB 或 PB,太大而无法导入 Power BI 的内存限制。

  • 直接查询:不复制任何数据。每次用户交互都会生成对 Athena 的实时 SQL 查询。这可确保数据始终是最新的,但意味着性能完全取决于 Athena 的查询速度。
  • 进口:整个数据集被复制到 Power BI 的内存引擎中。这提供了极快的视觉性能,但需要计划刷新,并且不适合大规模数据集。

建议的策略是对大型事实表使用 DirectQuery,并考虑对较小的预聚合汇总表或维度使用导入模式,以创建高性能混合模型。

第 3 部分:发布和企业部署

将报表移至生产环境需要本地数据网关。在此云环境中,它充当 Power BI 服务与 AWS VPC 内的 Athena 数据源之间的安全代理。

3.1:本地数据网关的作用

网关必须安装在标准模式在与您的数据资源位于同一 VPC 内的专用 EC2 实例上。这将使所有数据流量保持在安全的 AWS 网络内。网关计算机必须具有与开发所用的完全相同的 64 位 Athena ODBC 驱动程序和名称相同的 DSN。

3.2:配置Power BI服务

发布报表后,您必须在 Power BI 服务门户中配置连接:

  1. 注册网关:在“管理连接和网关”中,验证您的新网关是否显示为“在线”状态。
  2. 创建数据源:在网关上创建新的“Amazon Athena”数据源,提供准确的 DSN 名称和必要的凭据。
  3. 地图数据集:在数据集的设置中,将其映射以使用新配置的网关数据源。

常见陷阱:网关服务帐户:网关作为 Windows 服务帐户运行(例如“NT SERVICEPBIEgwService”)。如果您的 DSN 依赖于与特定用户的本地配置文件(例如默认 AWS CLI 配置文件)关联的身份验证方法,则连接将会失败。在 DSN 中使用独立于用户上下文的身份验证方法(例如显式 IAM 密钥或 EC2 实例配置文件)。

第 4 部分:实施行级安全性 (RLS)

选择在何处以及如何实施 RLS 是一项基本架构决策,会对安全性、性能和管理开销产生深远影响。

4.1:RLS策略的比较分析

对于需要使用 DirectQuery 实现一致治理和性能的企业场景,通过 AWS Lake Formation 在数据源上实施安全性是最佳选择。

按功能过滤:
全部
执行
表现
可扩展性

特征 AWS Lake Formation 数据过滤器 安全的雅典娜景观 Power BI DAX 角色 (DirectQuery)
执行点 数据来源(湖泊形成) 数据源(雅典娜) BI 层(Power BI 服务)
集权 高的(适用于所有工具的单一策略) 中(按视图管理) 低(特定于 Power BI 模型)
可扩展性 高的 中(查看蔓延风险) 低(性能下降)
性能影响 低的(过滤器被推下) 低到中 高的(禁止查询折叠)
推荐用例 企业治理 静态 RLS 或简单情况 导入模式或简单RLS

4.2:使用 Lake Formation 实现 RLS(推荐)

此方法提供集中、一致且高性能的安全性。 Lake Formation 数据过滤器是可重用的策略对象,其中包含行过滤器表达式(例如,“marketplace=”US”`)。这些过滤器被授予表上特定 IAM 角色的权限。当具有该角色的用户查询表时,Lake Formation 在执行前动态地将过滤器附加到查询的“WHERE”子句,确保在源头强制执行安全性。

4.3:用户上下文挑战和动态 RLS

动态 RLS 的黄金标准是在 Power BI 和 AWS 之间启用单点登录 (SSO)。这需要使用 SAML 2.0 身份联合在 Azure Active Directory 和 AWS IAM 之间建立信任关系。

具有身份联合流程的动态 RLS

用户登录→Power BI / Azure AD
SAML
Athena + Lake Formation(应用过滤器)←AWS IAM(承担角色)

4.4:替代 RLS 方法及其局限性

Lake Formation 的替代方案虽然功能强大,但对于企业使用而言存在重大缺陷。

  • 雅典娜的观点:为每个安全排列创建一个视图(例如“CREATE VIEW us_sales AS ...”)是一种传统方法,但会导致“视图蔓延”,随着安全规则的增长,成为维护的噩梦。

DirectQuery 警告:不建议将 Power BI 的本机 DAX 角色用于带有 DirectQuery 的 RLS。 DAX 筛选器可以防止“查询折叠”,迫使 Power BI 从 Athena 提取大型、未经筛选的数据集并在本地应用安全性。这抵消了 DirectQuery 的优势,增加了成本并严重降低了性能。

第 5 部分:优化、故障排除和最佳实践

性能是整个堆栈的一个新兴属性。优化解决方案涉及调整架构的每一层以协同工作。

5.1:性能和成本优化

最有影响力的优化发生在 S3 存储层。使用列式格式 (Parquet/ORC)、压缩和分区可以降低查询成本并将速度提高几个数量级。

S3 数据优化对 Athena 的影响

5.2:常见问题及故障排除

Power BI 中的一般错误通常会掩盖 AWS 堆栈中的特定根本原因。一种系统方法是“翻译”Power BI 错误并开始在 AWS 端进行诊断。

常见陷阱:“s3://… 上的 Lake Formation 权限不足”此错误几乎总是意味着您已授予对 Glue 表的权限,但忘记在 Lake Formation 控制台中授予对底层 S3“数据湖位置”的权限。这是一个两步过程。

© 2025 GigXP.com。版权所有。

现代数据专业人员的专家指南。