$ Waterdrop学习笔记

以下内容基于waterdrop的v2.x版本。

$ 数据流

$ Spark批处理

Spark批处理引擎的代码逻辑主要在类SparkBatchExecution.scala (opens new window)中,执行流程如下:

  • 执行source部分:source可以有多个,每个source都必须注册成一个临时视图。
  • 执行transform部分:当transform的输入为空时则跳过后续transform过程。每个transform的输入表都可以通过source_table_name指定,输出都可以选择性地注册为临时视图。如果没有指定source_table_name,首个transform的输入默认接首个source。同样如果没有指定source_table_name,后续transform的输入默认接上一个transform的输出。
  • 执行sink部分:顺序执行每个sink过程,每个sink过程都可以通过source_table_name指定输入表。如果没有指定source_table_name,首个sink过程的输入默认接首个source(空数据)或者最后一个transform的输出。
waterdrop

$ Spark流处理

Spark批处理引擎的代码逻辑主要在类SparkStreamingExecution.scala (opens new window)中,执行流程参考Spark批处理。

$ Flink批处理

Spark批处理引擎的代码逻辑主要在类FlinkBatchExecution.java (opens new window)中,执行流程参考Spark批处理。

$ Flink流处理

Spark批处理引擎的代码逻辑主要在类FlinkStreamExecution.java (opens new window)中,执行流程参考Spark批处理。

更新时间: 9/9/2021, 10:33:36 AM