数据在管道中通过 流 处理。 每个流都包含 一个查询 ,通常为 一个目标。 流程将查询处理为批处理,或以增量数据流的形式传输到目标中。 流存在于 Lakeflow 管道中。
通常,在更新目标的管道中创建查询时,流会被自动定义,但您也可以显式定义额外的流,以便进行更复杂的处理,例如从多个源追加到单个目标。
更新
每次更新一个流的定义管道时,该流都会运行。 该流将创建或更新具有最新可用数据的表。 根据流的类型和对数据所做的更改的状态,更新可能会执行增量刷新,该刷新仅处理新记录或执行完全刷新,以重新处理数据源中的所有记录。
默认流和追加流
在更新目标的管道中创建查询时,会自动定义 默认流 。 对于流式处理表,默认流是一个 追加 流,它为每个更新添加新行,并且其名称与目标相同。 在单个步骤中创建流及其目标是使用管道的最常用方法,你可以使用它引入或转换数据。
还可以将流与目标分开定义,这样多个流就可以将数据追加到单个目标。 当您需要执行以下操作时,这会很有用:
- 添加流式数据源,这些源可将数据追加到现有的流式表中,而无需进行完整刷新。
- 用缺失的历史数据回填流式表。
- 在不使用
UNION子句的情况下,合并来自多个来源的数据。
有关创建默认流和显式流的示例,请参阅 在 Lakeflow 管道中使用流。
流类型
流式处理表和具体化视图的默认流是追加流。 还可以创建流以从变更数据捕获数据源进行读取。 下表描述了不同类型的流。
| 流类型 | 描述 |
|---|---|
| 追加 |
追加流是最常见的流类型,其中源中的新记录在每次更新时写入目标系统。 它们对应于结构化流处理中的附加模式。 可以添加 ONCE 标志,指定一个批处理查询,该查询的数据应该只插入目标一次,除非目标完全刷新。 任意数量的追加流都可以写入特定目标。默认流(使用目标流式处理表或具体化视图创建)将具有与目标相同的名称。 其他目标没有默认流。 |
| 自动 CDC (以前 应用更改) |
自动 CDC 流会引入包含更改数据捕获 (CDC) 数据的查询。 自动 CDC 流只能针对流式处理表,并且源必须是流式处理源(即使是 ONCE 流也是如此)。 多个自动 CDC 流可以针对单个流式处理表。 充当自动 CDC 流目标的流式处理表只能作为其他自动 CDC 流的目标。有关 CDC 数据的详细信息,请参阅 AUTO CDC API:使用管道简化更改数据捕获。 |
| 更新(公共预览版) |
更新流将全局、无水印的流式聚合结果输出到接收端,每个批次仅发出发生变化的记录。 更新流仅在Python中可用。 请参阅 update_flow。 |
其他资源
有关流及其用法的详细信息,请参阅以下主题: