Package com.illumon.iris.importers
Class GeneralXmlImporter
java.lang.Object
com.illumon.iris.importers.GeneralImporter<CsvFieldWriter>
com.illumon.iris.importers.GeneralXmlImporter
public class GeneralXmlImporter extends GeneralImporter<CsvFieldWriter>
General XML importer class to handle single-table XML imports
-
Field Summary
Fields inherited from class com.illumon.iris.importers.GeneralImporter
customImportProperties, importTableWriterFactory, intradayPartitionColumn, log, strict
-
Constructor Summary
Constructors Constructor Description GeneralXmlImporter(com.fishlib.io.logger.Logger log, ImportTableWriterFactory importTableWriterFactory, String intradayPartitionColumn, org.jdom2.Element sourceElement, InputStream sourceStream, CsvFieldWriter.Factory factory, char delimiter, boolean strict, String constantColumnValue, String elementType, Map<String,String> importProperties, int startIndex, int startDepth, int maxDepth, boolean useElementValues, boolean useAttributeValues, boolean namedValues)
Constructor used when importing from an InputStream - e.g.GeneralXmlImporter(com.fishlib.io.logger.Logger log, ImportTableWriterFactory importTableWriterFactory, String intradayPartitionColumn, org.jdom2.Element sourceElement, List<File> sourceFiles, CsvFieldWriter.Factory factory, char delimiter, boolean strict, String constantColumnValue, String elementType, int startIndex, int startDepth, int maxDepth, boolean useElementValues, boolean useAttributeValues, boolean namedValues)
Constructor used when importing from a set of files. -
Method Summary
Modifier and Type Method Description long
getLineCount()
void
run()
Iterates the file set, or passes the InputStream directly to importSingleStream to be imported.Methods inherited from class com.illumon.iris.importers.GeneralImporter
getMaxOpenTableWriters, getTableEntry, shouldUseLegacyCsvForImport
-
Constructor Details
-
GeneralXmlImporter
public GeneralXmlImporter(com.fishlib.io.logger.Logger log, ImportTableWriterFactory importTableWriterFactory, String intradayPartitionColumn, org.jdom2.Element sourceElement, List<File> sourceFiles, CsvFieldWriter.Factory factory, char delimiter, boolean strict, String constantColumnValue, String elementType, int startIndex, int startDepth, int maxDepth, boolean useElementValues, boolean useAttributeValues, boolean namedValues) throws IOExceptionConstructor used when importing from a set of files. Writer will be closed automatically when the set has been imported.- Parameters:
log
- Logger created upstreamsourceElement
- XML schema element of the ImportSource block to be usedimportTableWriterFactory
- Provides table writers on demand based on the type of import (single vs multi partition)intradayPartitionColumn
- Column to use for determining the target partition for multi partition imports (generally Date)sourceFiles
- Stream of File objects from which to read CSV datafactory
- CSVFieldWriter factory that will create the field writers (setters) for the table's columnsdelimiter
- Single character to be used as a delimiter - normally this is a commastrict
- Whether to fail if a field fails numeric conversion or a column is missing a setterconstantColumnValue
- A String to materialize as the source column when an ImportColumn is defined with a sourceType of CONSTANT (aka ImporterColumnDefinition$IrisImportConstant). Can be null.elementType
- A string element name to match when finding elements to import from the XMLstartIndex
- Number of elements after the root element to start looking for elements to importstartDepth
- How far under the element obtained from startIndex to start looking for elements to importmaxDepth
- How far to recurse into import elements when searching for values to importuseElementValues
- Whether to use values that are stored as the contents of elementsuseAttributeValues
- Whether to user values that are stored as attributesnamedValues
- True to use values by name, false to use values by position- Throws:
IOException
- If there are problems reading the source file or stream
-
GeneralXmlImporter
public GeneralXmlImporter(com.fishlib.io.logger.Logger log, ImportTableWriterFactory importTableWriterFactory, String intradayPartitionColumn, org.jdom2.Element sourceElement, InputStream sourceStream, CsvFieldWriter.Factory factory, char delimiter, boolean strict, String constantColumnValue, String elementType, Map<String,String> importProperties, int startIndex, int startDepth, int maxDepth, boolean useElementValues, boolean useAttributeValues, boolean namedValues) throws IOExceptionConstructor used when importing from an InputStream - e.g. QuandlImporter.- Parameters:
log
- Logger created upstreamimportTableWriterFactory
- Provides table writers on demand based on the type of import (single vs multi partition)intradayPartitionColumn
- Column to use for determining the target partition for multi partition imports (generally Date)sourceElement
- XML schema element of the ImportSource block to be usedsourceStream
- InputStream from which to read CSV datafactory
- CSVFieldWriter factory that will create the field writers (setters) for the table's columnsdelimiter
- Single character to be used as a delimiter - normally this is a commastrict
- Whether to fail if a field fails numeric conversion or a column is missing a setterconstantColumnValue
- A String to materialize as the source column when an ImportColumn is defined with a sourceType of CONSTANT (aka ImporterColumnDefinition$IrisImportConstant). Can be null.elementType
- A string element name to match when finding elements to import from the XMLimportProperties
- Metadata properties for the importstartIndex
- Number of elements after the root element to start looking for elements to importstartDepth
- How far under the element obtained from startIndex to start looking for elements to importmaxDepth
- How far to recurse into import elements when searching for values to importuseElementValues
- Whether to use values that are stored as the contents of elementsuseAttributeValues
- Whether to user values that are stored as attributesnamedValues
- True to use values by name, false to use values by position- Throws:
IOException
- If there are problems reading the source file or stream
-
-
Method Details
-
getLineCount
public long getLineCount() -
run
public void run()Iterates the file set, or passes the InputStream directly to importSingleStream to be imported.
-