|
|
|
|
@@ -18,6 +18,7 @@
|
|
|
|
|
|
|
|
|
|
package org.apache.hudi.hive;
|
|
|
|
|
|
|
|
|
|
import org.apache.hudi.common.config.ConfigProperty;
|
|
|
|
|
import org.apache.hudi.common.config.TypedProperties;
|
|
|
|
|
import org.apache.hudi.sync.common.HoodieSyncConfig;
|
|
|
|
|
|
|
|
|
|
@@ -28,32 +29,40 @@ import org.apache.hadoop.hive.conf.HiveConf;
|
|
|
|
|
|
|
|
|
|
import java.util.Properties;
|
|
|
|
|
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_AUTO_CREATE_DATABASE;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_BATCH_SYNC_PARTITION_NUM;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_CREATE_MANAGED_TABLE;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_IGNORE_EXCEPTIONS;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_PASS;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_SKIP_RO_SUFFIX_FOR_READ_OPTIMIZED_TABLE;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_SUPPORT_TIMESTAMP_TYPE;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_SYNC_AS_DATA_SOURCE_TABLE;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_SYNC_BUCKET_SYNC;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_SYNC_BUCKET_SYNC_SPEC;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_SYNC_COMMENT;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_SYNC_MODE;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_SYNC_SCHEMA_STRING_LENGTH_THRESHOLD;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_TABLE_PROPERTIES;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_TABLE_SERDE_PROPERTIES;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_URL;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_USER;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_USE_JDBC;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_USE_PRE_APACHE_INPUT_FORMAT;
|
|
|
|
|
import static org.apache.hudi.hive.HiveSyncConfigHolder.METASTORE_URIS;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Configs needed to sync data into the Hive Metastore.
|
|
|
|
|
*/
|
|
|
|
|
public class HiveSyncConfig extends HoodieSyncConfig {
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Config constants below are retained here for BWC purpose.
|
|
|
|
|
*/
|
|
|
|
|
public static final ConfigProperty<String> HIVE_SYNC_ENABLED = HiveSyncConfigHolder.HIVE_SYNC_ENABLED;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_USER = HiveSyncConfigHolder.HIVE_USER;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_PASS = HiveSyncConfigHolder.HIVE_PASS;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_URL = HiveSyncConfigHolder.HIVE_URL;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_USE_PRE_APACHE_INPUT_FORMAT = HiveSyncConfigHolder.HIVE_USE_PRE_APACHE_INPUT_FORMAT;
|
|
|
|
|
/**
|
|
|
|
|
* @deprecated Use {@link #HIVE_SYNC_MODE} instead of this config from 0.9.0
|
|
|
|
|
*/
|
|
|
|
|
@Deprecated
|
|
|
|
|
public static final ConfigProperty<String> HIVE_USE_JDBC = HiveSyncConfigHolder.HIVE_USE_JDBC;
|
|
|
|
|
public static final ConfigProperty<String> METASTORE_URIS = HiveSyncConfigHolder.METASTORE_URIS;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_AUTO_CREATE_DATABASE = HiveSyncConfigHolder.HIVE_AUTO_CREATE_DATABASE;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_IGNORE_EXCEPTIONS = HiveSyncConfigHolder.HIVE_IGNORE_EXCEPTIONS;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_SKIP_RO_SUFFIX_FOR_READ_OPTIMIZED_TABLE = HiveSyncConfigHolder.HIVE_SKIP_RO_SUFFIX_FOR_READ_OPTIMIZED_TABLE;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_SUPPORT_TIMESTAMP_TYPE = HiveSyncConfigHolder.HIVE_SUPPORT_TIMESTAMP_TYPE;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_TABLE_PROPERTIES = HiveSyncConfigHolder.HIVE_TABLE_PROPERTIES;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_TABLE_SERDE_PROPERTIES = HiveSyncConfigHolder.HIVE_TABLE_SERDE_PROPERTIES;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_SYNC_AS_DATA_SOURCE_TABLE = HiveSyncConfigHolder.HIVE_SYNC_AS_DATA_SOURCE_TABLE;
|
|
|
|
|
public static final ConfigProperty<Integer> HIVE_SYNC_SCHEMA_STRING_LENGTH_THRESHOLD = HiveSyncConfigHolder.HIVE_SYNC_SCHEMA_STRING_LENGTH_THRESHOLD;
|
|
|
|
|
public static final ConfigProperty<Boolean> HIVE_CREATE_MANAGED_TABLE = HiveSyncConfigHolder.HIVE_CREATE_MANAGED_TABLE;
|
|
|
|
|
public static final ConfigProperty<Integer> HIVE_BATCH_SYNC_PARTITION_NUM = HiveSyncConfigHolder.HIVE_BATCH_SYNC_PARTITION_NUM;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_SYNC_MODE = HiveSyncConfigHolder.HIVE_SYNC_MODE;
|
|
|
|
|
public static final ConfigProperty<Boolean> HIVE_SYNC_BUCKET_SYNC = HiveSyncConfigHolder.HIVE_SYNC_BUCKET_SYNC;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_SYNC_BUCKET_SYNC_SPEC = HiveSyncConfigHolder.HIVE_SYNC_BUCKET_SYNC_SPEC;
|
|
|
|
|
public static final ConfigProperty<String> HIVE_SYNC_COMMENT = HiveSyncConfigHolder.HIVE_SYNC_COMMENT;
|
|
|
|
|
|
|
|
|
|
public static String getBucketSpec(String bucketCols, int bucketNum) {
|
|
|
|
|
return "CLUSTERED BY (" + bucketCols + " INTO " + bucketNum + " BUCKETS";
|
|
|
|
|
}
|
|
|
|
|
|