注释
此功能目前以 预览版提供。
具体化湖视图是预先计算并存储的 SQL 查询结果,可按需刷新或按计划刷新。 将它们视为包含复杂转换、聚合或联接结果的“智能表”,并采用智能刷新策略来保持数据最新状态。
为何使用具体化湖视图?
具体化湖视图解决了常见的数据工程难题:
- 性能:不重复运行昂贵的查询,而是预计算和存储结果
- 一致性:每个人都访问同一转换的数据,从而减少差异
- 效率:仅当源数据实际更改时刷新,才能节省计算资源
- 简单性:使用熟悉的 SQL 语法定义转换一次
何时应使用具体化湖视图?
如果有以下事项,请考虑具体化湖视图:
- 经常访问的聚合 (每日销售额总计、每月指标)
- 跨经常查询的多个大型表的复杂联接
- 需要一致应用的数据质量转换
- 报告数据集 合并来自多个源的数据
- 奖牌体系结构 ,你需要铜牌→银→金转换
请勿将其用于:
- 一次性或很少访问的查询
- 简单且快速执行的转换
- 高频流式数据(考虑实时智能实现亚秒级更新)
具体化湖视图的工作原理是什么?
具体化湖视图使用声明性方法 - 定义所需的内容,而不是如何生成它:
- 创建:编写定义转换的 SQL
- 刷新:Fabric 确定最佳刷新策略(增量、完整或跳过)
- 查询:应用程序像任何表一样查询具体化视图
- 监视:跟踪数据质量、世系和刷新状态
关键功能
自动刷新优化
Fabric 会自动确定何时以及如何刷新视图:
- 增量刷新:仅处理新的或更改的数据
- 完全刷新:根据需要重新生成整个视图
- 跳过刷新:源数据未更改时无需刷新
内置数据质量
直接在 SQL 中定义规则并指定如何处理冲突:
CONSTRAINT valid_sales CHECK (sales_amount > 0) ON MISMATCH DROP
依赖项管理
- 可视化您的视图相互依赖的方式
- 基于依赖项的自动刷新排序
- 处理遵循依赖项链来确保数据一致性
监视和洞察
- 跟踪更新性能和执行状态
- 在世系中查看数据质量指标和冲突计数
- 监视作业实例和刷新历史记录
常见用例
销售报告仪表板
-- Daily sales summary that refreshes automatically
CREATE MATERIALIZED LAKE VIEW daily_sales AS
SELECT
DATE(order_date) as sale_date,
region,
SUM(amount) as total_sales,
COUNT(*) as order_count
FROM orders
GROUP BY DATE(order_date), region;
数据质量验证
-- Clean customer data with quality rules
CREATE MATERIALIZED LAKE VIEW clean_customers (
CONSTRAINT valid_email CHECK (email IS NOT NULL) ON MISMATCH DROP
) AS
SELECT
customer_id,
TRIM(customer_name) as customer_name,
LOWER(email) as email
FROM raw_customers
WHERE customer_name IS NOT NULL;
奖牌体系结构
-- Bronze → Silver transformation
CREATE MATERIALIZED LAKE VIEW silver_products AS
SELECT
product_id,
product_name,
category,
CAST(price as DECIMAL(10,2)) as price
FROM bronze_products
WHERE price > 0;
注释
此功能目前在美国中南部区域不可用。
当前限制
以下功能目前不适用于 Microsoft Fabric 中的物化湖视图:
- PySpark 的声明性语法支持。 可以使用 Spark SQL 语法创建和刷新具体化湖视图。
- 跨湖屋世系和执行功能。