本文介绍如何在 Microsoft Fabric 事件流中向事件流添加湖屋作为目标。 为了优化流式传输性能和实时查询,请考虑通过将 Eventhouse 目标添加到 Eventstream来将数据流式传输到 Eventhouse,然后启用 Eventhouse OneLake 可用性。
注意
创建事件流时,默认情况下会启用增强功能。 如果你有通过标准功能创建的事件流,这些事件流将继续工作。 你仍然可以像往常一样编辑和使用它们。 建议创建新的事件流来替换标准事件流,以便可以利用增强型事件流的其他功能和好处。
重要
在写入数据到 lakehouse 的目标表时,实施模式约束。 对表的所有新写入必须在写入时与目标表的架构兼容,以确保数据质量。
将输出写入新的增量表时,将基于第一条记录创建表架构。 输出数据的所有记录都投影到现有表的架构。
如果传入数据具有不在现有表架构中的列,则写入表的数据中不包括额外的列。 类似地,如果传入的数据缺少现有表架构中的列,则在写入表时缺失列的值会设置为 null。
如果 Delta 表和传入记录的架构没有交集,则会导致架构转换失败。 但是,这不是唯一可能导致此类故障的方案。
如果传入数据的架构发生更改(即新数据记录的架构与第一条记录不一致),则写入 Lakehouse 时,某些列或整个记录可能会丢失。 因此,不建议使用 lakehouse 来接收此类流式数据,例如数据库 CDC 数据。
先决条件
- 使用参与者或更高权限在 Fabric 容量许可证模式(或)试用许可证模式下访问工作区。
- 以参与者或更高级别的权限访问湖屋所在的工作区。
添加湖屋作为目标
若要将 Lakehouse 目标添加到默认或派生事件流,请执行以下步骤。
在事件流的“编辑模式”下,选择功能区上的“添加目标”,然后从下拉列表中选择 Lakehouse。
将湖屋节点连接到流节点或运算符。
在 Lakehouse 配置屏幕上,补充以下信息:
- 输入目标名称。
- 选择包含湖屋的“工作区”。
- 从指定的工作区中选择现有的 Lakehouse。
- 选择现有“增量表”或创建一个新表来接收数据。
- 选择发送到湖屋的“输入数据格式”。 支持的数据格式为 JSON、Avro 和 CSV。
选择“高级”。
湖屋目的地有两种引入模式可用。 根据应用场景,配置这些模式来优化 Fabric 事件流写入湖屋的方式。
“最小行数”是湖屋在单个文件中引入的最小行数。 每个文件的最小行数为 1 行,最大行数为 200 万行。 最小行数越小,湖屋在引入期间创建的文件就越多。
“最大持续时间”是湖屋引入单个文件所需的最大持续时间。 最小时间为 1 分钟,最大时间为 2 小时。 持续时间越长,引入文件的行数就越多。
选择“保存”。
若要实现新添加的湖屋目标,请选择“发布”。
完成这些步骤后,湖屋目标可用于“实时视图”中的可视化效果。 在“详细信息”窗格中,可以选择“优化笔记本中的表”快捷方式以在笔记本中启动 Apache Spark 作业,该作业将合并目标湖屋表中的小型流式处理文件。
注意
配置 Eventstream 时,源、转换逻辑和目标通常一起添加。 默认情况下,发布 Eventstream 时,用于数据引入和数据路由的后端服务分别以 Now 开头。 但是,数据引入可能比数据路由更快地开始,导致某些数据在完全初始化路由之前引入到 Eventstream 中。 因此,此数据可能不会路由到目标。
若要缓解此问题,请执行以下步骤:
配置 Eventhouse(引入前的事件处理)或 Lakehouse 目标时,在添加数据源后取消选中 “激活引入”。
在发布 Eventstream 后手动激活引入。
使用 自定义时间 选项选择较早的时间戳,确保正确处理和路由初始数据。
有关详细信息,请参阅 暂停和恢复数据流
相关内容
若要了解如何向 eventstream 添加其他目的地,请参阅以下文章: