Row-level delete files也是一种date file,使用Iceberg的format、schemas、column projection列投影
1. Position Delete Files
包含的字段信息如下:
字段ID | 字段名称 | 数据类型 | 描述 |
---|---|---|---|
2147483546 file_path | string | 要删除的一行数据的data file的path,比如hdfs://nnha/user/iceberg/warehouse/test_db/test_tb/data/partition1/xxx.orc | |
2147483545 pos | long | 要删除的一行数据在data file的position,position从0开始计算 | |
2147483544 row | required struct<…> | 要删除的一行数据的各字段和字段值 |
2. Equality Delete Files
例如,一个表有如下数据,表头每列为:字段ID:字段名称
1: id | 2: category | 3: name
-------|-------------|---------
1 | marsupial | Koala
2 | toy | Teddy
3 | NULL | Grizzly
4 | NULL | Polar
要删除id = 3的数据,则会有如下delete file
equality_ids=[1]
1: id | 2: category | 3: name
-------|-------------|---------
3 | NULL | Grizzly
要删除id = 4 and category is null的数据,则会有如下delete file
equality_ids=[1, 2]
1: id | 2: category | 3: name
-------|-------------|---------
4 | NULL | Polar
表中删除列或添加列,delete file还是按照要删除的列和值,应用到data files中