The structure of this mapping definition follows the structure of the document data. This object represents the document root. Its properties are modeled in the fields property of this object. You only need to model properties of the document that you want to map.
You can define multiple mapping to map different types of documents (different tables or collections). Each of these objects must be stored in a single .json file and get uploaded to an directory in BucketFS.
Reference to the EDML schema. Setting this is required so that IDEs can assist you while writing your definition.
The identifier of the document collection.
The name of the resulting table in Exasol.
Using this property you can provide documentation.
Defines the mapping for the document's properties. Typically you want to define fields here to define mappings for this document's properties. But you can also use toJsonMapping mapping here. In that case the whole document is mapped to a JSON string.
This definition defines the expected nested properties of the current property. For each of the nested properties you can again define a mapping. You only need to define the properties you want to map.
Properties:
PROPERTY_NAME: mappingDefinition
It must be specified a least one column.
Each additional property must conform to the following schema
Type: objectA mapping definition can either:
- map the property to a column or table
- model nested properties of the current property (using fields)
Maps the selected document property to an Exasol VARCHAR, column.
Value must be greater or equal to 1 and lesser or equal to 2000000
Behaviour to apply in case a value exceeds the size of the VARCHAR column.
- TRUNCATE: truncate the string
- NULL: use null instead
- ABORT: abort whole query
Name of the Exasol column.
Default: name of the document property
Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.
If this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.
Setting this property marks a column as key.
Key columns are used as foreign keys from ToTableMappings for nested lists.
A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.
Maps the selected document property and all its descendants to a JSON string. You can alos use this mapping directly for a whole document.
No Additional PropertiesBehaviour to apply in case a value exceeds the size of the Exasol column.
- NULL: use NULL instead
- ABORT: abort whole query
Name of the Exasol column.
Default: name of the document property
Same definition as destinationNameIf this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.
Setting this property marks a column as key.
Key columns are used as foreign keys from ToTableMappings for nested lists.
A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.
Maps the selected document property to an Exasol DECIMAL column.
Precision of the Exasol DECIMAL type. See https://docs.exasol.com/sqlreferences/datatypes/datatypedetails.htm
default = 18
Scale of the Exasol DECIMAL type. See https://docs.exasol.com/sqlreferences/datatypes/datatypedetails.htm
default = 0
Behaviour to apply in case a value exceeds the size of the DECIMAL column.
- NULL: use NULL instead
- ABORT: abort whole query
Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.
Name of the Exasol column.
Default: name of the document property
Same definition as destinationNameIf this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.
Setting this property marks a column as key.
Key columns are used as foreign keys from ToTableMappings for nested lists.
A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.
Maps the selected document property to an Exasol DOUBLE PRECISION column.
Behaviour to apply in case a value exceeds the size of the DOUBLE PRECISION column.
- NULL: use NULL instead
- ABORT: abort whole query
Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.
Name of the Exasol column.
Default: name of the document property
Same definition as destinationNameIf this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.
Setting this property marks a column as key.
Key columns are used as foreign keys from ToTableMappings for nested lists.
A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.
Maps the selected document property to an Exasol BOOL column.
Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.
Name of the Exasol column.
Default: name of the document property
Same definition as destinationNameIf this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.
Setting this property marks a column as key.
Key columns are used as foreign keys from ToTableMappings for nested lists.
A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.
Maps the selected document property to an Exasol DATE column.
Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.
Name of the Exasol column.
Default: name of the document property
Same definition as destinationNameIf this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.
Setting this property marks a column as key.
Key columns are used as foreign keys from ToTableMappings for nested lists.
A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.
Maps the selected document property to an Exasol TIMESTAMP or TIMESTAMP WITH LOCAL TIMEZONE column.
Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.
If set to true the adapter will use a TIMESTAMP WITH LOCAL TIMEZONE Exasol column instead of a TIMEZONE column.
Name of the Exasol column.
Default: name of the document property
Same definition as destinationNameIf this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.
Setting this property marks a column as key.
Key columns are used as foreign keys from ToTableMappings for nested lists.
A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.
This mapping is used for normalizing documents to table structures. It creates a new table in the resulting virtual schema named: <NAMEOFPARENT><GIVENNAME>.
You can define the columns of this table using the mapping property. If the parent table defines a key using one or more toVarcharMappings for a key or secondary index in the document database, this will be used as foreign key.
Defines the mapping for the columns of the new table. If the document list contains non-objects (like strings) here, you can directly use toVarcharMapping here. Otherwise, if the list contains objects, you can define mappings for the nested properties using fields.
If set to true, this adapter adds the source reference as a column named SOURCE_REFERENCE to the Exasol table.
This feature is mainly useful if multiple sources are used (not supported by all dialects). In that case you can filter on the source name.