关于 fabric-lakehouse
fabric-lakehouse 是一项用于理解、设计和优化 Microsoft Fabric Lakehouse 解决方案的技能,涵盖存储、查询、安全、血缘和性能实践,面向数据从业者。
主要功能
- 01Lakehouse 概念与组件
- 02表格和文件数据管理
- 03引用数据的快捷方式
- 04安全与访问控制
- 05优化和血缘指南
适用场景
- 01说明 Microsoft Fabric Lakehouse 能力
- 02规划 Lakehouse 数据布局
- 03管理表和文件访问
- 04改善查询性能
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill fabric-lakehouse安装后在 Claude Code 中输入/fabric-lakehouse确认已加载。
附带文件references/getdata.mdreferences/pyspark.md
详细介绍
何时使用此技能
在以下情况下使用此技能:
- 生成包含 Fabric Lakehouse 及其功能的定义和上下文的文档或说明。
- 使用最佳实践设计、构建和优化 Lakehouse 解决方案。
- 了解 Microsoft Fabric 中 Lakehouse 的核心概念和组件。
- 学习如何在 Lakehouse 中管理表格数据和非表格数据。
Fabric Lakehouse
核心概念
什么是 Lakehouse?
Microsoft Fabric 中的 Lakehouse 是一项功能,为用户提供存储表格数据(如表)和非表格数据(如文件)的位置。它结合了数据湖的灵活性与数据仓库的管理能力。它提供:
- OneLake 中的统一存储,用于结构化和非结构化数据
- Delta Lake 格式,支持 ACID 事务、版本管理和时间旅行
- SQL 分析终结点,用于 T-SQL 查询
- 语义模型,用于 Power BI 集成
- 支持 CSV、Parquet 等其他表格式
- 支持任意文件格式
- 用于表优化和数据管理的工具
关键组件
- Delta 表:具有 ACID 合规性和架构强制管理的托管表
- 文件:Files 部分中的非结构化/半结构化数据
- SQL 终结点:自动生成的只读 SQL 查询接口
- 快捷方式:无需复制即可指向外部/内部数据的虚拟链接
- Fabric 物化视图:用于快速查询性能的预计算表
Lakehouse 中的表格数据
以表形式存在的表格数据存储在 "Tables" 文件夹下。Lakehouse 中表的主要格式是 Delta。Lakehouse 可以存储 CSV 或 Parquet 等其他格式的表格数据,这些格式仅可用于 Spark 查询。 表可以是内部的,即数据存储在 "Tables" 文件夹下;也可以是外部的,即 "Tables" 文件夹下仅存储对表的引用,而数据本身存储在引用的位置。表通过快捷方式进行引用,快捷方式可以是内部的(指向 Fabric 中的另一个位置)或外部的(指向存储在 Fabric 外部的数据)。
Lakehouse 中表的架构
创建 lakehouse 时,用户可以选择启用架构。架构用于组织 Lakehouse 表。架构作为 "Tables" 文件夹下的文件夹实现,并将表存储在这些文件夹内。默认架构为 "dbo",不可删除或重命名。所有其他架构均为可选,可以创建、重命名或删除。用户可以使用架构快捷方式引用位于另一个 lakehouse 中的架构,从而通过单个快捷方式引用目标架构中的所有表。
Lakehouse 中的文件
文件存储在 "Files" 文件夹下。用户可以创建文件夹和子文件夹来组织文件。任何文件格式都可以存储在 Lakehouse 中。
Fabric 物化视图
一组根据计划自动更新的预计算表。它们为复杂的聚合和联接提供快速查询性能。物化视图使用 PySpark 或 Spark SQL 定义,并存储在关联的 Notebook 中。
Spark 视图
由 SQL 查询定义的逻辑表。它们不存储数据,而是提供用于查询的虚拟层。视图使用 Spark SQL 定义,并存储在 Lakehouse 中 Tables 旁边。
安全性
项访问或控制平面安全性
用户可以拥有工作区角色(管理员、成员、参与者、查看者),这些角色提供对 Lakehouse 及其内容的不同访问级别。用户还可以使用 Lakehouse 的共享功能获取访问权限。
数据访问或 OneLake 安全
对于数据访问,使用 OneLake 安全模型,该模型基于 Microsoft Entra ID(原 Azure Active Directory)和基于角色的访问控制(RBAC)。Lakehouse 数据存储在 OneLake 中,因此数据访问通过 OneLake 权限进行控制。除了对象级权限外,Lakehouse 还支持表的列级和行级安全,从而能够精细控制谁可以查看表中的特定列或行。
Lakehouse 快捷方式
快捷方式在不复制数据的情况下创建数据的虚拟链接:
快捷方式的类型
- 内部:链接到其他 Fabric Lakehouse/表,实现跨工作区数据共享
- ADLS Gen2:链接到 Azure 中的 ADLS Gen2 容器
- Amazon S3:AWS S3 存储桶,跨云数据访问
- Dataverse:Microsoft Dataverse,业务应用数据
- Google Cloud Storage:GCS 存储桶,跨云数据访问
性能优化
V-Order 优化
为了通过语义模型更快地读取数据,请在 Delta 表上启用 V-Order 优化。它会以一种可提升常见访问模式查询性能的方式对数据进行预排序。
表优化
表还可以使用 OPTIMIZE 命令进行优化,该命令会将小文件合并为较大的文件,并且还可以应用 Z-ordering 来提升特定列的查询性能。随着数据随时间被引入和更新,定期优化有助于保持性能。Vacuum 命令可用于清理旧文件并释放存储空间,尤其是在更新和删除之后。
血统
Lakehouse 项支持血统,允许用户跟踪数据的来源和转换。Lakehouse 中表和文件的血统信息会被自动捕获,显示数据如何从源流向目标。这有助于调试、审计以及理解数据依赖关系。
PySpark 代码示例
有关详细信息,请参阅 PySpark 代码。
将数据引入 Lakehouse
有关详细信息,请参阅获取数据。