Package com.illumon.iris.importers.util
Class JsonImport.Builder
java.lang.Object
com.illumon.iris.importers.util.ImportBuilder<BUILDER_TYPE,IMPORTER_TYPE>
com.illumon.iris.importers.util.FileImportBuilder<JsonImport.Builder,JsonImport>
com.illumon.iris.importers.util.JsonImport.Builder
- All Implemented Interfaces:
JsonImportBuilder
- Enclosing class:
- JsonImport
public static class JsonImport.Builder extends FileImportBuilder<JsonImport.Builder,JsonImport> implements JsonImportBuilder
The Builder class allows setting properties for a JSON import and provides a
build()
method which returns a JsonImport object that will use the configured properties to import batch data.-
Field Summary
Fields inherited from class com.illumon.iris.importers.util.FileImportBuilder
sourceDirectory, sourceFile, sourceGlob
Fields inherited from class com.illumon.iris.importers.util.ImportBuilder
destinationDirectory, destinationPartitions, namespace, outputMode, partitionColumn, schemaService, sourceName, strict, table
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description JsonImport
build()
Creates a JsonImport object using the properties that have been set in theJsonImport.Builder
.protected JsonImport.Builder
getThis()
Returns this builder.JsonImport.Builder
setColumnNames(String columnNames)
Sets column names.JsonImport.Builder
setColumnNames(List<String> columnNames)
Sets column names.JsonImport.Builder
setConstantColumnValue(String constantColumnValue)
Sets the value to use for source columns with a sourceType of CONSTANT.JsonImport.Builder
setFieldPathSeparator(String fieldPathSeparator)
Sets a String to use as the separator when generating column names from nested JSON data.JsonImport.Builder
setMaxInferItems(long maxInferItems)
Sets a limit of the maximum number of JSON objects to examine when inferring which columns are present in the file.Methods inherited from class com.illumon.iris.importers.util.FileImportBuilder
setSourceDirectory, setSourceDirectory, setSourceFile, setSourceGlob
Methods inherited from class com.illumon.iris.importers.util.ImportBuilder
setDestinationDirectory, setDestinationPartitions, setDestinationPartitions, setOutputMode, setOutputMode, setPartitionColumn, setSchemaService, setSourceName, setStrict
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.illumon.iris.importers.util.JsonImportBuilder
setDestinationDirectory, setDestinationPartitions, setDestinationPartitions, setOutputMode, setOutputMode, setPartitionColumn, setSourceDirectory, setSourceDirectory, setSourceFile, setSourceGlob, setSourceName, setStrict
-
Constructor Details
-
Builder
Creates the JsonImportBuilder object. Normally accessed throughJsonImport.builder(String, String)
.- Parameters:
namespace
- The String name of the namespace into which data will be imported.table
- The String name of the table into which data will be imported.
-
-
Method Details
-
setConstantColumnValue
Sets the value to use for source columns with a sourceType of CONSTANT.- Specified by:
setConstantColumnValue
in interfaceJsonImportBuilder
- Parameters:
constantColumnValue
- String value for the constant column.- Returns:
- this builder.
-
setMaxInferItems
Sets a limit of the maximum number of JSON objects to examine when inferring which columns are present in the file. Inference is necessary because JSON has no internal "schema".- Specified by:
setMaxInferItems
in interfaceJsonImportBuilder
- Parameters:
maxInferItems
- The long value for the limit. Default is no limit.- Returns:
- this builder.
-
setColumnNames
Sets column names.- Specified by:
setColumnNames
in interfaceJsonImportBuilder
- Parameters:
columnNames
- A comma-separated String of column names in order left to right.- Returns:
- this builder.
-
setColumnNames
Sets column names.- Specified by:
setColumnNames
in interfaceJsonImportBuilder
- Parameters:
columnNames
- A List of Strings of column names in order left to right.- Returns:
- this builder.
-
setFieldPathSeparator
Sets a String to use as the separator when generating column names from nested JSON data.- Specified by:
setFieldPathSeparator
in interfaceJsonImportBuilder
- Parameters:
fieldPathSeparator
- A String separator. Default is the underscore character ("_").- Returns:
- this builder.
-
getThis
Description copied from class:ImportBuilder
Returns this builder. Concrete subclasses mus provide "this" so that the setters can chain properly.- Specified by:
getThis
in classImportBuilder<JsonImport.Builder,JsonImport>
- Returns:
- this builder.
-
build
Creates a JsonImport object using the properties that have been set in theJsonImport.Builder
.- Specified by:
build
in interfaceJsonImportBuilder
- Specified by:
build
in classImportBuilder<JsonImport.Builder,JsonImport>
- Returns:
- A
JsonImport
object.
-