增量湖事务日志批量添加记录和删除任何记录
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 中删除数据时,它会执行以下操作:
- 确定符合删除条件的文件
- 重写识别的文件,删除匹配的记录,并生成新文件
因此,事务日志将包含对包含符合您条件的记录的所有文件的 remove
操作,以及对新生成文件的 add
操作。
假设我在空的 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 中删除数据时,它会执行以下操作:
- 确定符合删除条件的文件
- 重写识别的文件,删除匹配的记录,并生成新文件
因此,事务日志将包含对包含符合您条件的记录的所有文件的 remove
操作,以及对新生成文件的 add
操作。