当Fabric数据代理有多个数据源时,它必须确定每个问题要使用的源。 此决策称为 数据源路由。 如果代理选取错误的源(或者根本不选取源),则会看到错误、不完整或空的答案。 本文介绍如何帮助代理进行可靠路由。
路由仅适用于具有多个数据源的代理。 如果代理有单个源,则可以跳过本文。
路由的工作原理
每个Fabric数据代理都有一个业务流程协调程序,用于选择工具和数据源。 当收到一个问题时,编排器:
- 生成一个用于回答问题的计划。
- 根据每个源的元数据(名称、说明、所选架构和示例查询)选择最有可能包含答案的数据源。
- 调用源的查询生成工具并查看结果。
- 如果需要更多信息,请使用另一个源或其他步骤重复此操作。
为提高速度,协调器根据每个源的元数据子集进行路由。 当该子集不够(例如,架构较大、源名称相似或问题不明确)时,它可以调用路由工具来检查完整架构和示例查询,然后再提交到源。
你的路由需要改进的迹象
如果您看到以下情况,问题很可能出在路由上:
- 代理会为预期特定源回答的问题选取错误的源。
- 代理表示,当其中一个连接的源中存在数据时,它找不到答案。
- 代理会为每个类似的问题提供不同的答案,因为它每次都会选取不同的源。
在运行步骤中检查路由决策
在数据代理回答问题后,展开运行步骤以查看代理路由到哪个源以及哪些上下文影响了决策。 如果业务流程协调程序调用路由工具,则会在运行中显示为自己的步骤,其中显示了在提交到源之前查看的元数据(说明、架构和示例查询)。
使用此视图可确认使用了哪个来源,查看编排器是否需要借助路由工具(这表明当时的决策存在歧义),并确定是哪部分上下文促成了这一选择。 通过应用下一部分中的步骤,使用这些信号使路由更具确定性。
改进路由
按顺序完成以下步骤。 每个步骤都会为编排器提供更多信号。
1. 缩小模式选择范围
在每个源上选择的表、视图和列是源所涵盖内容的主要信号。 仅选择代理应考虑的实体,并确保对象名称具有描述性。 选择范围过大或噪声过多会让编排器更难判断每个来源的用途。
2.添加数据源说明
说明可让编排器一眼看出该来源包含什么内容以及何时使用该来源。 保持简短,重点介绍源涵盖的主题或实体。 例如: “北美零售的销售事实数据,包括交易、退货和存储元数据。
有关详细信息,请参阅 配置数据代理。
3. 添加示例查询
示例查询(也称为少样本示例)可向编排器展示某个来源旨在回答的问题类型。 当收到新的问题时,协调器会将其与你的示例进行匹配,以找到最相关的来源。 为每个来源添加代表性问题,尤其是那些以前被路由到错误位置的问题。
有关详细信息,请参阅 数据代理示例查询。
4. 将路由规则添加到代理指令
如果问题在完成前面的步骤后仍然被路由到错误的来源,请将代理指令作为最后手段来明确指定路由规则。 按主题对规则进行分组,以便它们易于阅读和维护。
## Topics
- When asked about logistics trends, shipment delays, or carrier performance, use **FabrikamLogisticsLH**.
- When asked about marketing campaigns, ad spend, or channel performance, use **FabrikamMarketingDW**.
- When asked about customer support tickets or SLA breaches, use **FabrikamSupportKQL**.
保持这些规则简洁。 长列表的规则可能会挤满其他说明,并且每当添加或重命名数据源时,必须更新它们。