删除数据
Hudi支持对存储在Hudi表中的数据实现两种类型的删除,允许用户指定不同的记录负载实现:
1) 软删除:保留记录键,并将所有其他字段的值清空。这可以通过确保适当的字段在表模式中为空,并在将这些字段设置为空后简单地upsert表来实现。
2) 硬删除:更强的删除形式是从表中物理地删除记录的任何痕迹。这可以通过3种不同的方式实现。
- (1) 使用数据源,设置OPERATION_OPT_KEY为DELETE_OPERATION_OPT_VAL。这将删除被提交的数据集中的所有记录。
- (2) 使用数据源,设置PAYLOAD_CLASS_OPT_KEY的值为org.apache.hudi.EmptyHoodieRecordPayload。这将删除被提交的数据集中的所有记录。
- (3) 使用数据源或DeltaStreamer,将名为_hoodie_is_deleted的列添加到数据集。对于所有要删除的记录,该列的值必须设置为true,对于任何要被upsert的记录,该列的值要么设置为false,要么设置为null。
对于其中硬删除的第三种方式,假设有原始模式内容如下:
{
"type":"record",
"name":"example_tbl",
"fields":[{
"name": "uuid",
"type": "String"
}, {
"name": "ts",
"type": "string"
}, {
"name": "partitionPath",
"type": "string"
}, {
"name": "rank", ......
......
抱歉,只有登录会员才可浏览!会员登录