对于 HUDI 表,目标是应用 GDPR 并删除表的键。 我只能删除表最新提交的数据。
如何确保删除 HUDI 表上所有提交的键?
我做了一个 POC:我执行了硬删除,应该删除整个行。
hard_delete_df = spark.sql("SELECT * FROM table_x where emp_id='1' ")
hudi_options['hoodie.datasource.write.operation'] = 'delete'
hard_delete_df.write.format("hudi").options(**hudi_options).mode("append").save(final_base_path)
这种情况发生,但仅适用于最新的提交。如果使用如下执行的时间旅行,我仍然会看到旧提交的已删除行。
df_commitbeforedelete = spark.read \
.format("org.apache.hudi")\
.option("as.of.instant", "timebeforedelete") \
.load("s3a://hudi-s3/table_x")
df_commitbeforedelete.show()
您无法对以前提交的文件运行删除或更新插入等操作。时间旅行仅供只读。
您必须依赖清理,以便 hudi auto 删除旧的提交文件。