/*
* 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 gobblin.configuration;
import java.nio.charset.Charset;
import java.util.concurrent.TimeUnit;
import com.google.common.base.Charsets;
/**
* A central place for all Gobblin configuration property keys.
*/
public class ConfigurationKeys {
/**
* System configuration properties.
*/
// Default file system URI for all file storage
// Overwritable by more specific configuration properties
public static final String FS_URI_KEY = "fs.uri";
// Local file system URI
public static final String LOCAL_FS_URI = "file:///";
// Comma-separated list of framework jars to include
public static final String FRAMEWORK_JAR_FILES_KEY = "framework.jars";
public static final String PST_TIMEZONE_NAME = "America/Los_Angeles";
/**
* State store configuration properties.
*/
// State store type. References an alias or factory class name
public static final String STATE_STORE_TYPE_KEY = "state.store.type";
public static final String DEFAULT_STATE_STORE_TYPE = "fs";
public static final String STATE_STORE_TYPE_NOOP = "noop";
// Root directory where task state files are stored
public static final String STATE_STORE_ROOT_DIR_KEY = "state.store.dir";
// File system URI for file-system-based task store
public static final String STATE_STORE_FS_URI_KEY = "state.store.fs.uri";
// Thread pool size for listing dataset state store
public static final String THREADPOOL_SIZE_OF_LISTING_FS_DATASET_STATESTORE = "state.store.threadpoolSizeOfListingFsDatasetStateStore";
public static final int DEFAULT_THREADPOOL_SIZE_OF_LISTING_FS_DATASET_STATESTORE = 10;
// Enable / disable state store
public static final String STATE_STORE_ENABLED = "state.store.enabled";
public static final String STATE_STORE_COMPRESSED_VALUES_KEY = "state.store.compressedValues";
public static final boolean DEFAULT_STATE_STORE_COMPRESSED_VALUES = true;
// DB state store configuration
public static final String STATE_STORE_DB_JDBC_DRIVER_KEY = "state.store.db.jdbc.driver";
public static final String DEFAULT_STATE_STORE_DB_JDBC_DRIVER = "com.mysql.jdbc.Driver";
// min idle time for eviction
public static final String STATE_STORE_DB_CONN_MIN_EVICTABLE_IDLE_TIME_KEY =
"state.store.db.conn.min.evictable.idle.time";
public static final long DEFAULT_STATE_STORE_DB_CONN_MIN_EVICTABLE_IDLE_TIME = 5 * 60 * 1000;
public static final String STATE_STORE_DB_URL_KEY = "state.store.db.url";
public static final String STATE_STORE_DB_USER_KEY = "state.store.db.user";
public static final String STATE_STORE_DB_PASSWORD_KEY = "state.store.db.password";
public static final String STATE_STORE_DB_TABLE_KEY = "state.store.db.table";
public static final String DEFAULT_STATE_STORE_DB_TABLE = "gobblin_job_state";
public static final String DATASETURN_STATESTORE_NAME_PARSER = "state.store.datasetUrnStateStoreNameParser";
/**
* Job scheduler configuration properties.
*/
// Job executor thread pool size
public static final String JOB_EXECUTOR_THREAD_POOL_SIZE_KEY = "jobexecutor.threadpool.size";
public static final int DEFAULT_JOB_EXECUTOR_THREAD_POOL_SIZE = 5;
// Job configuration file monitor polling interval in milliseconds
public static final String JOB_CONFIG_FILE_MONITOR_POLLING_INTERVAL_KEY = "jobconf.monitor.interval";
public static final long DEFAULT_JOB_CONFIG_FILE_MONITOR_POLLING_INTERVAL = 30000;
public static final long DISABLED_JOB_CONFIG_FILE_MONITOR_POLLING_INTERVAL = -1L;
// Directory where all job configuration files are stored WHEN ALL confs reside in local FS.
public static final String JOB_CONFIG_FILE_DIR_KEY = "jobconf.dir";
// Path where all job configuration files stored
public static final String JOB_CONFIG_FILE_GENERAL_PATH_KEY = "jobconf.fullyQualifiedPath" ;
// Job configuration file extensions
public static final String JOB_CONFIG_FILE_EXTENSIONS_KEY = "jobconf.extensions";
public static final String DEFAULT_JOB_CONFIG_FILE_EXTENSIONS = "pull,job";
// Whether the scheduler should wait for running jobs to complete during shutdown.
// Note this only applies to jobs scheduled by the built-in Quartz-based job scheduler.
public static final String SCHEDULER_WAIT_FOR_JOB_COMPLETION_KEY = "scheduler.wait.for.job.completion";
public static final String DEFAULT_SCHEDULER_WAIT_FOR_JOB_COMPLETION = Boolean.TRUE.toString();
/**
* Task executor and state tracker configuration properties.
*/
public static final String TASK_EXECUTOR_THREADPOOL_SIZE_KEY = "taskexecutor.threadpool.size";
public static final String TASK_STATE_TRACKER_THREAD_POOL_CORE_SIZE_KEY = "tasktracker.threadpool.coresize";
public static final String TASK_RETRY_THREAD_POOL_CORE_SIZE_KEY = "taskretry.threadpool.coresize";
public static final int DEFAULT_TASK_EXECUTOR_THREADPOOL_SIZE = 2;
public static final int DEFAULT_TASK_STATE_TRACKER_THREAD_POOL_CORE_SIZE = 1;
public static final int DEFAULT_TASK_RETRY_THREAD_POOL_CORE_SIZE = 1;
/**
* Common flow configuration properties.
*/
public static final String FLOW_NAME_KEY = "flow.name";
public static final String FLOW_GROUP_KEY = "flow.group";
public static final String FLOW_DESCRIPTION_KEY = "flow.description";
public static final String FLOW_EXECUTION_ID_KEY = "flow.executionId";
/**
* Common topology configuration properties.
*/
public static final String TOPOLOGY_NAME_KEY = "topology.name";
public static final String TOPOLOGY_GROUP_KEY = "topology.group";
public static final String TOPOLOGY_DESCRIPTION_KEY = "topology.description";
/**
* Common job configuration properties.
*/
public static final String JOB_NAME_KEY = "job.name";
public static final String JOB_GROUP_KEY = "job.group";
public static final String JOB_DESCRIPTION_KEY = "job.description";
// Job launcher type
public static final String JOB_LAUNCHER_TYPE_KEY = "launcher.type";
public static final String JOB_SCHEDULE_KEY = "job.schedule";
public static final String JOB_LISTENERS_KEY = "job.listeners";
// Type of the job lock
public static final String JOB_LOCK_TYPE = "job.lock.type";
//Directory that stores task staging data and task output data.
public static final String TASK_DATA_ROOT_DIR_KEY = "task.data.root.dir";
public static final String SOURCE_CLASS_KEY = "source.class";
public static final String CONVERTER_CLASSES_KEY = "converter.classes";
public static final String FORK_OPERATOR_CLASS_KEY = "fork.operator.class";
public static final String DEFAULT_FORK_OPERATOR_CLASS = "gobblin.fork.IdentityForkOperator";
public static final String JOB_COMMIT_POLICY_KEY = "job.commit.policy";
public static final String DEFAULT_JOB_COMMIT_POLICY = "full";
// If true, commit of different datasets will be performed in parallel
// only turn on if publisher is thread-safe
public static final String PARALLELIZE_DATASET_COMMIT = "job.commit.parallelize";
public static final boolean DEFAULT_PARALLELIZE_DATASET_COMMIT = false;
/** Only applicable if {@link #PARALLELIZE_DATASET_COMMIT} is true. */
public static final String DATASET_COMMIT_THREADS = "job.commit.parallelCommits";
public static final int DEFAULT_DATASET_COMMIT_THREADS = 20;
public static final String WORK_UNIT_RETRY_POLICY_KEY = "workunit.retry.policy";
public static final String WORK_UNIT_RETRY_ENABLED_KEY = "workunit.retry.enabled";
public static final String JOB_RUN_ONCE_KEY = "job.runonce";
public static final String JOB_DISABLED_KEY = "job.disabled";
public static final String JOB_JAR_FILES_KEY = "job.jars";
public static final String JOB_LOCAL_FILES_KEY = "job.local.files";
public static final String JOB_HDFS_FILES_KEY = "job.hdfs.files";
public static final String JOB_JAR_HDFS_FILES_KEY = "job.hdfs.jars";
public static final String JOB_LOCK_ENABLED_KEY = "job.lock.enabled";
public static final String JOB_MAX_FAILURES_KEY = "job.max.failures";
public static final int DEFAULT_JOB_MAX_FAILURES = 1;
public static final String MAX_TASK_RETRIES_KEY = "task.maxretries";
public static final int DEFAULT_MAX_TASK_RETRIES = 5;
public static final String TASK_RETRY_INTERVAL_IN_SEC_KEY = "task.retry.intervalinsec";
public static final long DEFAULT_TASK_RETRY_INTERVAL_IN_SEC = 300;
public static final String OVERWRITE_CONFIGS_IN_STATESTORE = "overwrite.configs.in.statestore";
public static final boolean DEFAULT_OVERWRITE_CONFIGS_IN_STATESTORE = false;
public static final String CLEANUP_STAGING_DATA_PER_TASK = "cleanup.staging.data.per.task";
public static final boolean DEFAULT_CLEANUP_STAGING_DATA_PER_TASK = true;
public static final String CLEANUP_STAGING_DATA_BY_INITIALIZER = "cleanup.staging.data.by.initializer";
/** Optional, for user to specified which template to use, inside .job file */
public static final String JOB_TEMPLATE_PATH = "job.template" ;
/**
* Configuration property used only for job configuration file's tempalte, inside .template file
*/
public static final String REQUIRED_ATRRIBUTES_LIST = "gobblin.template.required_attributes";
/**
* Configuration properties used internally.
*/
public static final String JOB_ID_KEY = "job.id";
public static final String JOB_KEY_KEY = "job.key";
public static final String TASK_ID_KEY = "task.id";
public static final String TASK_KEY_KEY = "task.key";
public static final String TASK_ATTEMPT_ID_KEY = "task.AttemptId";
public static final String JOB_CONFIG_FILE_PATH_KEY = "job.config.path";
public static final String TASK_FAILURE_EXCEPTION_KEY = "task.failure.exception";
public static final String TASK_RETRIES_KEY = "task.retries";
public static final String JOB_FAILURES_KEY = "job.failures";
public static final String JOB_TRACKING_URL_KEY = "job.tracking.url";
public static final String FORK_STATE_KEY = "fork.state";
public static final String JOB_STATE_FILE_PATH_KEY = "job.state.file.path";
public static final String JOB_STATE_DISTRIBUTED_CACHE_NAME = "job.state.distributed.cache.name";
/**
* Dataset-related configuration properties;
*/
// This property is used to specify the URN of a dataset a job or WorkUnit extracts data for
public static final String DATASET_URN_KEY = "dataset.urn";
public static final String DEFAULT_DATASET_URN = "";
/**
* Work unit related configuration properties.
*/
public static final String WORK_UNIT_LOW_WATER_MARK_KEY = "workunit.low.water.mark";
public static final String WORK_UNIT_HIGH_WATER_MARK_KEY = "workunit.high.water.mark";
public static final String WORK_UNIT_SKIP_KEY = "workunit.skip";
/**
* Work unit runtime state related configuration properties.
*/
public static final String WORK_UNIT_WORKING_STATE_KEY = "workunit.working.state";
public static final String WORK_UNIT_STATE_RUNTIME_HIGH_WATER_MARK = "workunit.state.runtime.high.water.mark";
public static final String WORK_UNIT_STATE_ACTUAL_HIGH_WATER_MARK_KEY = "workunit.state.actual.high.water.mark";
public static final String WORK_UNIT_DATE_PARTITION_KEY = "workunit.source.date.partition";
/**
* Watermark interval related configuration properties.
*/
public static final String WATERMARK_INTERVAL_VALUE_KEY = "watermark.interval.value";
/**
* Extract related configuration properties.
*/
public static final String EXTRACT_TABLE_TYPE_KEY = "extract.table.type";
public static final String EXTRACT_NAMESPACE_NAME_KEY = "extract.namespace";
public static final String EXTRACT_TABLE_NAME_KEY = "extract.table.name";
public static final String EXTRACT_EXTRACT_ID_KEY = "extract.extract.id";
public static final String EXTRACT_IS_FULL_KEY = "extract.is.full";
public static final String EXTRACT_FULL_RUN_TIME_KEY = "extract.full.run.time";
public static final String EXTRACT_PRIMARY_KEY_FIELDS_KEY = "extract.primary.key.fields";
public static final String EXTRACT_DELTA_FIELDS_KEY = "extract.delta.fields";
public static final String EXTRACT_SCHEMA = "extract.schema";
public static final String EXTRACT_LIMIT_ENABLED_KEY = "extract.limit.enabled";
public static final boolean DEFAULT_EXTRACT_LIMIT_ENABLED = false;
/**
* Converter configuration properties.
*/
public static final String CONVERTER_AVRO_DATE_FORMAT = "converter.avro.date.format";
public static final String CONVERTER_AVRO_DATE_TIMEZONE = "converter.avro.date.timezone";
public static final String CONVERTER_AVRO_TIME_FORMAT = "converter.avro.time.format";
public static final String CONVERTER_AVRO_TIMESTAMP_FORMAT = "converter.avro.timestamp.format";
public static final String CONVERTER_AVRO_BINARY_CHARSET = "converter.avro.binary.charset";
public static final String CONVERTER_AVRO_MAX_CONVERSION_FAILURES = "converter.avro.max.conversion.failures";
public static final long DEFAULT_CONVERTER_AVRO_MAX_CONVERSION_FAILURES = 0;
public static final String CONVERTER_CSV_TO_JSON_DELIMITER = "converter.csv.to.json.delimiter";
public static final String CONVERTER_FILTER_FIELD_NAME = "converter.filter.field";
public static final String CONVERTER_FILTER_FIELD_VALUE = "converter.filter.value";
public static final String CONVERTER_IS_EPOCH_TIME_IN_SECONDS = "converter.is.epoch.time.in.seconds";
public static final String CONVERTER_AVRO_EXTRACTOR_FIELD_PATH = "converter.avro.extractor.field.path";
public static final String CONVERTER_STRING_FILTER_PATTERN = "converter.string.filter.pattern";
public static final String CONVERTER_STRING_SPLITTER_DELIMITER = "converter.string.splitter.delimiter";
public static final String CONVERTER_STRING_SPLITTER_SHOULD_TRIM_RESULTS = "converter.string.splitter.shouldITrimResults";
public static final boolean DEFAULT_CONVERTER_STRING_SPLITTER_SHOULD_TRIM_RESULTS = false;
public static final String CONVERTER_CSV_TO_JSON_ENCLOSEDCHAR = "converter.csv.to.json.enclosedchar";
public static final String DEFAULT_CONVERTER_CSV_TO_JSON_ENCLOSEDCHAR = "\0";
public static final String CONVERTER_AVRO_FIELD_PICK_FIELDS = "converter.avro.fields";
public static final String CONVERTER_AVRO_JDBC_ENTRY_FIELDS_PAIRS = "converter.avro.jdbc.entry_fields_pairs";
/**
* Fork operator configuration properties.
*/
public static final String FORK_BRANCHES_KEY = "fork.branches";
public static final String FORK_BRANCH_NAME_KEY = "fork.branch.name";
public static final String FORK_BRANCH_ID_KEY = "fork.branch.id";
public static final String DEFAULT_FORK_BRANCH_NAME = "fork_";
public static final String FORK_RECORD_QUEUE_CAPACITY_KEY = "fork.record.queue.capacity";
public static final int DEFAULT_FORK_RECORD_QUEUE_CAPACITY = 100;
public static final String FORK_RECORD_QUEUE_TIMEOUT_KEY = "fork.record.queue.timeout";
public static final long DEFAULT_FORK_RECORD_QUEUE_TIMEOUT = 1000;
public static final String FORK_RECORD_QUEUE_TIMEOUT_UNIT_KEY = "fork.record.queue.timeout.unit";
public static final String DEFAULT_FORK_RECORD_QUEUE_TIMEOUT_UNIT = TimeUnit.MILLISECONDS.name();
/**
* Writer configuration properties.
*/
public static final String WRITER_PREFIX = "writer";
public static final String WRITER_DESTINATION_TYPE_KEY = WRITER_PREFIX + ".destination.type";
public static final String WRITER_OUTPUT_FORMAT_KEY = WRITER_PREFIX + ".output.format";
public static final String WRITER_FILE_SYSTEM_URI = WRITER_PREFIX + ".fs.uri";
public static final String WRITER_STAGING_DIR = WRITER_PREFIX + ".staging.dir";
public static final String WRITER_STAGING_TABLE = WRITER_PREFIX + ".staging.table";
public static final String WRITER_TRUNCATE_STAGING_TABLE = WRITER_PREFIX + ".truncate.staging.table";
public static final String WRITER_OUTPUT_DIR = WRITER_PREFIX + ".output.dir";
public static final String WRITER_BUILDER_CLASS = WRITER_PREFIX + ".builder.class";
public static final String DEFAULT_WRITER_BUILDER_CLASS = "gobblin.writer.AvroDataWriterBuilder";
public static final String WRITER_FILE_NAME = WRITER_PREFIX + ".file.name";
public static final String WRITER_FILE_PATH = WRITER_PREFIX + ".file.path";
public static final String WRITER_FILE_PATH_TYPE = WRITER_PREFIX + ".file.path.type";
public static final String WRITER_FILE_OWNER = WRITER_PREFIX + ".file.owner";
public static final String WRITER_FILE_GROUP = WRITER_PREFIX + ".file.group";
public static final String WRITER_FILE_REPLICATION_FACTOR = WRITER_PREFIX + ".file.replication.factor";
public static final String WRITER_FILE_BLOCK_SIZE = WRITER_PREFIX + ".file.block.size";
public static final String WRITER_FILE_PERMISSIONS = WRITER_PREFIX + ".file.permissions";
public static final String WRITER_DIR_PERMISSIONS = WRITER_PREFIX + ".dir.permissions";
public static final String WRITER_BUFFER_SIZE = WRITER_PREFIX + ".buffer.size";
public static final String WRITER_PRESERVE_FILE_NAME = WRITER_PREFIX + ".preserve.file.name";
public static final String WRITER_DEFLATE_LEVEL = WRITER_PREFIX + ".deflate.level";
public static final String WRITER_CODEC_TYPE = WRITER_PREFIX + ".codec.type";
public static final String WRITER_EAGER_INITIALIZATION_KEY = WRITER_PREFIX + ".eager.initialization";
public static final String WRITER_PARTITIONER_CLASS = WRITER_PREFIX + ".partitioner.class";
public static final boolean DEFAULT_WRITER_EAGER_INITIALIZATION = false;
public static final String WRITER_GROUP_NAME = WRITER_PREFIX + ".group.name";
public static final String DEFAULT_WRITER_FILE_BASE_NAME = "part";
public static final int DEFAULT_DEFLATE_LEVEL = 9;
public static final int DEFAULT_BUFFER_SIZE = 4096;
public static final String DEFAULT_WRITER_FILE_PATH_TYPE = "default";
public static final String SIMPLE_WRITER_DELIMITER = "simple.writer.delimiter";
public static final String SIMPLE_WRITER_PREPEND_SIZE = "simple.writer.prepend.size";
// Internal use only - used to send metadata to publisher
public static final String WRITER_METADATA_KEY = WRITER_PREFIX + "._internal.metadata";
public static final String WRITER_PARTITION_PATH_KEY = WRITER_PREFIX + "._internal.partition.path";
/**
* Writer configuration properties used internally.
*/
public static final String WRITER_FINAL_OUTPUT_FILE_PATHS = WRITER_PREFIX + ".final.output.file.paths";
public static final String WRITER_RECORDS_WRITTEN = WRITER_PREFIX + ".records.written";
public static final String WRITER_BYTES_WRITTEN = WRITER_PREFIX + ".bytes.written";
public static final String WRITER_EARLIEST_TIMESTAMP = WRITER_PREFIX + ".earliest.timestamp";
public static final String WRITER_AVERAGE_TIMESTAMP = WRITER_PREFIX + ".average.timestamp";
/**
* Configuration properties used by the quality checker.
*/
public static final String QUALITY_CHECKER_PREFIX = "qualitychecker";
public static final String TASK_LEVEL_POLICY_LIST = QUALITY_CHECKER_PREFIX + ".task.policies";
public static final String TASK_LEVEL_POLICY_LIST_TYPE = QUALITY_CHECKER_PREFIX + ".task.policy.types";
public static final String ROW_LEVEL_POLICY_LIST = QUALITY_CHECKER_PREFIX + ".row.policies";
public static final String ROW_LEVEL_POLICY_LIST_TYPE = QUALITY_CHECKER_PREFIX + ".row.policy.types";
public static final String ROW_LEVEL_ERR_FILE = QUALITY_CHECKER_PREFIX + ".row.err.file";
public static final String QUALITY_CHECKER_TIMEZONE = QUALITY_CHECKER_PREFIX + ".timezone";
public static final String DEFAULT_QUALITY_CHECKER_TIMEZONE = PST_TIMEZONE_NAME;
public static final String CLEAN_ERR_DIR = QUALITY_CHECKER_PREFIX + ".clean.err.dir";
public static final boolean DEFAULT_CLEAN_ERR_DIR = false;
/**
* Configuration properties used by the row count policies.
*/
public static final String EXTRACTOR_ROWS_EXTRACTED = QUALITY_CHECKER_PREFIX + ".rows.extracted";
public static final String EXTRACTOR_ROWS_EXPECTED = QUALITY_CHECKER_PREFIX + ".rows.expected";
public static final String WRITER_ROWS_WRITTEN = QUALITY_CHECKER_PREFIX + ".rows.written";
public static final String ROW_COUNT_RANGE = QUALITY_CHECKER_PREFIX + ".row.count.range";
/**
* Configuration properties for the task status.
*/
public static final String TASK_STATUS_REPORT_INTERVAL_IN_MS_KEY = "task.status.reportintervalinms";
public static final long DEFAULT_TASK_STATUS_REPORT_INTERVAL_IN_MS = 30000;
/**
* Configuration properties for the data publisher.
*/
public static final String DATA_PUBLISHER_PREFIX = "data.publisher";
/**
* Metadata configuration
*
* PUBLISH_WRITER_METADATA_KEY: Whether or not to publish writer-generated metadata
* PUBLISH_WRITER_METADATA_MERGER_NAME_KEY: Class to use to merge writer-generated metadata.
*/
public static final String DATA_PUBLISH_WRITER_METADATA_KEY = DATA_PUBLISHER_PREFIX + ".metadata.publish.writer";
public static final String DATA_PUBLISH_WRITER_METADATA_MERGER_NAME_KEY = DATA_PUBLISHER_PREFIX + ".metadata.publish.writer.merger.class";
/**
* Metadata configuration properties used internally
*/
public static final String DATA_PUBLISH_WRITER_METADATA_MERGER_NAME_DEFAULT = "gobblin.metadata.types.GlobalMetadataJsonMerger";
public static final String DATA_PUBLISHER_METADATA_OUTPUT_DIR = DATA_PUBLISHER_PREFIX + ".metadata.output.dir";
//Metadata String in the configuration file
public static final String DATA_PUBLISHER_METADATA_STR = DATA_PUBLISHER_PREFIX + ".metadata.string";
public static final String DATA_PUBLISHER_METADATA_OUTPUT_FILE = DATA_PUBLISHER_PREFIX + ".metadata.output_file";
/**
* @deprecated Use {@link #TASK_DATA_PUBLISHER_TYPE} and {@link #JOB_DATA_PUBLISHER_TYPE}.
*/
@Deprecated
public static final String DATA_PUBLISHER_TYPE = DATA_PUBLISHER_PREFIX + ".type";
public static final String JOB_DATA_PUBLISHER_TYPE = DATA_PUBLISHER_PREFIX + ".job.type";
public static final String TASK_DATA_PUBLISHER_TYPE = DATA_PUBLISHER_PREFIX + ".task.type";
public static final String DEFAULT_DATA_PUBLISHER_TYPE = "gobblin.publisher.BaseDataPublisher";
public static final String DATA_PUBLISHER_FILE_SYSTEM_URI = DATA_PUBLISHER_PREFIX + ".fs.uri";
public static final String DATA_PUBLISHER_FINAL_DIR = DATA_PUBLISHER_PREFIX + ".final.dir";
public static final String DATA_PUBLISHER_APPEND_EXTRACT_TO_FINAL_DIR = DATA_PUBLISHER_PREFIX + ".appendExtractToFinalDir";
public static final boolean DEFAULT_DATA_PUBLISHER_APPEND_EXTRACT_TO_FINAL_DIR = true;
public static final String DATA_PUBLISHER_REPLACE_FINAL_DIR = DATA_PUBLISHER_PREFIX + ".replace.final.dir";
public static final String DATA_PUBLISHER_FINAL_NAME = DATA_PUBLISHER_PREFIX + ".final.name";
public static final String DATA_PUBLISHER_OVERWRITE_ENABLED = DATA_PUBLISHER_PREFIX + ".overwrite.enabled";
// This property is used to specify the owner group of the data publisher final output directory
public static final String DATA_PUBLISHER_FINAL_DIR_GROUP = DATA_PUBLISHER_PREFIX + ".final.dir.group";
public static final String DATA_PUBLISHER_PERMISSIONS = DATA_PUBLISHER_PREFIX + ".permissions";
public static final String PUBLISH_DATA_AT_JOB_LEVEL = "publish.data.at.job.level";
public static final boolean DEFAULT_PUBLISH_DATA_AT_JOB_LEVEL = true;
public static final String PUBLISHER_DIRS = DATA_PUBLISHER_PREFIX + ".output.dirs";
public static final String DATA_PUBLISHER_CAN_BE_SKIPPED = DATA_PUBLISHER_PREFIX + ".canBeSkipped";
public static final boolean DEFAULT_DATA_PUBLISHER_CAN_BE_SKIPPED = false;
/**
* Configuration properties used by the extractor.
*/
public static final String SOURCE_ENTITY = "source.entity";
// Comma-separated source entity names
public static final String SOURCE_ENTITIES = "source.entities";
public static final String SOURCE_TIMEZONE = "source.timezone";
public static final String SOURCE_SCHEMA = "source.schema";
public static final String SOURCE_MAX_NUMBER_OF_PARTITIONS = "source.max.number.of.partitions";
public static final String SOURCE_SKIP_FIRST_RECORD = "source.skip.first.record";
public static final String SOURCE_COLUMN_NAME_CASE = "source.column.name.case";
/**
* Configuration properties used by the QueryBasedExtractor.
*/
public static final String SOURCE_QUERYBASED_WATERMARK_TYPE = "source.querybased.watermark.type";
public static final String SOURCE_QUERYBASED_HOUR_COLUMN = "source.querybased.hour.column";
public static final String SOURCE_QUERYBASED_SKIP_HIGH_WATERMARK_CALC = "source.querybased.skip.high.watermark.calc";
public static final String SOURCE_QUERYBASED_QUERY = "source.querybased.query";
public static final String SOURCE_QUERYBASED_EXCLUDED_COLUMNS = "source.querybased.excluded.columns";
public static final String SOURCE_QUERYBASED_IS_HOURLY_EXTRACT = "source.querybased.hourly.extract";
public static final String SOURCE_QUERYBASED_EXTRACT_TYPE = "source.querybased.extract.type";
public static final String SOURCE_QUERYBASED_PARTITION_INTERVAL = "source.querybased.partition.interval";
public static final String SOURCE_QUERYBASED_START_VALUE = "source.querybased.start.value";
public static final String SOURCE_QUERYBASED_END_VALUE = "source.querybased.end.value";
public static final String SOURCE_QUERYBASED_APPEND_MAX_WATERMARK_LIMIT =
"source.querybased.append.max.watermark.limit";
public static final String SOURCE_QUERYBASED_IS_WATERMARK_OVERRIDE = "source.querybased.is.watermark.override";
public static final String SOURCE_QUERYBASED_LOW_WATERMARK_BACKUP_SECS =
"source.querybased.low.watermark.backup.secs";
public static final String SOURCE_QUERYBASED_SCHEMA = "source.querybased.schema";
public static final String SOURCE_QUERYBASED_FETCH_SIZE = "source.querybased.fetch.size";
public static final String SOURCE_QUERYBASED_IS_SPECIFIC_API_ACTIVE = "source.querybased.is.specific.api.active";
public static final String SOURCE_QUERYBASED_SKIP_COUNT_CALC = "source.querybased.skip.count.calc";
public static final String SOURCE_QUERYBASED_IS_METADATA_COLUMN_CHECK_ENABLED =
"source.querybased.is.metadata.column.check.enabled";
public static final String SOURCE_QUERYBASED_IS_COMPRESSION_ENABLED = "source.querybased.is.compression.enabled";
public static final String SOURCE_QUERYBASED_JDBC_RESULTSET_FETCH_SIZE =
"source.querybased.jdbc.resultset.fetch.size";
public static final String SOURCE_QUERYBASED_ALLOW_REMOVE_UPPER_BOUNDS = "source.querybased.allowRemoveUpperBounds";
/**
* Configuration properties used by the FileBasedExtractor
*/
public static final String SOURCE_FILEBASED_DATA_DIRECTORY = "source.filebased.data.directory";
public static final String SOURCE_FILEBASED_FILES_TO_PULL = "source.filebased.files.to.pull";
public static final String SOURCE_FILEBASED_FS_SNAPSHOT = "source.filebased.fs.snapshot";
public static final String SOURCE_FILEBASED_FS_URI = "source.filebased.fs.uri";
public static final String SOURCE_FILEBASED_PRESERVE_FILE_NAME = "source.filebased.preserve.file.name";
public static final String SOURCE_FILEBASED_OPTIONAL_DOWNLOADER_CLASS = "source.filebased.downloader.class";
public static final String SOURCE_FILEBASED_ENCRYPTED_CONFIG_PATH = "source.filebased.encrypted";
public static final String SOURCE_FILEBASED_FS_PRIOR_SNAPSHOT_REQUIRED = "source.filebased.fs.prior.snapshot.required";
public static final boolean DEFAULT_SOURCE_FILEBASED_FS_PRIOR_SNAPSHOT_REQUIRED = false;
/**
* Configuration properties used internally by the KafkaSource.
*/
public static final String OFFSET_TOO_EARLY_COUNT = "offset.too.early.count";
public static final String OFFSET_TOO_LATE_COUNT = "offset.too.late.count";
public static final String FAIL_TO_GET_OFFSET_COUNT = "fail.to.get.offset.count";
/**
* Configuration properties used internally by the KafkaExtractor.
*/
public static final String ERROR_PARTITION_COUNT = "error.partition.count";
public static final String ERROR_MESSAGE_UNDECODABLE_COUNT = "error.message.undecodable.count";
/**
* Configuration properties for source connection.
*/
public static final String SOURCE_CONN_PREFIX = "source.conn.";
public static final String SOURCE_CONN_USE_AUTHENTICATION = SOURCE_CONN_PREFIX + "use.authentication";
public static final String SOURCE_CONN_PRIVATE_KEY = SOURCE_CONN_PREFIX + "private.key";
public static final String SOURCE_CONN_KNOWN_HOSTS = SOURCE_CONN_PREFIX + "known.hosts";
public static final String SOURCE_CONN_CLIENT_SECRET = SOURCE_CONN_PREFIX + "client.secret";
public static final String SOURCE_CONN_CLIENT_ID = SOURCE_CONN_PREFIX + "client.id";
public static final String SOURCE_CONN_DOMAIN = SOURCE_CONN_PREFIX + "domain";
public static final String SOURCE_CONN_USERNAME = SOURCE_CONN_PREFIX + "username";
public static final String SOURCE_CONN_PASSWORD = SOURCE_CONN_PREFIX + "password";
public static final String SOURCE_CONN_SECURITY_TOKEN = SOURCE_CONN_PREFIX + "security.token";
public static final String SOURCE_CONN_HOST_NAME = SOURCE_CONN_PREFIX + "host";
public static final String SOURCE_CONN_VERSION = SOURCE_CONN_PREFIX + "version";
public static final String SOURCE_CONN_TIMEOUT = SOURCE_CONN_PREFIX + "timeout";
public static final String SOURCE_CONN_REST_URL = SOURCE_CONN_PREFIX + "rest.url";
public static final String SOURCE_CONN_USE_PROXY_URL = SOURCE_CONN_PREFIX + "use.proxy.url";
public static final String SOURCE_CONN_USE_PROXY_PORT = SOURCE_CONN_PREFIX + "use.proxy.port";
public static final String SOURCE_CONN_DRIVER = SOURCE_CONN_PREFIX + "driver";
public static final String SOURCE_CONN_PORT = SOURCE_CONN_PREFIX + "port";
public static final int SOURCE_CONN_DEFAULT_PORT = 22;
public static final String SOURCE_CONN_SID = SOURCE_CONN_PREFIX + "sid";
public static final String SOURCE_CONN_REFRESH_TOKEN = SOURCE_CONN_PREFIX + "refresh.token";
/**
* Source default configurations.
*/
public static final long DEFAULT_WATERMARK_VALUE = -1;
public static final int DEFAULT_MAX_NUMBER_OF_PARTITIONS = 20;
public static final int DEFAULT_SOURCE_FETCH_SIZE = 1000;
public static final String DEFAULT_WATERMARK_TYPE = "timestamp";
public static final String DEFAULT_LOW_WATERMARK_BACKUP_SECONDS = "1000";
public static final int DEFAULT_CONN_TIMEOUT = 500000;
public static final String ESCAPE_CHARS_IN_COLUMN_NAME = "$,&";
public static final String ESCAPE_CHARS_IN_TABLE_NAME = "$,&";
public static final String DEFAULT_SOURCE_QUERYBASED_WATERMARK_PREDICATE_SYMBOL = "'$WATERMARK'";
public static final String DEFAULT_SOURCE_QUERYBASED_IS_METADATA_COLUMN_CHECK_ENABLED = "true";
public static final String DEFAULT_COLUMN_NAME_CASE = "NOCHANGE";
public static final int DEFAULT_SOURCE_QUERYBASED_JDBC_RESULTSET_FETCH_SIZE = 1000;
public static final String FILEBASED_REPORT_STATUS_ON_COUNT = "filebased.report.status.on.count";
public static final int DEFAULT_FILEBASED_REPORT_STATUS_ON_COUNT = 10000;
public static final String DEFAULT_SOURCE_TIMEZONE = PST_TIMEZONE_NAME;
/**
* Configuration properties used by the Hadoop MR job launcher.
*/
public static final String MR_JOB_ROOT_DIR_KEY = "mr.job.root.dir";
/** Specifies a static location in HDFS to upload jars to. Useful for sharing jars across different Gobblin runs.*/
public static final String MR_JARS_DIR = "mr.jars.dir";
public static final String MR_JOB_MAX_MAPPERS_KEY = "mr.job.max.mappers";
public static final String MR_REPORT_METRICS_AS_COUNTERS_KEY = "mr.report.metrics.as.counters";
public static final boolean DEFAULT_MR_REPORT_METRICS_AS_COUNTERS = false;
public static final int DEFAULT_MR_JOB_MAX_MAPPERS = 100;
public static final String DEFAULT_ENABLE_MR_SPECULATIVE_EXECUTION = "false";
/**
* Configuration properties used by the distributed job launcher.
*/
public static final String TASK_STATE_COLLECTOR_INTERVAL_SECONDS = "task.state.collector.interval.secs";
public static final int DEFAULT_TASK_STATE_COLLECTOR_INTERVAL_SECONDS = 60;
/**
* Configuration properties for email settings.
*/
public static final String ALERT_EMAIL_ENABLED_KEY = "email.alert.enabled";
public static final String NOTIFICATION_EMAIL_ENABLED_KEY = "email.notification.enabled";
public static final String EMAIL_HOST_KEY = "email.host";
public static final String DEFAULT_EMAIL_HOST = "localhost";
public static final String EMAIL_SMTP_PORT_KEY = "email.smtp.port";
public static final String EMAIL_USER_KEY = "email.user";
public static final String EMAIL_PASSWORD_KEY = "email.password";
public static final String EMAIL_FROM_KEY = "email.from";
public static final String EMAIL_TOS_KEY = "email.tos";
/**
* Common metrics configuration properties.
*/
public static final String METRICS_CONFIGURATIONS_PREFIX = "metrics.";
public static final String METRICS_ENABLED_KEY = METRICS_CONFIGURATIONS_PREFIX + "enabled";
public static final String DEFAULT_METRICS_ENABLED = Boolean.toString(true);
public static final String METRICS_REPORT_INTERVAL_KEY = METRICS_CONFIGURATIONS_PREFIX + "report.interval";
public static final String DEFAULT_METRICS_REPORT_INTERVAL = Long.toString(TimeUnit.SECONDS.toMillis(30));
public static final String METRIC_CONTEXT_NAME_KEY = "metrics.context.name";
// File-based reporting
public static final String METRICS_REPORTING_FILE_ENABLED_KEY =
METRICS_CONFIGURATIONS_PREFIX + "reporting.file.enabled";
public static final String DEFAULT_METRICS_REPORTING_FILE_ENABLED = Boolean.toString(false);
public static final String METRICS_LOG_DIR_KEY = METRICS_CONFIGURATIONS_PREFIX + "log.dir";
public static final String METRICS_FILE_SUFFIX = METRICS_CONFIGURATIONS_PREFIX + "reporting.file.suffix";
public static final String DEFAULT_METRICS_FILE_SUFFIX = "";
// JMX-based reporting
public static final String METRICS_REPORTING_JMX_ENABLED_KEY =
METRICS_CONFIGURATIONS_PREFIX + "reporting.jmx.enabled";
public static final String DEFAULT_METRICS_REPORTING_JMX_ENABLED = Boolean.toString(false);
// Kafka-based reporting
public static final String METRICS_REPORTING_KAFKA_ENABLED_KEY =
METRICS_CONFIGURATIONS_PREFIX + "reporting.kafka.enabled";
public static final String DEFAULT_METRICS_REPORTING_KAFKA_ENABLED = Boolean.toString(false);
public static final String DEFAULT_METRICS_REPORTING_KAFKA_REPORTER_CLASS = "gobblin.metrics.kafka.KafkaReporterFactory";
public static final String METRICS_REPORTING_KAFKA_FORMAT = METRICS_CONFIGURATIONS_PREFIX + "reporting.kafka.format";
public static final String DEFAULT_METRICS_REPORTING_KAFKA_FORMAT = "json";
public static final String METRICS_REPORTING_KAFKA_USE_SCHEMA_REGISTRY =
METRICS_CONFIGURATIONS_PREFIX + "reporting.kafka.avro.use.schema.registry";
public static final String DEFAULT_METRICS_REPORTING_KAFKA_USE_SCHEMA_REGISTRY = Boolean.toString(false);
public static final String METRICS_KAFKA_BROKERS = METRICS_CONFIGURATIONS_PREFIX + "reporting.kafka.brokers";
// Topic used for both event and metric reporting.
// Can be overriden by METRICS_KAFKA_TOPIC_METRICS and METRICS_KAFKA_TOPIC_EVENTS.
public static final String METRICS_KAFKA_TOPIC = METRICS_CONFIGURATIONS_PREFIX + "reporting.kafka.topic";
// Topic used only for metric reporting.
public static final String METRICS_KAFKA_TOPIC_METRICS =
METRICS_CONFIGURATIONS_PREFIX + "reporting.kafka.topic.metrics";
// Topic used only for event reporting.
public static final String METRICS_KAFKA_TOPIC_EVENTS =
METRICS_CONFIGURATIONS_PREFIX + "reporting.kafka.topic.events";
//Graphite-based reporting
public static final String METRICS_REPORTING_GRAPHITE_METRICS_ENABLED_KEY =
METRICS_CONFIGURATIONS_PREFIX + "reporting.graphite.metrics.enabled";
public static final String DEFAULT_METRICS_REPORTING_GRAPHITE_METRICS_ENABLED = Boolean.toString(false);
public static final String METRICS_REPORTING_GRAPHITE_EVENTS_ENABLED_KEY =
METRICS_CONFIGURATIONS_PREFIX + "reporting.graphite.events.enabled";
public static final String DEFAULT_METRICS_REPORTING_GRAPHITE_EVENTS_ENABLED = Boolean.toString(false);
public static final String METRICS_REPORTING_GRAPHITE_HOSTNAME =
METRICS_CONFIGURATIONS_PREFIX + "reporting.graphite.hostname";
public static final String METRICS_REPORTING_GRAPHITE_PORT =
METRICS_CONFIGURATIONS_PREFIX + "reporting.graphite.port";
public static final String DEFAULT_METRICS_REPORTING_GRAPHITE_PORT = "2003";
public static final String METRICS_REPORTING_GRAPHITE_EVENTS_PORT =
METRICS_CONFIGURATIONS_PREFIX + "reporting.graphite.events.port";
public static final String METRICS_REPORTING_GRAPHITE_EVENTS_VALUE_AS_KEY =
METRICS_CONFIGURATIONS_PREFIX + "reporting.graphite.events.value.as.key";
public static final String DEFAULT_METRICS_REPORTING_GRAPHITE_EVENTS_VALUE_AS_KEY = Boolean.toString(false);
public static final String METRICS_REPORTING_GRAPHITE_SENDING_TYPE =
METRICS_CONFIGURATIONS_PREFIX + "reporting.graphite.sending.type";
public static final String DEFAULT_METRICS_REPORTING_GRAPHITE_SENDING_TYPE = "TCP";
//InfluxDB-based reporting
public static final String METRICS_REPORTING_INFLUXDB_METRICS_ENABLED_KEY =
METRICS_CONFIGURATIONS_PREFIX + "reporting.influxdb.metrics.enabled";
public static final String DEFAULT_METRICS_REPORTING_INFLUXDB_METRICS_ENABLED = Boolean.toString(false);
public static final String METRICS_REPORTING_INFLUXDB_EVENTS_ENABLED_KEY =
METRICS_CONFIGURATIONS_PREFIX + "reporting.influxdb.events.enabled";
public static final String DEFAULT_METRICS_REPORTING_INFLUXDB_EVENTS_ENABLED = Boolean.toString(false);
public static final String METRICS_REPORTING_INFLUXDB_URL =
METRICS_CONFIGURATIONS_PREFIX + "reporting.influxdb.url";
public static final String METRICS_REPORTING_INFLUXDB_DATABASE =
METRICS_CONFIGURATIONS_PREFIX + "reporting.influxdb.database";
public static final String METRICS_REPORTING_INFLUXDB_EVENTS_DATABASE =
METRICS_CONFIGURATIONS_PREFIX + "reporting.influxdb.events.database";
public static final String METRICS_REPORTING_INFLUXDB_USER =
METRICS_CONFIGURATIONS_PREFIX + "reporting.influxdb.user";
public static final String METRICS_REPORTING_INFLUXDB_PASSWORD =
METRICS_CONFIGURATIONS_PREFIX + "reporting.influxdb.password";
public static final String METRICS_REPORTING_INFLUXDB_SENDING_TYPE =
METRICS_CONFIGURATIONS_PREFIX + "reporting.influxdb.sending.type";
public static final String DEFAULT_METRICS_REPORTING_INFLUXDB_SENDING_TYPE = "TCP";
//Custom-reporting
public static final String METRICS_CUSTOM_BUILDERS = METRICS_CONFIGURATIONS_PREFIX + "reporting.custom.builders";
/**
* Rest server configuration properties.
*/
public static final String REST_SERVER_HOST_KEY = "rest.server.host";
public static final String DEFAULT_REST_SERVER_HOST = "localhost";
public static final String REST_SERVER_PORT_KEY = "rest.server.port";
public static final String DEFAULT_REST_SERVER_PORT = "8080";
public static final String REST_SERVER_ADVERTISED_URI_KEY = "rest.server.advertised.uri";
/**
* Admin server configuration properties.
*/
public static final String ADMIN_SERVER_ENABLED_KEY = "admin.server.enabled";
public static final String ADMIN_SERVER_HOST_KEY = "admin.server.host";
public static final String DEFAULT_ADMIN_SERVER_HOST = "localhost";
public static final String ADMIN_SERVER_PORT_KEY = "admin.server.port";
public static final String DEFAULT_ADMIN_SERVER_PORT = "8000";
/**
* Kafka job configurations.
*/
public static final String KAFKA_BROKERS = "kafka.brokers";
public static final String KAFKA_SOURCE_WORK_UNITS_CREATION_THREADS = "kafka.source.work.units.creation.threads";
public static final int KAFKA_SOURCE_WORK_UNITS_CREATION_DEFAULT_THREAD_COUNT = 30;
/**
* Job execution info server and history store configuration properties.
*/
// If job execution info server is enabled
public static final String JOB_EXECINFO_SERVER_ENABLED_KEY = "job.execinfo.server.enabled";
public static final String JOB_HISTORY_STORE_ENABLED_KEY = "job.history.store.enabled";
public static final String JOB_HISTORY_STORE_URL_KEY = "job.history.store.url";
public static final String JOB_HISTORY_STORE_JDBC_DRIVER_KEY = "job.history.store.jdbc.driver";
public static final String DEFAULT_JOB_HISTORY_STORE_JDBC_DRIVER = "com.mysql.jdbc.Driver";
public static final String JOB_HISTORY_STORE_USER_KEY = "job.history.store.user";
public static final String DEFAULT_JOB_HISTORY_STORE_USER = "gobblin";
public static final String JOB_HISTORY_STORE_PASSWORD_KEY = "job.history.store.password";
public static final String DEFAULT_JOB_HISTORY_STORE_PASSWORD = "gobblin";
/**
* Password encryption and decryption properties.
*/
public static final String ENCRYPT_KEY_FS_URI = "encrypt.key.fs.uri";
public static final String ENCRYPT_KEY_LOC = "encrypt.key.loc";
public static final String ENCRYPT_USE_STRONG_ENCRYPTOR = "encrypt.use.strong.encryptor";
public static final boolean DEFAULT_ENCRYPT_USE_STRONG_ENCRYPTOR = false;
/**
* Proxy Filesystem operation properties.
*/
public static final String SHOULD_FS_PROXY_AS_USER = "should.fs.proxy.as.user";
public static final boolean DEFAULT_SHOULD_FS_PROXY_AS_USER = false;
public static final String FS_PROXY_AS_USER_NAME = "fs.proxy.as.user.name";
public static final String FS_PROXY_AS_USER_TOKEN_FILE = "fs.proxy.as.user.token.file";
public static final String SUPER_USER_NAME_TO_PROXY_AS_OTHERS = "super.user.name.to.proxy.as.others";
public static final String SUPER_USER_KEY_TAB_LOCATION = "super.user.key.tab.location";
public static final String TOKEN_AUTH = "TOKEN";
public static final String KERBEROS_AUTH = "KERBEROS";
public static final String FS_PROXY_AUTH_METHOD = "fs.proxy.auth.method";
public static final String DEFAULT_FS_PROXY_AUTH_METHOD = TOKEN_AUTH;
public static final String KERBEROS_REALM = "kerberos.realm";
/**
* Azkaban properties.
*/
public static final String AZKABAN_EXECUTION_TIME_RANGE = "azkaban.execution.time.range";
public static final String AZKABAN_EXECUTION_DAYS_LIST = "azkaban.execution.days.list";
/**
* Hive registration properties
*/
public static final String HIVE_REGISTRATION_POLICY = "hive.registration.policy";
/**
* Config store properties
*/
public static final String CONFIG_MANAGEMENT_STORE_URI = "gobblin.config.management.store.uri";
/**
* Other configuration properties.
*/
public static final String GOBBLIN_RUNTIME_DELIVERY_SEMANTICS = "gobblin.runtime.delivery.semantics";
public static final Charset DEFAULT_CHARSET_ENCODING = Charsets.UTF_8;
public static final String TEST_HARNESS_LAUNCHER_IMPL = "gobblin.testharness.launcher.impl";
public static final int PERMISSION_PARSING_RADIX = 8;
/**
* Configuration properties related to Flows
*/
public static final String FLOW_RUN_IMMEDIATELY = "flow.runImmediately";
/***
* Configuration properties related to Spec Store
*/
public static final String SPECSTORE_FS_DIR_KEY = "specStore.fs.dir";
/***
* Configuration properties related to TopologySpec Store
*/
public static final String TOPOLOGYSPEC_STORE_CLASS_KEY = "topologySpec.store.class";
public static final String TOPOLOGYSPEC_STORE_DIR_KEY = "topologySpec.store.dir";
/***
* Configuration properties related to FlowSpec Store
*/
public static final String FLOWSPEC_STORE_CLASS_KEY = "flowSpec.store.class";
public static final String FLOWSPEC_STORE_DIR_KEY = "flowSpec.store.dir";
/***
* Configuration properties related to Spec Executor Instance
*/
public static final String SPECEXECUTOR_INSTANCE_URI_KEY = "specExecInstance.uri";
public static final String SPECEXECUTOR_INSTANCE_CAPABILITIES_KEY = "specExecInstance.capabilities";
/***
* Configuration properties related to Compaction Suite
*/
public static final String COMPACTION_SUITE_FACTORY = "compaction.suite.factory";
public static final String DEFAULT_COMPACTION_SUITE_FACTORY = "CompactionAvroSuiteFactory";
}