使用多个架构推理增强事件处理(预览版)

Microsoft Fabric 事件流中的多个架构推理功能支持从各种源和事件流本身推断多个架构。 可以使用该功能通过选取一个具有丰富灵活性的推断架构来设计各种数据转换路径。 此功能允许无缝数据集成和处理,以满足具有复杂和多个数据形状的环境的需求。 它解决了用户以前遇到单架构推理的挑战。

此功能适用于以下方案:

  • 查看和更新推断的架构:可以在多个位置查看和验证事件流中的推断架构。 如果推断出特定字段中的任何数据类型不正确,该功能允许进行必要的更正。

  • 将各种推断架构用于不同的转换路径:在中间默认流后配置第一个运算符节点时,必须选择其中一个推断的架构。 此选择允许使用所选架构中的事件列设计转换路径。

    不同的转换路径可以将不同的架构用于单个事件流中的数据转换。 此功能可提高数据转换的灵活性。

  • 获取组织良好的数据预览和测试结果:多个架构推理允许对预览数据和测试结果进行组织有序的显示。 以前,在数据预览或测试结果期间,具有多个架构的数据显示在混合列中。 这种显示导致了混乱。 现在,可以选择一个推断的架构来筛选预览或测试的数据。 只有与所选架构匹配的数据才会显示在数据预览或测试结果的选项卡上。

  • 重新输入编辑模式时,消除转换路径上的创作错误:此功能会在发布事件流后保留在转换路径(例如运算符)中应用的架构。 当 编辑 模式中不存在匹配架构时,此功能消除了以前在单架构推理事件流中的转换路径上出现的创作错误。

    现在可以继续调整转换路径中的运算符配置并发布事件流,即使新推断的架构与运算符配置中使用的架构不一致,或者重新进入 编辑 模式时未推断任何架构。

  • 将每个架构映射到源:在推断多个架构时,事件流有助于将每个架构映射到源。 如果事件流无法识别具有推断架构的数据源,系统会提示将架构手动映射到适当的源。 此映射可确保每个架构都有一个关联的转换设计源。 它提供架构来源的可见性。

工作原理

根据从源和事件流在时间范围内预览的数据推断架构。 如果源或事件流中没有数据,或者源不支持数据预览,则不会推断架构。 如果预览的数据发生更改(例如,添加新字段或数据类型更改),则会推断出新的架构。

如果在事件流中配置了运算符,则在发布事件流时会保留用于操作员配置的架构。 重新输入 编辑 模式时,此保留的架构仍应用于运算符。 此方法解决了在推断的架构与运算符配置中使用的架构不同或未推断架构时出现的创作错误。

先决条件

  • 使用“参与者”或更高权限访问事件流所在的工作区。

启用多个架构推理

若要使用多个架构推理,需要在事件流中启用该功能。 可以在新的和现有的事件流中启用它。

  1. 打开事件流,转到 “设置”,然后选择“ 架构”。
  2. 打开 “多个架构推理 ”开关,然后选择“ 应用”。

显示用于启用多个架构推理的选择的屏幕截图。

注释

启用该功能后,无法为此事件流禁用该功能。

查看和更新推断的架构

如果事件流的源支持数据预览或事件流包含数据,则可以从预览的数据中自动推断架构。 转到 “编辑 ”模式,然后选择 “推断的架构 ”选项卡以查看和修改事件流中的架构。

显示自动推断架构的屏幕截图。

选择架构名称可查看架构中的所有列(即字段)。 如果推断出任何字段不正确,可以更正这些字段。 例如,可以更正字段名称、正确的数据类型,或者添加和删除字段。 选择 “更新 ”以保存更改。

显示用于编辑推断架构的选择的屏幕截图。

注释

使用此步骤更正事件流在推断架构不准确时如何解释数据。 若要在处理过程中转换数据类型,请使用转换路径中的 “管理字段 ”运算符。

在转换路径中使用不同的架构

多个架构推理的功能允许在不同的转换路径中使用不同的架构。 在默认流后配置第一个运算符节点时,请在 “输入架构 ”列表中选择一个项。

显示如何在第一个节点中选择输入架构的屏幕截图。

在此处选择架构有助于使用该架构中指定的字段定义转换逻辑。 但是,它不会筛选传入数据。 即使某个事件缺少所选字段,它也仍被处理,这些字段保留为 null

例如,如果从 Sp500stocks 中选择架构,但从 自行车接收数据,则事件仍会到达自定义终结点。 所选字段显示 null 值。

显示调度架构结果的屏幕截图。

在这种情况下,eventhouse 目标不会接收任何数据。

显示为事件屋调度架构的结果的屏幕截图。

事件流中的每个转换路径都可以使用不同的架构。 在默认流后面的每个路径的第一个运算符中,可以选择与该路径的预期数据转换要求最匹配的架构。

如果转换路径不包含任何运算符,可以直接在目标配置中选择输入架构。 输入架构不充当筛选器。 它充当后端查询生成的架构输入。

显示如何在默认流之后直接插入目标的屏幕截图。

在数据预览和测试结果中按架构查看数据

添加支持预览的源或数据开始流入已发布的事件流后,可以进入 “编辑” 模式,然后选择推断的架构以查看匹配的测试数据。

可以在 “编辑” 模式下选择一个推断的架构,以便查看测试结果(如果源支持数据预览,或者它不支持但事件流已发布且数据流流入默认流)。

显示“编辑”模式下的测试结果的屏幕截图。

若要查看转换路径中节点(运算符或目标)中使用的架构详细信息,请选择运算符或目标节点,然后选择 “查看架构”。

显示用于查看第一个节点上架构的选择的屏幕截图。

还可以选择推断的架构来筛选 实时 视图中的预览数据。 此筛选可以确保只有与所选架构匹配的数据才会显示在 “数据预览 ”选项卡上。

注释

使用 实时 视图中的架构来组织预览的数据。 从支持的源和事件流中预览的实时数据推断出这些架构。 如果未预览任何数据,则不会显示任何架构。 如果存在具有新架构的数据,则 实时 视图中显示的架构与以前在 “编辑” 视图中显示的架构不同。

显示实时视图中预览的屏幕截图。

将架构映射到其源

当标识架构的源时,事件流会自动将推断的架构映射到各自的源。 例如,如果源支持数据预览,并且从此预览数据推断架构,则事件流会相应地映射架构与源。

显示推断架构的选项卡的屏幕截图。

如果数据源不支持数据预览,必须先发布事件流并等待数据到达。 然后,切换回 “编辑 ”模式以查看推断的架构。 在这种情况下,由于事件流无法根据推断的架构标识数据源,因此系统会提示将架构手动映射到正确的源。

若要将架构手动分配给源,请执行作:

  1. “编辑 ”模式下,在 “推断的架构 ”选项卡上,选择“ 映射到数据源”。

    显示开始手动将架构映射到数据源的选项的屏幕截图。

  2. 选择要映射的数据源,然后选择“ 保存” 以保存更改。

    显示数据源选择以映射架构的屏幕截图。

还可以在转换路径中首次使用期间映射此架构。 配置并保存操作员或目标时,对话框会提示你为架构选择适当的源。

显示用于为架构选择源的对话框的屏幕截图。

FAQ

为什么在添加源并刷新测试结果后没有推断架构?

创建新事件流并添加不支持数据预览的源时,即使刷新测试结果,也不会立即推断架构。

例如,假设使用 Azure 服务总线作为自定义终结点源。 若要在此示例中生成推断的架构,首先需要发布事件流,并等待数据到达事件流。 数据开始流入事件流后,切换回 “编辑 ”模式以查看推断的架构。 这些作是必需的,因为根据从源和事件流预览的数据推断架构。

在这种情况下,如果在转换路径中使用推断的架构,请确保将架构手动映射到 “推断的架构 ”选项卡上的正确源。

显示重新输入编辑模式以映射不支持数据预览的数据源的屏幕截图。

我编辑了推断的架构,但数据没有更改。 为什么?

编辑推断的架构会修改事件流对传入数据结构和类型的解释,但它不会更改实际的数据值和类型。 确定推断的架构与实际数据格式和结构不一致,并且需要下游运算符配置的准确列(即字段)类型时使用此函数。

若要在处理数据时对数据本身(例如重命名字段或转换类型)应用更改,请使用转换路径中的 “管理字段 ”运算符。

如果推断出现有源中的数据的架构发生更改,该怎么办?

如果数据结构发生更改(例如,在源中添加新字段或更改数据类型),则会在此事件流中预览此新数据时推断出一个新架构。 原因是从预览的数据推断架构。

可以在 “编辑” 模式下查看和使用新架构。 或者,可以使用新架构在 实时 视图中组织预览数据。 如果以前的架构用于操作员或目标,并且发布事件流,则保留以前的架构,并且仍可在 编辑 模式下查看。

如果未将架构映射到任何源,则发布事件流会产生什么后果?

架构不会保留在事件流中,因为它是临时架构,并且没有操作员或目标配置使用它。

如果删除具有映射架构的现有源,会发生什么情况?

如果从源推断的架构未在任何运算符或目标中使用,则删除源不会导致错误。 但是,如果从源推断的架构用于任何运算符或目标,则会发生创作错误。

若要继续,需要在发布之前将从已删除的源推断的架构重新映射到有效的源。 或者,可以选择另一个架构作为运算符的输入架构。

显示用于映射架构的对话框的屏幕截图。

为什么在现有事件流上启用此功能后,会看到额外的架构?

在现有事件流中启用多个架构推理并切换到 “编辑 ”模式时,在某些情况下会出现包含混合字段的额外架构。 此架构源自用于操作员配置的现有事件流。 默认情况下,它映射到所有源,因为事件流无法确定其源。 此默认行为可保护当前设置的连续性,并避免错误。