nsivabalan commented on a change in pull request #4175:
URL: https://github.com/apache/hudi/pull/4175#discussion_r822220597



##########
File path: 
hudi-sync/hudi-sync-common/src/main/java/org/apache/hudi/sync/common/HoodieSyncConfig.java
##########
@@ -0,0 +1,180 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hudi.sync.common;
+
+import org.apache.hudi.common.config.ConfigProperty;
+import org.apache.hudi.common.config.HoodieConfig;
+import org.apache.hudi.common.config.HoodieMetadataConfig;
+import org.apache.hudi.common.config.TypedProperties;
+import org.apache.hudi.common.table.HoodieTableConfig;
+import org.apache.hudi.common.util.Option;
+import org.apache.hudi.keygen.constant.KeyGeneratorOptions;
+
+import com.beust.jcommander.Parameter;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Function;
+
+/**
+ * Configs needed to sync data into external meta stores, catalogs, etc.
+ */
+public class HoodieSyncConfig extends HoodieConfig {
+
+  public static final String META_SYNC_BASE_PATH = "meta.sync.base.path";
+
+  @Parameter(names = {"--database"}, description = "name of the target 
database in Hive", required = true)
+  public String databaseName;
+
+  @Parameter(names = {"--table"}, description = "name of the target table in 
Hive", required = true)
+  public String tableName;
+
+  @Parameter(names = {"--base-path"}, description = "Basepath of hoodie table 
to sync", required = true)
+  public String basePath;
+
+  @Parameter(names = {"--base-file-format"}, description = "Format of the base 
files (PARQUET (or) HFILE)")
+  public String baseFileFormat;
+
+  @Parameter(names = "--partitioned-by", description = "Fields in the schema 
partitioned by")
+  public List<String> partitionFields;
+
+  @Parameter(names = "--partition-value-extractor", description = "Class which 
implements PartitionValueExtractor "
+      + "to extract the partition values from HDFS path")
+  public String partitionValueExtractorClass;
+
+  @Parameter(names = {"--assume-date-partitioning"}, description = "Assume 
standard yyyy/mm/dd partitioning, this"
+      + " exists to support backward compatibility. If you use hoodie 0.3.x, 
do not set this parameter")
+  public Boolean assumeDatePartitioning;
+
+  @Parameter(names = {"--decode-partition"}, description = "Decode the 
partition value if the partition has encoded during writing")
+  public Boolean decodePartition;
+
+  @Parameter(names = {"--use-file-listing-from-metadata"}, description = 
"Fetch file listing from Hudi's metadata")
+  public Boolean useFileListingFromMetadata;
+
+  @Parameter(names = {"--conditional-sync"}, description = "If true, only sync 
on conditions like schema change or partition change.")
+  public Boolean isConditionalSync;
+
+  @Parameter(names = {"--spark-version"}, description = "The spark version", 
required = false)
+  public String sparkVersion;
+
+  public static final ConfigProperty<String> META_SYNC_ENABLED = ConfigProperty
+      .key("hoodie.datasource.meta.sync.enable")
+      .defaultValue("false")
+      .withDocumentation("Enable Syncing the Hudi Table with an external meta 
store or data catalog.");
+
+  // ToDo change the prefix of the following configs from hive_sync to 
meta_sync
+  public static final ConfigProperty<String> META_SYNC_DATABASE_NAME = 
ConfigProperty
+      .key("hoodie.datasource.hive_sync.database")
+      .defaultValue("default")
+      .withDocumentation("The name of the destination database that we should 
sync the hudi table to.");
+
+  // If the table name for the metastore destination is not provided, pick it 
up from write or table configs.
+  public static final Function<HoodieConfig, Option<String>> 
TABLE_NAME_INFERENCE_FUNCTION = cfg -> {
+    if (cfg.contains(HoodieTableConfig.HOODIE_WRITE_TABLE_NAME_KEY)) {
+      return 
Option.of(cfg.getString(HoodieTableConfig.HOODIE_WRITE_TABLE_NAME_KEY));
+    } else if (cfg.contains(HoodieTableConfig.HOODIE_TABLE_NAME_KEY)) {
+      return Option.of(cfg.getString(HoodieTableConfig.HOODIE_TABLE_NAME_KEY));
+    } else {
+      return Option.empty();
+    }
+  };
+  public static final ConfigProperty<String> META_SYNC_TABLE_NAME = 
ConfigProperty
+      .key("hoodie.datasource.hive_sync.table")
+      .defaultValue("unknown")

Review comment:
       can you respond ?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to