增量湖事务日志批量添加记录和删除任何记录

Delta lake transaction logs adding records in bulk and deleting any record

假设我在空的 delta table 中插入了一条记录,然后创建了一个 parquet 文件并创建了一个 transaction00.json 日志。 transaction00.json 将包含,

  transaction00.json -- {add- parquet1 file name}

我又插入了一条记录,然后将创建一个新的 parquet 文件并且 transaction01.json 将包含 -

{add -  parquet2 file name}

现在我从 delta table 中删除第二条记录然后 transaction02.json 将创建并且它包含

{remove-   parquet2 file name}
{add- parquet3 file name}

我一次插入20条记录,然后删除了5条记录怎么办? 我知道只会为 20 条记录创建一个镶木地板文件和一个 transaction.json 日志文件,但不确定删除操作。

能否请您解释一下如果删除 5 条记录将包含哪些事务日志?

当您从 Delta 中删除数据时,它会执行以下操作:

  1. 确定符合删除条件的文件
  2. 重写识别的文件,删除匹配的记录,并生成新文件

因此,事务日志将包含对包含符合您条件的记录的所有文件的 remove 操作,以及对新生成文件的 add 操作。