各位大佬好,
小弟最近在使用 Apache Hudi + Spark (Scala) 开发一个大数据项目,目前正在编写从 ODS 层 抽取数据到 DWD 层 的 ETL 程序。
在实际操作中,我发现通过 Spark 读取 ODS 层的 Hudi 表时,DataFrame 中会自动带入 Hudi 生成的元数据字段,比如:
_hoodie_commit_time
_hoodie_record_key
_hoodie_partition_path 等等。
现在我准备将处理后的数据写入 DWD 层的 Hudi 表,想请教一下大家:
在写入 DWD 表之前,是否有必要手动 drop 掉这些以 hoodie 开头的元数据字段?
我目前的困惑点在于:
如果保留这些字段直接写入 DWD,会不会导致新表的元数据混乱(比如新表误用了旧表的 commit time)?
生产环境中,标准的做法通常是先进行 select 业务字段过滤,还是直接带进去由 Hudi 自动覆盖?
如果不删除,在 DWD 层进行查询时,这些冗余的旧元数据字段是否会影响数据分析的准确性?
希望有经验的大佬能指点一下最佳实践。非常感谢大家的帮助!
之前一直是正常抽取,好像没什么问题,只是最近看到有人在ods -> dwd的时候看见会删除hoodie字段