This is an automated email from the ASF dual-hosted git repository. yihua pushed a commit to branch branch-0.x in repository https://gitbox.apache.org/repos/asf/hudi.git
commit 82f7485e4f9bc8fa2af53ff83229ee87b31710f0 Author: Geser Dugarov <[email protected]> AuthorDate: Sat Apr 20 07:43:37 2024 +0700 [MINOR] Added configurations of Hudi table, file-based SQL source, Hudi error table, and timestamp key generator to configuration listing (#11057) --- .../org/apache/hudi/config/HoodieErrorTableConfig.java | 3 ++- .../org/apache/hudi/common/config/ConfigGroups.java | 4 ++++ .../hudi/common/config/TimestampKeyGeneratorConfig.java | 2 +- .../org/apache/hudi/common/table/HoodieTableConfig.java | 17 ++++++++++------- .../hudi/utilities/config/SqlFileBasedSourceConfig.java | 3 ++- 5 files changed, 19 insertions(+), 10 deletions(-) diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieErrorTableConfig.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieErrorTableConfig.java index 8ba013b00ee..1db8f2c4b5f 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieErrorTableConfig.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieErrorTableConfig.java @@ -21,6 +21,7 @@ package org.apache.hudi.config; import org.apache.hudi.common.config.ConfigClassProperty; import org.apache.hudi.common.config.ConfigGroups; import org.apache.hudi.common.config.ConfigProperty; +import org.apache.hudi.common.config.HoodieConfig; import javax.annotation.concurrent.Immutable; @@ -30,7 +31,7 @@ import java.util.Arrays; @ConfigClassProperty(name = "Error table Configs", groupName = ConfigGroups.Names.WRITE_CLIENT, description = "Configurations that are required for Error table configs") -public class HoodieErrorTableConfig { +public class HoodieErrorTableConfig extends HoodieConfig { public static final ConfigProperty<Boolean> ERROR_TABLE_ENABLED = ConfigProperty .key("hoodie.errortable.enable") .defaultValue(false) diff --git a/hudi-common/src/main/java/org/apache/hudi/common/config/ConfigGroups.java b/hudi-common/src/main/java/org/apache/hudi/common/config/ConfigGroups.java index daba6f9203e..95a809f10ca 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/config/ConfigGroups.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/config/ConfigGroups.java @@ -30,6 +30,7 @@ public class ConfigGroups { * {@link ConfigGroups#getDescription}. */ public enum Names { + TABLE_CONFIG("Hudi Table Config"), ENVIRONMENT_CONFIG("Environment Config"), SPARK_DATASOURCE("Spark Datasource Configs"), FLINK_SQL("Flink Sql Configs"), @@ -94,6 +95,9 @@ public class ConfigGroups { public static String getDescription(Names names) { String description; switch (names) { + case TABLE_CONFIG: + description = "Basic Hudi Table configuration parameters."; + break; case ENVIRONMENT_CONFIG: description = "Hudi supports passing configurations via a configuration file " + "`hudi-default.conf` in which each line consists of a key and a value " diff --git a/hudi-common/src/main/java/org/apache/hudi/common/config/TimestampKeyGeneratorConfig.java b/hudi-common/src/main/java/org/apache/hudi/common/config/TimestampKeyGeneratorConfig.java index 7098c076279..46b66371b31 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/config/TimestampKeyGeneratorConfig.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/config/TimestampKeyGeneratorConfig.java @@ -31,7 +31,7 @@ import java.util.concurrent.TimeUnit; + "the partition field. The field values are interpreted as timestamps and not just " + "converted to string while generating partition path value for records. Record key is " + "same as before where it is chosen by field name.") -public class TimestampKeyGeneratorConfig { +public class TimestampKeyGeneratorConfig extends HoodieConfig { private static final String TIMESTAMP_KEYGEN_CONFIG_PREFIX = "hoodie.keygen.timebased."; @Deprecated private static final String OLD_TIMESTAMP_KEYGEN_CONFIG_PREFIX = "hoodie.deltastreamer.keygen.timebased."; diff --git a/hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableConfig.java b/hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableConfig.java index c098f483bf8..5de826992f8 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableConfig.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableConfig.java @@ -20,6 +20,8 @@ package org.apache.hudi.common.table; import org.apache.hudi.common.bootstrap.index.HFileBootstrapIndex; import org.apache.hudi.common.bootstrap.index.NoOpBootstrapIndex; +import org.apache.hudi.common.config.ConfigClassProperty; +import org.apache.hudi.common.config.ConfigGroups; import org.apache.hudi.common.config.ConfigProperty; import org.apache.hudi.common.config.HoodieConfig; import org.apache.hudi.common.config.OrderedProperties; @@ -48,6 +50,8 @@ import org.apache.avro.Schema; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.annotation.concurrent.Immutable; + import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -71,13 +75,12 @@ import static org.apache.hudi.common.config.TimestampKeyGeneratorConfig.TIMESTAM import static org.apache.hudi.common.config.TimestampKeyGeneratorConfig.TIMESTAMP_TIMEZONE_FORMAT; import static org.apache.hudi.common.util.StringUtils.getUTF8Bytes; -/** - * Configurations on the Hoodie Table like type of ingestion, storage formats, hive table name etc Configurations are loaded from hoodie.properties, these properties are usually set during - * initializing a path as hoodie base path and never changes during the lifetime of a hoodie table. - * - * @see HoodieTableMetaClient - * @since 0.3.0 - */ +@Immutable +@ConfigClassProperty(name = "Hudi Table Basic Configs", + groupName = ConfigGroups.Names.TABLE_CONFIG, + description = "Configurations of the Hudi Table like type of ingestion, storage formats, hive table name etc." + + " Configurations are loaded from hoodie.properties, these properties are usually set during" + + " initializing a path as hoodie base path and never changes during the lifetime of a hoodie table.") public class HoodieTableConfig extends HoodieConfig { private static final Logger LOG = LoggerFactory.getLogger(HoodieTableConfig.class); diff --git a/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/SqlFileBasedSourceConfig.java b/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/SqlFileBasedSourceConfig.java index 2eaf64a4a4f..413ba1a3643 100644 --- a/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/SqlFileBasedSourceConfig.java +++ b/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/SqlFileBasedSourceConfig.java @@ -22,6 +22,7 @@ package org.apache.hudi.utilities.config; import org.apache.hudi.common.config.ConfigClassProperty; import org.apache.hudi.common.config.ConfigGroups; import org.apache.hudi.common.config.ConfigProperty; +import org.apache.hudi.common.config.HoodieConfig; import javax.annotation.concurrent.Immutable; @@ -33,7 +34,7 @@ import static org.apache.hudi.common.util.ConfigUtils.STREAMER_CONFIG_PREFIX; groupName = ConfigGroups.Names.HUDI_STREAMER, subGroupName = ConfigGroups.SubGroupNames.DELTA_STREAMER_SOURCE, description = "Configurations controlling the behavior of File-based SQL Source in Hudi Streamer.") -public class SqlFileBasedSourceConfig { +public class SqlFileBasedSourceConfig extends HoodieConfig { public static final ConfigProperty<String> SOURCE_SQL_FILE = ConfigProperty .key(STREAMER_CONFIG_PREFIX + "source.sql.file")
