+1 from me. Long time coming.

On Mon, Apr 19, 2021 at 12:02 PM Ding, Wenning <wenni...@amazon.com.invalid>
wrote:

> Hi,
> I planned to refactor the current Hudi configuration framework. lamberken<
> https://github.com/lamberken> did similar things before:
> https://github.com/apache/hudi/pull/1094 and I’d like to continue this
> work and add more features in ConfigOption class.
>
> The motivation of this change is, as lamberken mentioned, “Currently,
> config items and their default value are dispersed in the java class file.
> It's could be confused when config items are defined more and more”. Having
> this change would make Hudi developers easy to use and check these
> configurations.
>
> Also, we can also bind configuration description within the ConfigOption
> class. And for the next step, we could also do something similar to Flink
> to automatically add/update property description on the Hudi website:
> https://github.com/apache/flink/blob/master/flink-core/src/main/java/org/apache/flink/configuration/description/Description.java
> .
> Besides, we can also bind an inference function within the ConfigOption
> class which can provide an inference mechanism for some of our
> configurations based on rules. For example, we can infer the key generator
> class based on the Hudi record fields & partition fields. For example, if
> the record key field contains comma which indicate that there are multiple
> record keys, then by default we should use ComplexKeyGenerator. If there’s
> no partition column, we should use NonpartitionedKeyGenerator. Having this
> inference mechanism can make Hudi be more intelligent so that users don’t
> need to set so many parameters from their client side.
> The disadvantage of this change is for users who are now using e.g.
> HoodieBootstrapConfig.BOOTSTRAP_BASE_PATH_PROP in their client code, they
> need to either replace it with
> HoodieBootstrapConfig.BOOTSTRAP_BASE_PATH_PROP.key() or
> hoodie.bootstrap.base.path.
> I opened a demo for this: https://github.com/apache/hudi/pull/2833.  Feel
> free to discuss under this thread and provide any suggestion!
>
> Related JIRAs:
> https://issues.apache.org/jira/browse/HUDI-89
> https://issues.apache.org/jira/projects/HUDI/issues/HUDI-375
>
> Thanks,
> Wenning
>
>
>
>

Reply via email to