浏览了文档(https://www.databricks.com/blog/2019/08/21/diving-into-delta-lake-unpacking-the-transaction-log.html)。虽然本文讨论了 Delta Lake 中的事务日志并提供了对添加/删除操作的见解,但它没有明确涵盖 Delta 表在合并/更新操作期间如何管理日志和数据文件的详细信息。
例如,假设有 2 次运行。
在run_1中写入两条数据,对应的_delta_log文件名为00000.json,数据文件file_1.parquet。据了解,增量日志文件包括指向 file_1.parquet 数据文件的添加操作。
随后,在run_2中,生成两条记录:一条记录需要用run_1中的1条记录更新,另一条记录需要插入。在这种情况下日志和数据文件的外观如何展开?日志文件如何跟踪?
Here's the breakdown:
* Data specific to Run-1 (1 record)
* Data specific to Run-2 (1 new record)
* Data updates/merge: One record from the Run-1 file needs to be merged with the Run-2 file.
During Run-1:
* log file : 00000.json
* Data file : file_1.parquet (contains 2 records)
During Run-2:
* log file : 00001.json, 00002.json (how latest json log file tracks updated data?)
* Data file : how many files generated? does it generate 2 files one for new records and one for records to be updated?
我不确定这是否是适合此问题的论坛。如果不是,请引导我找到正确的位置。
早期的日志文件保持原样。新的增量日志文件指向新的镶木地板文件,并对旧文件进行添加操作和删除操作