mcpField
F
fabric-lakehouse

fabric-lakehouse

github.com/github数据与数据库40.5k8.8k 次安装1 天前更新
代码仓库

关于 fabric-lakehouse

fabric-lakehouse 是一项用于理解、设计和优化 Microsoft Fabric Lakehouse 解决方案的技能,涵盖存储、查询、安全、血缘和性能实践,面向数据从业者。

主要功能

  1. 01Lakehouse 概念与组件
  2. 02表格和文件数据管理
  3. 03引用数据的快捷方式
  4. 04安全与访问控制
  5. 05优化和血缘指南

适用场景

  1. 01说明 Microsoft Fabric Lakehouse 能力
  2. 02规划 Lakehouse 数据布局
  3. 03管理表和文件访问
  4. 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

有关详细信息,请参阅获取数据。

评论

支持 Markdown