我看到 Spark 结构化流检查点目录有一个源文件夹,用于跟踪已处理数据的文件名和批次 ID。但它会创建一个名为“0”的父文件夹,然后在该文件夹中,我们将拥有 0、1、2 等文件,每个文件都对应于批次号。 (例如文件 2 表示批次 2 信息)。但是父目录“0”在这里做什么呢?它什么时候创建文件夹“1”?这有什么意义。
目录结构:
sources/
--> 0
--> 0
--> 1
--> 2
父目录结构和文件夹命名具有特定作用:
父目录 0 充当流式查询启动时检查点的初始命名空间。下一个文件夹或父目录 1 将在重新启动查询或状态重新初始化等情况下创建。
这可确保元数据得到组织,并且 Spark 可以恢复一次语义,从而允许 Spark 区分差异运行或作业阶段。