Fabric 数据代理与 SSAS 实时连接:架构、错误和直接 Lake 迁移

Avilas

随着组织竞相将人工智能集成到其分析堆栈中,遗留环境出现了一个关键的架构障碍:Fabric 数据代理无法连接到 SSAS 实时连接。虽然界面可能会显示已连接语义模型,这只是一个“代理”工件,它阻止XMLA端点人工智能落地所需的发现。

本指南对为什么本地数据网关无法支持对话式人工智能,分析延迟成本复合模型,并概述了从 SSAS 迁移到织物直接湖解锁真正的企业智能。

通过与 Azure SSAS 的实时连接使用 Fabric 数据代理 |千兆XP

GigXP.com
企业智能

作者:数据架构团队 | 2025 年 10 月更新

执行摘要

结构数据代理无法连接通过实时连接连接到 SSAS 多维数据集。该架构阻止了 AI 运行所需的 XMLA 模式发现。您在 Fabric 中看到的“语义模型”是一个代理工件,而不是数据容器。要启用 AI 代理,迁移到 Direct Lake 是唯一受支持的路径。

管理 SQL Server Analysis Services (SSAS) 遗留投资的组织面临着新的摩擦点。 Microsoft Fabric 的承诺是统一智能,特别是使用数据代理与企业数据聊天的能力。然而,对于那些使用本地数据网关连接到 SSAS 的人来说,答案是明确的

本报告剖析了架构块。我们解释了连接失败的原因,并澄清了混合环境中围绕“语义模型”的令人困惑的术语。

兼容性判定

Fabric 数据代理依赖于一个称为“接地”的过程。要回答诸如“欧洲的销售额是多少?”之类的问题,人工智能必须首先扫描数据库模式,以了解是否存在名为“销售额”的表和名为“地区”的列。代理使用 XMLA(XML for Analysis)端点执行此扫描。

这是实时连接失败的地方。 Microsoft Fabric 将实时连接工件视为“代理模型”。这些代理指向外部服务器,但阻止 XMLA 端点所需的元数据公开。如果无法访问 XMLA 端点,数据代理将是盲目的。它看不到您的桌子。它看不到您的列。因此,它无法生成查询。

互动:数据架构路径

图 1:可视化元数据差距。 XMLA 请求(蓝色)在实时连接代理处遇到障碍,而 Direct Lake(绿色)允许完全遍历。

技术深入探讨:元数据墙

握手失败的原因

当数据代理初始化时,它会尝试将自己“扎根”在您的数据中。它发送特定序列的 TMSL(表格模型脚本语言)发现命令。在实时连接场景中,这些命令无效。

发现序列:

Fabric 中的“代理”模型不缓存架构信息。它盲目转发 DAX 查询以进行可视化,但拒绝服务元数据发现请求。由于代理无法“读取”您的数据地图,因此无法对其进行导航。

样本值问题:
即使模式发现有效,代理也需要访问“样本值”(例如,看到“国家/地区”列包含“美国”、“英国”、“德国”)。通过网关为大型 SSAS 多维数据集中的每一列读取这些不同的值将引发巨大的性能损失,可能会导致代理在回答单个问题之前超时。

复合模型陷阱

架构师尝试的常见解决方法是创建“复合模型”(Power BI 数据集的 DirectQuery)。在此场景中,您创建一个新的结构语义模型,该模型连接到 SSAS 实时连接,但允许您添加本地表或计算组。

虽然从技术上讲,这在 Fabric 中放置了“真实”模型,但它仍然存在不适合数据代理。代理查询包装器模型,然后包装器模型尝试将查询折叠到 SSAS。将自然语言映射到 DAX,然后通过 DirectQuery 包装器将该 DAX 折叠到旧服务器的复杂性引入了两个致命缺陷:

  • 有限关系:复合模型使用“有限关系”(无物理完整性约束)。这会阻止代理准确推断过滤器如何在表之间传播,从而导致“我不知道”响应。
  • 折叠失败:简单的问题通常会生成无法折叠到 SSAS 源的 DAX。结果是尝试将数百万行拉入包装器模型的内存中,从而导致即时超时。

延迟复合器

即使元数据块被删除,网关的物理特性也会降低体验。人工智能对话是“喋喋不休”的——它不会运行一个查询;而是运行一个查询。它运行发现循环。使用下面的模拟器来看看网关延迟如何破坏人工智能的“实时”感觉。

模拟:网关延迟影响

网关延迟 (Ping)
50毫秒

代理复杂度(每个答案的查询数)
5 条查询

总等待时间:0.5秒

注意:AI 处理时间(约 2 秒)已添加到网络时间中。任何超过 3 秒的时间都会让用户感觉“损坏”。

经济转变:资本支出与运营支出

从 SSAS 迁移到 Fabric Direct Lake 不仅仅是一次技术迁移;更是一次技术迁移。这是一个金融问题。您正在从资本支出模型(购买硬件核心)转向运营支出模型(租用 Azure 容量)。

SSAS 实时连接
资本支出

您拥有硬件。计算成本是“沉没的”。 Fabric仅用于渲染像素,这意味着非常低的CU(容量单位)消耗。

织物直接湖
运营支出

计算是计量的。数据代理回答的每个问题都会烧毁 Fabric CU。大量使用需要更高的 F-SKU(建议将 F64+ 用于生产 AI)。

诊断工具包

需要向利益相关者证明这种限制吗?使用这些检查来确认元数据块。

1.DAX Studio测试:将 DAX Studio 连接到您的 Fabric 工作区。尝试使用“SELECT * FROM $SYSTEM.MDSCHEMA_TABLES”查询实时连接代理。结果:空或错误。

2. 设置检查:转到 Fabric 中的语义模型设置。如果“计划刷新”和“数据源凭据”选项卡呈灰色或丢失,则确认该工件是代理,而不是模型。

3. 问答设置:尝试在数据集上配置“Q&A”(代理的前身)。该选项将被禁用,原因是“远程模型”。

错误解码器:您将看到什么

如果您尝试强制数据代理 (Copilot) 连接到 SSAS 实时连接支持的报表,您可能会遇到这些混淆的错误状态之一。单击一张卡片即可揭示技术根本原因。

“不支持该型号”

根本原因:Fabric 后端检查“ModelType”属性。如果它检测到“LiveConnection”或“DirectQueryOverAS”,它会立即中止接地过程以防止超时。

建议阅读:多语言持久性:现代数据架构战略指南

“抱歉,我现在看不到您的数据”

根本原因:通用超时。代理尝试查询列统计信息(基数)以了解数据形状,但本地网关延迟超过了交互式 AI 响应的 30 秒严格超时。

“无法分析此页面上的视觉效果”

根本原因:代理正在尝试读取视觉对象的数据支持。由于可视化查询必须经过 Gateway -> SSAS -> Gateway -> Fabric,因此异步等待时间超出了 Agent 的同步预期。

“切换到 Direct Lake 模式”

根本原因:2024 年末 Fabric 更新中添加了一条明确的错误消息,以引导用户远离传统连接模式。

战略选择

对于人工智能驱动的组织来说,“本地数据、云端像素”的混合时代即将结束。要利用 Fabric 数据代理,元数据必须驻留在 Fabric 容量中。

迁移到 Direct Lake

推荐的路径是将 SSAS 模型迁移到 Fabric直接湖模式。通过将数据导出到 OneLake 中的 Delta Parquet 文件,您可以实现接近内存的性能。至关重要的是,元数据本身就驻留在 Fabric 中。这将打开 XMLA 端点,允许数据代理对架构建立索引并立即回答用户问题。

迁移准备清单

存货:使用兼容性级别 1500 或更高级别识别 SSAS 表格模型(轻松脚本迁移所需)。

脚本提取:使用表格编辑器保存 Model.bim 文件,删除数据源分区。

数据移动:设置数据工厂管道以将源 SQL 数据移至 Fabric Lakehouse (Delta Parquet)。

元数据重新绑定:在 Fabric 中打开剥离后的 Model.bim,并将分区指向 OneLake 中的 Delta 表。

代理激活:在 Fabric 租户设置中启用“允许 Copilot 中的用户数据”。

连接方式对比

特征 SSAS 实时连接 织物直接湖 面料进口
数据位置 本地服务器 OneLake(云) 织物记忆
元数据访问 被阻止(仅限代理) 开放(Fabric Native) 开放(Fabric Native)
代理兼容 是的 是的
XMLA端点 不支持 支持 支持
延迟 高(网关跃点) 低(内存中/Parquet) 最低

常见问题解答

全部
技术的
迁移
安全

我们可以通过租户设置启用 XMLA for Live Connections 吗?

不可以。虽然租户设置为“允许 XMLA 端点”,但它仅适用于导入、DirectQuery 和 Direct Lake 模型。启用它不会删除实时连接代理上的架构块。

如果语义模型不包含任何数据,为什么它还存在?

它充当安全边界。它允许 Fabric 管理传递到网关的“EffectiveUserName”属性以实施行级安全性 (RLS),而无需将物理服务器直接暴露给报告层。

Direct Lake 是否需要完全重写我们的 SSAS 多维数据集?

未必。表格编辑器等工具允许您编写 SSAS 中的度量和关系脚本,并将其部署到 Fabric 模型。主要工作是将数据源从 SQL 视图重新指向 OneLake 表。

我们可以使用复合模型作为桥梁吗?

这是有风险的。由于元数据的限制,SSAS 上的复合模型经常无法发现 AI 模式。它不是数据代理稳定性的认证途径。

Direct Lake 是否尊重我的 SSAS 基于角色的安全性?

Direct Lake 要求您在 Fabric 语义模型中重新创建角色。但是,您可以使用脚本自动执行此操作。定义后,Fabric 在代理看到数据之前就会遵循 RLS 过滤器。

我的数据是否会通过代理离开该区域?

如果您位于受支持的区域(例如美国、欧洲),则 AI 处理将在租户合规范围内进行。然而,对于实时连接,这个问题没有实际意义,因为代理无法首先访问数据。

© 2025 GigXP.com。版权所有。

基于 Microsoft Fabric 架构规范(2025 年 10 月)的研究。