结合使用更佳:湖屋和仓库
适用于:✅ SQL 分析端点和 Microsoft Fabric 中的仓库
本文介绍了使用 Lakehouse 的 SQL 分析端点的数据仓库工作负载,以及在数据仓库中使用 Lakehouse 的场景。 有关选择开发仓库数据的决策指南,请参阅 Microsoft Fabric 决策指南:在仓库和湖屋之间选择。
湖屋 SQL 分析端点简介
借助 SQL 分析端点,可以使用 T-SQL 语言和 TDS 协议查询湖屋中的数据。 每个湖屋都有一个 SQL 分析端点,每个工作区可以有多个湖屋。 工作区中的 SQL 分析端点数与湖屋项目数匹配。
- SQL 分析端点为每个湖屋自动生成,并将湖屋中的 Delta 表公开为可以使用 T-SQL 语言查询的 SQL 表。
- 来自湖屋的每个 Delta 表都表示为一个表。 数据应采用 Delta 格式。
- 默认 Power BI 语义模型是为每个 SQL 分析端点创建的,它遵循湖屋对象的命名约定。
无需在 Microsoft Fabric 中创建 SQL 分析端点。 Microsoft Fabric 用户无法在工作区中创建 SQL 分析端点。 系统会自动为每个湖屋创建一个 SQL 分析端点。 若要获取 SQL 分析端点,请创建湖屋,同时系统会自动为湖屋创建 SQL 分析端点。
注意
在后台,SQL 分析端点使用与仓库相同的引擎来提供高性能、低延迟的 SQL 查询。
自动元数据发现
无缝过程从文件夹中读取 Delta 日志,并确保表的 SQL 元数据(例如统计信息)始终是最新版本。 无需用户操作,也无需导入、复制数据或设置基础结构。 有关详细信息,请参阅 SQL 分析端点中自动生成的架构。
湖屋为数据仓库启用的方案
在 Fabric 中,我们提供一个仓库。
湖屋的 SQL 分析端点由仓库提供支持,可以简化批处理、流式处理或 Lambda 体系结构模式的传统决策树。 湖屋与仓库配合支持许多附加分析方案。 本节介绍如何将湖屋与仓库结合使用,以获得最适合的分析策略。
使用 Fabric 湖屋的金牌层进行分析
湖数据组织的一个常见策略是奖牌体系结构,其中文件按原始(铜牌)、合并(银牌)和优化(金牌)层分类。 如果文件以 Delta Lake
格式存储,则 SQL 分析端点可用于分析奖牌体系结构金牌层中的数据,即使它们存储在 Microsoft Fabric OneLake 外部。
可以使用 OneLake 快捷方式引用由 Synapse Spark 或 Azure Databricks 引擎管理的外部 Azure Data Lake 存储帐户中的金牌文件夹。
还可以将仓库添加为面向主题区域或领域的解决方案,用于可能具有定制分析要求的特定主题。
如果选择将数据保留在 Fabric 中,它将始终通过 API、Delta 格式以及 T-SQL 打开和访问。
对湖屋中的增量表和 OneLake 中的其他项进行查询即服务
在某些用例中,分析师、数据科学家或数据工程师可能需要查询数据湖中的数据。 在 Fabric 中,这种端到端体验完全是 SaaS 化的。
OneLake 是适用于整个组织的单个、统一的逻辑数据湖。 OneLake 是用于数据的 OneDrive。 OneLake 可以包含多个工作区,例如,沿组织部门。 Fabric 中的每个项都可以通过 OneLake 访问数据。
Microsoft Fabric 湖屋中的数据以物理方式存储在 OneLake 中,其文件夹结构如下:
/Files
文件夹包含原始和未合并(铜牌)文件,数据工程师在分析这些文件之前应对其进行处理。 这些文件可能采用各种格式,例如 CSV、Parquet、不同类型的图像等。/Tables
文件夹包含优化和合并(金牌)数据,这些数据已准备好进行业务分析。 合并数据采用 Delta Lake 格式。
SQL 分析端点可以读取 OneLake 内 /tables
文件夹中的数据。 分析就像查询 Lakehouse 的 SQL 分析端点一样简单。 与仓库配合使用时,还可以执行跨数据库查询,并能够从只读查询无缝切换到使用 Fabric 数据仓库基于 OneLake 数据构建其他业务逻辑。
Spark 数据工程和 SQL 服务
数据驱动型企业需要使其后端和分析系统与面向客户的应用程序保持近实时同步。 事务的影响必须通过端到端流程、相关应用程序和联机事务处理 (OLTP) 系统准确反映。
在 Fabric 中,可以使用 Spark 流式处理或数据工程来策展数据。 湖屋 SQL 分析端点可以用来验证数据质量,也可用于现有 T-SQL 进程。 此操作可以在奖牌体系结构中完成,也可以在湖屋的多层中完成,提供铜牌、银牌、金牌或暂存、策展和优化数据。 可以自定义通过 Spark 创建的文件夹和表,以满足数据工程和业务要求。 准备就绪后,仓库可以为所有下游商业智能应用程序和其他分析用例提供服务,而无需复制数据、使用视图或使用 CREATE TABLE AS SELECT
(CTAS)、存储过程和其他 DML/DDL 命令优化数据。
与 Open Lakehouse 的金牌层集成
SQL 分析端点不仅限于 Fabric 湖屋中的数据分析。 借助 SQL 分析端点,你可以使用 Synapse Spark、Azure Databricks 或任何其他以湖为中心的数据工程引擎分析任何湖屋中的湖数据。 数据可以存储在 Azure Data Lake Storage 或 Amazon S3 中。
始终可以通过任何具有开放 API、Delta 格式(以及 T-SQL)的引擎访问这种与 Fabric 湖屋的紧密双向集成。
使用快捷方式对外部数据湖进行数据虚拟化
可以使用 OneLake 快捷方式引用由 Synapse Spark 或 Azure Databricks 引擎管理的外部 Azure Data Lake 存储帐户中的金牌文件夹,以及 Amazon S3 中存储的任何 Delta 表。
可以从 SQL 分析端点分析使用快捷方式引用的任何文件夹,系统会为引用的数据创建 SQL 表。 SQL 表可用于公开外部管理的数据湖中的数据,并对其启用分析。
此快捷方式充当虚拟仓库,可以从仓库中利用它来满足其他下游分析要求,或可用于直接查询。
使用以下步骤分析外部数据湖存储帐户中的数据:
- 创建引用 Azure 数据湖存储或 Amazon S3 帐户中的文件夹的快捷方式。 输入连接详细信息和凭据后,湖屋中会显示快捷方式。
- 切换到 Lakehouse 的 SQL 分析端点,找到名称与快捷方式名称匹配的 SQL 表。 此 SQL 表引用 ADLS/S3 文件夹中的文件夹。
- 查询引用 ADLS/S3 中数据的 SQL 表。 该表可用作 SQL 分析端点中的其他任何表。 可以联接引用不同存储帐户中数据的表。
注意
如果 SQL 表未立即显示在 SQL 分析端点中,可能需要等待几分钟。 创建引用外部存储帐户中数据的 SQL 表会有延迟。
分析数据湖中的存档数据或历史数据
数据分区是数据湖中一种常见的数据访问优化技术。 分区数据集以 /year=<year>/month=<month>/day=<day>
格式存储在分层文件夹结构中,其中 year
、month
和 day
是分区依据列。 这样,便可以利用一种允许计算引擎根据需要通过高性能筛选读取数据的格式存储以逻辑方式分隔的历史数据,而不是读取整个目录以及其中包含的所有文件夹和文件。
如果查询筛选将谓词列与值进行比较的谓词,则可以更快地访问分区数据。
SQL 分析端点可以轻松读取此类数据,无需配置。 例如,可以使用任何应用程序将数据存档到数据湖中,包括 SQL Server 2022 或 Azure SQL 托管实例。 为使用外部表进行存档而将数据分区放在湖中后,SQL 分析端点可以将分区的 Delta Lake 表读取为 SQL 表,并允许组织分析这些表。 此操作可降低总拥有成本、减少数据重复,并激活大数据、AI 和其他分析方案。
使用快捷方式对 Fabric 数据进行数据虚拟化
在 Fabric 中,工作区允许根据复杂的业务、地理或法规要求来隔离数据。
使用 SQL 分析端点,可以通过无缝虚拟化就地保留数据,并仍在仓库或湖屋中分析数据,即使在其他 Microsoft Fabric 工作区中也是如此。 每个 Microsoft Fabric 湖屋都将数据存储在 OneLake 中。
使用快捷方式可以引用任何 OneLake 位置的文件夹。
每个 Microsoft Fabric 仓库都将表数据存储在 OneLake 中。 如果表是仅追加表,则表数据将在 OneLake 中公开为 Delta Lake 数据。 利用快捷方式可以引用任何已公开仓库表的 OneLake 中的文件夹。
跨工作区共享和查询
虽然工作区允许根据复杂的业务、地理或法规要求来隔离数据,但有时你需要促进跨行共享,以满足特定的分析需求。
湖屋 SQL 分析端点可以让你轻松在部门和用户之间共享数据,并让用户自带容量和仓库。 工作区整理部门、业务部门或分析域。 利用快捷方式,用户可以找到任何仓库或湖屋的数据。 用户可以从相同的共享数据立即执行自己的自定义分析。 除了用于部门退款和使用情况分配外,此版本也是数据的零副本版本。
SQL 分析端点支持查询任何表并轻松共享。 添加了工作区角色和安全角色的控件,可以进一步分层以满足其他业务要求。
使用以下步骤启用跨工作区数据分析:
- 创建 OneLake 快捷方式,该快捷方式引用可以访问的工作区中的表或文件夹。
- 选择包含要分析的表或 Delta Lake 文件夹的湖屋或仓库。 选择表/文件夹后,湖屋中会显示快捷方式。
- 切换到 Lakehouse 的 SQL 分析端点,找到名称与快捷方式名称匹配的 SQL 表。 此 SQL 表会引用其他工作区中的文件夹。
- 查询引用其他工作区中数据的 SQL 表。 该表可用作 SQL 分析端点中的其他任何表。 可以联接引用不同工作区中数据的表。
注意
如果 SQL 表未立即显示在 SQL 分析端点中,可能需要等待几分钟。 创建引用其他工作区中数据的 SQL 表会有延迟。
分析分区数据
数据分区是数据湖中一种常见的数据访问优化技术。 分区数据集以 /year=<year>/month=<month>/day=<day>
格式存储在分层文件夹结构中,其中 year
、month
和 day
是分区依据列。 如果查询使用通过比较谓词列与值来筛选数据的谓词来筛选数据,则分区数据集可实现更快的数据访问。
SQL 分析端点可以将分区 Delta Lake 数据集表示为 SQL 表,并使你能够对其进行分析。