Lakehouse SQL 分析终结点用例

SQL 分析端点是基于 Fabric 中基于 Delta 数据的 T-SQL 表面,经过读取优化。 本文解释了湖屋的SQL分析端点在Fabric数据仓库工作负载中的应用,以及湖屋在数据仓库中的应用场景。

什么是湖屋SQL分析终端?

SQL 分析端点允许你通过使用 T-SQL 语言和 TDS 协议查询湖屋内的数据。

  • SQL 分析端点会将湖屋中的 Delta 表作为 SQL 表暴露出来,你可以用 T-SQL 查询。
  • 湖边别墅的每张三角洲表都被表示为一张表。 数据应采用 Delta 格式。
  • 每个湖屋都有一个SQL分析端点,每个工作区可以有多个湖屋。 其他 Fabric 项目——包括仓库、镜像数据库、SQL 数据库和 Azure Cosmos DB——也会自动配置 SQL 分析端点,因此工作区可以拥有比湖屋更多的 SQL 分析端点。

你不需要在 Fabric 里创建 SQL 分析端点。 会自动为每个湖仓、数据库或镜像数据库创建 SQL 分析终结点。 SQL 分析终结点充当其父项的轻型数据仓库功能,补充了仓库的 Lakehouse 体系结构。 此架构允许 Spark 或 Fabric 镜像功能管理 Lakehouse 中文件夹结构中的数据,而这些数据可由 SQL 分析端点查看。

注释

在后台,SQL 分析终结点使用 与仓库 相同的引擎来提供高性能、低延迟的 SQL 查询。

自动元数据发现

无缝进程从 /Tables 文件夹中读取 Delta 日志,并确保表(如统计信息)的 SQL 元数据始终是最新的。 无需用户操作,也无需导入、复制数据或设置基础结构。 有关详细信息,请参阅 SQL 分析端点中自动生成的架构

湖屋支持的数据仓储场景

在 Fabric 中,我们提供一个仓库。

湖屋配备了由仓库驱动的SQL分析端点,可以简化传统的批处理、流式或λ架构模式决策树。 湖屋与仓库配合支持许多附加分析方案。 本节将探讨如何将湖边别墅与仓库结合,打造一流的分析策略。

用湖屋的黄金层进行分析

湖数据组织的一个众所周知的策略是 奖牌体系结构。 此策略将文件组织成原始(青铜)、合并(银)和精炼(黄金)层。 如果文件以 Delta Lake 格式存储,则可以使用 SQL 分析终结点分析奖牌体系结构黄金层中的数据,即使这些文件存储在 Microsoft Fabric OneLake 外部也是如此。

OneLake 中使用快捷方式,引用 Synapse Spark 或 Azure Databricks 引擎管理的外部 Azure Data Lake 存储账户中的 gold 文件夹。

还可以将仓库添加为主题区域或面向领域的解决方案,这些解决方案适用于具有定制分析要求的特定主题。

如果您选择将数据保留在 Fabric 中,它将始终开放,并且可通过 API、Delta 格式,当然也包括 T-SQL 进行访问。

以服务形式查询 Lakehouse 的 Delta 表及 OneLake 的其他项目

分析师、数据科学家和数据工程师可能需要查询数据湖中的数据。 在Fabric中,此端到端体验完全是 SaaSified。

OneLake 是适用于整个组织的单个、统一的逻辑数据湖。 OneLake 就像数据领域中的 OneDrive。 OneLake 可以包含多个工作区,例如,根据您的组织部门进行划分。 Fabric中的每个项都可以通过 OneLake 访问数据。

Fabric 中湖屋中的数据物理存储在 OneLake 中,文件夹结构如下:

  • /Files 文件夹包含数据工程师在分析之前应处理的原始和未合并(青铜)文件。 这些文件可能采用各种格式,例如 CSV、Parquet、不同类型的图像等。
  • /Tables 文件夹包含经整理并整合的(金标)数据,这些数据已可用于业务分析。 合并数据采用 Delta Lake 格式。

SQL 分析端点可以读取 OneLake 内 /tables 文件夹中的数据。 分析只需查询湖屋的SQL分析端点即可。 除了仓库,你还可以实现跨数据库查询,并能无缝切换从只读查询到在 OneLake 数据基础上构建额外的业务逻辑,Fabric Data Warehouse。

使用 Spark 进行数据工程,使用 SQL 进行服务

数据驱动型企业需要使其后端和分析系统与面向客户的应用程序保持近实时同步。 事务的影响必须通过端到端流程、相关应用程序和联机事务处理 (OLTP) 系统准确反映。

在 Fabric 中,可以使用 Spark 流式处理或数据工程来整理数据。 你可以使用 Lakehouse SQL 分析端点来验证数据质量和现有的 T-SQL 流程。 这可以在奖章架构中实现,也可以在湖畔别墅的多层中呈现青铜、银、金,或陈列、策划和精炼的数据。 可以自定义通过 Spark 创建的文件夹和表,以满足数据工程和业务要求。 一旦准备就绪,仓库就可以服务你所有下游的商业智能应用和其他分析用例,无需复制数据,也无需使用视图或通过 CREATE TABLE AS SELECT (CTAS)、存储过程及其他DML/DDL命令进行数据优化。

与你开放湖屋的金层整合

SQL 分析端点不仅限于 Fabric 湖屋中的数据分析。 通过使用 SQL 分析终结点,可以使用 Synapse Spark、Azure Databricks 或任何其他以湖为中心的数据工程引擎来分析任何 lakehouse 中的湖数据。 可以将数据存储在 Azure Data Lake Storage 或 Amazon S3 中。

你总可以通过任何引擎使用开放API、Delta格式,当然还有T-SQL来访问Fabric中湖屋的紧密双向集成。

通过快捷方式实现外部数据湖的数据虚拟化

使用 OneLake 快捷方式,在 Synapse Spark 或 Azure Databricks 引擎管理的外部 Azure Data Lake 存储账户中,以及存储在 Amazon S3 中的任何 Delta 表,都可以参考 gold。

可以从 SQL 分析终结点分析快捷方式引用的任何文件夹,并为引用的数据创建 SQL 表。 使用 SQL 表公开外部管理的数据湖中的数据,并对其启用分析。

此快捷方式可充当虚拟仓库,您可以在仓库中利用它来满足额外的下游分析需求,或直接对其进行查询。

若要分析外部 Data Lake 存储帐户中的数据,请使用以下步骤:

  1. 创建引用 Azure 数据湖存储Amazon S3 帐户中的文件夹的快捷方式。 输入连接详情和凭证后,湖屋中会显示一个快捷方式。
  2. 切换到湖屋的SQL分析端点,找一个名字和快捷方式名字一致的SQL表。 此 SQL 表引用 ADLS 或 S3 中的文件夹。
  3. 查询引用 ADLS 或 S3 中的数据的 SQL 表。 像 SQL 分析终结点中的其他任何表一样使用该表。 可以将引用不同存储帐户中数据的表连接起来。

注释

如果 SQL 表未立即显示在 SQL 分析终结点中,请等待几分钟。 创建引用外部存储帐户中数据的 SQL 表会有延迟。

分析数据湖中的存档数据或历史数据

数据分区是数据湖中一种常见的数据访问优化技术。 以 /year=<year>/month=<month>/day=<day> 格式的分层文件夹结构存储分区数据集,其中 yearmonthday 为分区列。 此结构在逻辑上保持历史数据分隔,并使计算引擎能够根据需要通过性能筛选读取数据,而不是读取整个目录以及所有文件夹和文件。

如果查询按将谓词列与某个值进行比较的条件进行筛选,则可以更快地访问分区数据。

SQL 分析端点可以轻松读取此类数据,无需配置。 例如,可以使用任何应用程序将数据存档到数据湖中,包括 SQL Server 2022 或 Azure SQL 托管实例。 使用外部表将数据分区并降落在湖中以便进行存档后,SQL 分析终结点可以将分区的 Delta Lake 表读取为 SQL 表,并允许组织对其进行分析。 此方法可降低总拥有成本、减少数据重复以及点亮大数据、AI 和其他分析方案。

还可以使用 时间旅行 查询来快速查询数据的先前版本。 时间旅行是使用 T-SQL 查询查询过去数据状态的低成本高效功能。 对于湖屋SQL分析终端,时间旅行受真空 保留设置限制。 要开始使用,请参阅 操作方法:在语句级别使用时间回溯查询

使用快捷方式对 Fabric 数据进行数据虚拟化

在 Fabric 中,工作区允许根据复杂的业务、地理或法规要求来隔离数据。

SQL分析端点使你能够保留数据,同时通过无缝虚拟化分析仓库或湖屋中的数据,甚至在其他Fabric工作区中。 Fabric 中的每个湖屋都存储在 OneLake 中。

使用快捷方式可以指向 OneLake 中任意位置的文件夹。

Fabric 中的每个仓库都将表数据存储在 OneLake 中。 如果表是仅追加表,那么表数据将在 OneLake 中以 Delta Lake 数据的形式公开。 快捷方式可以让你引用任何 OneLake 中仓库表暴露的文件夹。

跨工作区共享和查询

虽然工作区允许根据复杂的业务、地理或法规要求来隔离数据,但有时你需要促进跨行共享,以满足特定的分析需求。

湖屋SQL分析终端可以实现部门和用户之间数据的便捷共享,用户可以自带容量和仓库。 工作区整理部门、业务单元或者分析域。 通过快捷方式,用户可以找到任何仓库或湖屋的数据。 用户可以从相同的共享数据立即执行自己的自定义分析。 除了帮助部门退款和使用情况分配外,此方法也是数据的零复制版本。

SQL 分析端点支持查询任何表并轻松共享。 您可以通过使用工作区角色和安全角色来添加控制措施,以满足额外的业务需求。

若要启用跨工作区数据分析,请执行以下步骤:

  1. 创建 OneLake 快捷方式,该快捷方式引用可以访问的工作区中的表或文件夹。
  2. 选择一个湖屋或仓库,里面有你想分析的表格或三角洲湖文件夹。 当你选择一个表格或文件夹时,湖屋里会出现一个快捷方式。
  3. 切换到湖屋的SQL分析端点,找到与快捷方式名称相符的SQL表。 此 SQL 表会引用其他工作区中的文件夹。
  4. 查询引用其他工作区中数据的 SQL 表。 可以像 SQL 分析终结点中的其他任何表一样使用该表。 您可以联接引用不同工作区数据的表。

有关 SQL 分析终结点中安全性的详细信息,请参阅 适用于 SQL 分析终结点的 OneLake 安全性

注释

如果 SQL 表未立即显示在 SQL 分析终结点中,请等待几分钟。 创建引用其他工作区中数据的 SQL 表会有延迟。

分析分区数据

数据分区是数据湖中一种常见的数据访问优化技术。 您将分区数据集存储在分层文件夹结构中,采用 /year=<year>/month=<month>/day=<day> 格式,其中 yearmonthday 是分区列。 如果查询使用通过比较谓词列与值来筛选数据的谓词,则分区数据集可实现更快的数据访问。

SQL 分析端点可以将分区 Delta Lake 数据集表示为 SQL 表,并使你能够对其进行分析。

有关查询外部数据的详细信息和示例,请参阅 使用 Fabric 数据仓库或 SQL 分析终结点查询外部 Data Lake 文件。 有关查询已分区 parquet 文件的示例和用例,请参阅 查询分区数据

分析湖边别墅、仓库或活动屋内的数据

Lakehouse 和 Warehouse 主页面包含了 Eventhouse 终结点,被包括在 分析数据 菜单中。 Eventhouse 终结点直接在 Lakehouse 和 Warehouse 数据之上提供 Eventhouse 支持的查询体验,而无需重复数据或手动同步。

“分析数据”按钮展开的屏幕截图,其中显示了 SQL 分析终结点和 Eventhouse 终结点选项。

启用 Eventhouse 终结点后,Eventhouse 和 KQL 数据库将自动作为源 Lakehouse 或 Warehouse 的子项创建,架构同步在后台自动处理。 端点始终反映源数据的当前架构,支持准实时分析访问。

这种集成使 Eventhouse 成为数据源的自然扩展,而不是设置和管理所需的单独系统。 有关 Eventhouse 终结点的详细信息,请参阅 为 Lakehouse 和仓库启用 Eventhouse 终结点