diff --git a/hudi-flink/src/main/java/org/apache/hudi/configuration/FlinkOptions.java b/hudi-flink/src/main/java/org/apache/hudi/configuration/FlinkOptions.java index 3268458ff..abc67b0ed 100644 --- a/hudi-flink/src/main/java/org/apache/hudi/configuration/FlinkOptions.java +++ b/hudi-flink/src/main/java/org/apache/hudi/configuration/FlinkOptions.java @@ -478,6 +478,12 @@ public class FlinkOptions extends HoodieConfig { .defaultValue("PARQUET") .withDescription("File format for hive sync, default 'PARQUET'"); + public static final ConfigOption HIVE_SYNC_MODE = ConfigOptions + .key("hive_sync.mode") + .stringType() + .defaultValue("jdbc") + .withDescription("Mode to choose for Hive ops. Valid values are hms, jdbc and hiveql, default 'jdbc'"); + public static final ConfigOption HIVE_SYNC_USERNAME = ConfigOptions .key("hive_sync.username") .stringType() diff --git a/hudi-flink/src/main/java/org/apache/hudi/sink/utils/HiveSyncContext.java b/hudi-flink/src/main/java/org/apache/hudi/sink/utils/HiveSyncContext.java index db1d577c0..44e0baf06 100644 --- a/hudi-flink/src/main/java/org/apache/hudi/sink/utils/HiveSyncContext.java +++ b/hudi-flink/src/main/java/org/apache/hudi/sink/utils/HiveSyncContext.java @@ -71,6 +71,7 @@ public class HiveSyncContext { hiveSyncConfig.usePreApacheInputFormat = false; hiveSyncConfig.databaseName = conf.getString(FlinkOptions.HIVE_SYNC_DB); hiveSyncConfig.tableName = conf.getString(FlinkOptions.HIVE_SYNC_TABLE); + hiveSyncConfig.syncMode = conf.getString(FlinkOptions.HIVE_SYNC_MODE); hiveSyncConfig.hiveUser = conf.getString(FlinkOptions.HIVE_SYNC_USERNAME); hiveSyncConfig.hivePass = conf.getString(FlinkOptions.HIVE_SYNC_PASSWORD); hiveSyncConfig.jdbcUrl = conf.getString(FlinkOptions.HIVE_SYNC_JDBC_URL); diff --git a/hudi-flink/src/main/java/org/apache/hudi/streamer/FlinkStreamerConfig.java b/hudi-flink/src/main/java/org/apache/hudi/streamer/FlinkStreamerConfig.java index 92d976fc3..4597d0902 100644 --- a/hudi-flink/src/main/java/org/apache/hudi/streamer/FlinkStreamerConfig.java +++ b/hudi-flink/src/main/java/org/apache/hudi/streamer/FlinkStreamerConfig.java @@ -248,6 +248,9 @@ public class FlinkStreamerConfig extends Configuration { @Parameter(names = {"--hive-sync-file-format"}, description = "File format for hive sync, default 'PARQUET'") public String hiveSyncFileFormat = "PARQUET"; + @Parameter(names = {"--hive-sync-mode"}, description = "Mode to choose for Hive ops. Valid values are hms, jdbc and hiveql, default 'jdbc'") + public String hiveSyncMode = "jdbc"; + @Parameter(names = {"--hive-sync-username"}, description = "Username for hive sync, default 'hive'") public String hiveSyncUsername = "hive"; @@ -349,6 +352,7 @@ public class FlinkStreamerConfig extends Configuration { conf.setString(FlinkOptions.HIVE_SYNC_DB, config.hiveSyncDb); conf.setString(FlinkOptions.HIVE_SYNC_TABLE, config.hiveSyncTable); conf.setString(FlinkOptions.HIVE_SYNC_FILE_FORMAT, config.hiveSyncFileFormat); + conf.setString(FlinkOptions.HIVE_SYNC_MODE, config.hiveSyncMode); conf.setString(FlinkOptions.HIVE_SYNC_USERNAME, config.hiveSyncUsername); conf.setString(FlinkOptions.HIVE_SYNC_PASSWORD, config.hiveSyncPassword); conf.setString(FlinkOptions.HIVE_SYNC_JDBC_URL, config.hiveSyncJdbcUrl);