Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文介绍管道的触发模式和连续模式的操作语义。
管道模式与要计算的表类型无关。 具体化视图和流式处理表都可以在任何管道模式下进行更新。
若要在触发和连续之间更改,在创建或编辑管道时,请使用管道设置中的 “管道”模式 选项。 请参阅 “配置管道”。
注释
针对 Databricks SQL 中定义的具体化视图和流式表的刷新操作始终以触发管道模式运行。
什么是触发管道模式?
如果管道使用 触发 模式,则系统会在成功刷新所有表或所选表后停止处理,确保更新中的每个表都根据更新启动时可用的数据刷新。
什么是连续管道模式?
如果管道使用 连续 执行,Lakeflow Spark 声明性管道会在数据到达数据源时立即处理,以保持整个管道中的表格更新。
为了避免在连续执行模式下进行不必要的处理,管道会自动监视依赖的 Delta 表,并且仅在这些依赖表的内容发生更改时才执行更新。
选择数据管道模式
下表重点介绍了触发和连续管道模式之间的差异:
| 主要问题 | 触发式 | 连续 |
|---|---|---|
| 更新何时停止? | 完成后自动进行。 | 持续运行,直到手动停止。 |
| 处理了哪些数据? | 更新启动时可用的数据。 | 数据在到达已配置的源时实时接收。 |
| 哪种数据新鲜度要求最适合这个? | 数据更新每 10 分钟、每小时或每天运行一次。 | 每 10 秒到几分钟需要一次数据更新。 |
触发式管道可以减少资源消耗和费用,因为计算集群仅运行足够长的时间来更新管道。 在管道被触发之前,新数据将不会被处理。 连续管道需要始终运行的群集,这更昂贵,但会降低处理延迟。
为连续管道设置触发器间隔
为连续模式配置管道时,可以设置触发器间隔来控制管道为每个流启动更新的频率。
您可以使用 pipelines.trigger.interval 来控制更新表格或整个管道的流程触发间隔。 由于触发的管道处理每个表一次,因此 pipelines.trigger.interval 仅用于连续管道。
Databricks 建议对单个表进行设置 pipelines.trigger.interval ,因为流式处理和批处理查询具有不同的默认值。 仅当处理需要控制整个管道图的更新时,才在管道上设置值。
在 Python 中使用 pipelines.trigger.interval 或在 SQL 中使用 spark_conf 将 SET 设置在表上。
@dp.table(
spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
return (<query>)
SET pipelines.trigger.interval=10 seconds;
CREATE OR REFRESH MATERIALIZED VIEW TABLE_NAME
AS SELECT ...
若要在管道上设置 pipelines.trigger.interval ,请在管道设置中将其添加到 configuration 对象:
{
"configuration": {
"pipelines.trigger.interval": "10 seconds"
}
}