GitHubContribute in GitHub: Edit online

Manta Flow Integration Configuration

It is possible to configure common parts of Manta Flow exports, enabling export customization to fit particular customer/user needs. This section describes the configuration entries used across individual integration exports. Specifics about the configurations for individual integrations are described in the respective sections of the documentation.

The common configurations are placed in the file mantaflow/server/webapps/manta-dataflow-server/WEB-INF/classes/*technology*-config.json. If you want to override a dialect, copy the whole section related to the specific dialect from this file to mantaflow/server/webapps/manta-dataflow-server/WEB-INF/conf/*technology*-config.json and change the evaluators to fit your needs. Open Manta and Alation can be configured this way. See the practical examples at the end of this section for information and ideas on how to customize the exports.

You can override just a specific part of the dialect’s configuration; for example, a single evaluator or any other dialect configuration property. You don’t need to copy the whole dialect section.

For Open Manta, you can configure other export configuration properties besides evaluators. These are listed in the section “Other export configuration properties” below.

Evaluators

There are two main concepts used: Evaluators and Predicates.

It is possible to modify evaluators for each dialect in each export technology.

Evaluators

Evaluators determine whether a node should be exported or not. As IBM Manta Data Lineage and target solution models are usually quite different, the export configuration is fairly complex and there are many evaluators used.

Each evaluator is defined by using vertex predicates, which define if the evaluator is true or false on the given node.

Evaluator

Description

Default value

startNodeEvaluator

Evaluator to determine if the node is a target node of the flow on the column level. For example, in the case of databases, the target node type is typically Column or StructureItem.

False

endNodeEvaluator

Evaluator to determine if the node is a source node of the flow on the column level. For example, in the case of databases, the source node type is typically Column or StructureItem.

False

reportLeafEvaluator (Collibra only)

Evaluator to determine if the node is a leaf of a report. For example, report leaves are nodes of the types Value, Data Point, Tooltip, Label, Data Point, Table Field, and Pivot Table Field.

False

listLocationNodeEvaluator

Evaluator to determine if the node is a leaf of a transformation. Typically, a transformation leaf is a node of the type ColumnFlow in cases of database and ETL transformations. For analytical and reporting tools, this evaluator is usually configured in the same way as startNodeEvaluator or endNodeEvaluator .

False

locationInHierarchyNodeEvaluator

Evaluator to determine if there is a location leaf in the node’s hierarchy. This is by default used for Oracle dialect where ColumnFlow nodes can be non-atomic; that is, the ColumnFlow node is an ancestor of the transformation leaf, not the leaf itself.

False

locationNameNodeEvaluator (Collibra only)

Evaluator to determine which of the parents of the transformation leaf is used to determine the transformation’s name. For example: Procedure, Function, or Trigger for databases, IFPC Session for IPC.

False

startNodeOptionalEvaluator

Evaluator to determine whether the target* node is optional for the given transformation node. If this evaluator determines that the target node is required and the transformation does not have a target node, the transformation’s flow will not be exported.

By default, target nodes are typically not required for transformation nodes like Delete, TruncateTable, or Query.

Note that some third-party tools do not accept flows without at least one source and target node. In this case, this evaluator does not apply.

False

hierarchyParentNameFilterEvaluator

Evaluator to determine which ancestors should NOT be included in the full name. This evaluator applies to the exclusion of nodes in a hierarchy that are irrelevant to the export.

Important: Note that the default setting change may make the exported data inconsistent with the third-party tool’s meta model. This state may break the export.

False

linkedScriptNodeEvaluator

Evaluator to determine if it is a script node to be connected via an enum link.

This evaluator is no longer applicable and will be removed in the future.

False

tableLevelNodeEvaluator (Collibra only)

Helper evaluator for obtaining the table-level ancestor of the given column node. Typically, the table-level node is a Table or View node. If this evaluator is not defined, the table-level node is simply a parent of the column node.

False

printEnumeratedLinksEvaluator

Evaluator to determine which nodes are exported as “outer” nodes; that is, nodes usually imported by third-party tools through their native interface.

For compatibility reasons, use this evaluator in correlation with outerNodeEvaluator.

True

skipLocationNodeEvaluator

Evaluator to determine if the transformation node should be skipped to connect the source and destination directly. For example, this evaluator applies when a direct connection between Table and View is needed, instead of exporting of a CreateView node as a transformation.

False

innerNodeEvaluator

Evaluator to determine which nodes are exported as “inner” nodes; that is, nodes provided exclusively by Manta Data Lineage, in addition to the ones imported by third-party tools through their native interface.

True

outerNodeEvaluator

Evaluator to determine which nodes are exported as “outer” nodes; that is, nodes usually imported by third-party tools through their native interface.

For compatibility reasons, use this evaluator in correlation with printEnumeratedLinksEvaluator.

False

transformationClassificationEvaluator

Evaluator to determine whether this dialects supports transformation classification export; that is, export of the flag noting whether the transformation node transforms data or not.

Important: Only TruePredicate and FalsePredicate are supported; otherwise, the export may crash.

False

qualifiedNameNodeEvaluator (Alation only)

Evaluator to determine whether the node is exported as its descendant’s qualified name entry instead of third-party tool asset.

Important: If evaluates to true for the node, the node type must be mapped to QUALIFIED_NAME_ENTRY, otherwise the export won't work. For more information, see the typeMapping configuration property in Other Export Configuration Properties.

Example:

  "datastage": {
    "qualifiedNameNodeEvaluator": {
      "type": "VertexTypePredicate",
      "valueSet": [
        "Server",
        "DataStage Project",
        "DataStage Folder"
      ]
    },
    "typeMapping": {
      "Server": "QUALIFIED_NAME_ENTRY",
      "DataStage Project": "QUALIFIED_NAME_ENTRY",
      "DataStage Folder": "QUALIFIED_NAME_ENTRY",
      ...
    },
    ...
  }

False

* For technical and historical reasons, startNodeEvaluator determines target nodes and endNodeEvaluator source nodes.

Predicates

Predicates are the building blocks of evaluators. They stop at each node and determine if it meets the conditions specified. Examples of evaluators and their predicates can be seen in mantaflow/server/webapps/manta-dataflow-server/WEB-INF/classes/*technology*-config.json.

Predicate

Structure

Description

TruePredicate

Returns True

FalsePredicate

Returns False

NotPredicate

vertexPredicate: Vertex predicate

Returns the opposite of the vertexPredicate

AndPredicate

children: List of vertex predicates

When all children return true, returns True

OrPredicate

children: List of vertex predicates

When at least one child returns true, returns True

ChildTypePredicate

typeSet: Set of allowed types

Returns True when one of the children is of the allowed type

InChildHierarchyTypePredicate

typeSet: Set of allowed types

Returns True if and only if all the descendants of the node are of the allowed types

InHierarchyPredicate

children: List of vertex predicates

Returns True if the node or one of its parents matches all the evaluators in the children list

InHierarchyPropertyPredicate

vertexTypeSet: The set of vertex types on which the given property is searched

propertyKey: Key of the property

propertyValueSet: A set of values that a property must have

Returns True if somewhere in the hierarchy of the node is a node of a given type with a given property having a given value

InHierarchyTypePredicate

typeSet: Set of allowed types

Returns True if and only if the vertex has an ancestor of an allowed type

IsLeafPredicate

Returns True if the node has no children

LeafSinkPredicate

labels: Labels of edges( DIRECT, FILTER)

Returns True if all leaves of the node are sinks (has no edges of the specified labels)

NamePredicate

nameSet: Set of allowed names

Returns True if the name of the node is in the nameSet

ParentAttributePredicate

attributeKey: Key of the attribute

allowedValues: Set of allowed values

Returns True if the parent of the node has an attribute with the given key located in the given set of allowable values

ParentTypePredicate

typeSet: Set of allowed types

Returns True if the parent of the node is a type from the typeSet

ResourceTypePredicate

valueSet: Set of allowed values

Returns True if the resource of the node is from the valueSet

SinkPredicate

labels: Labels of edges( DIRECT, FILTER)

Returns True if the node is sink (has no edges of the specified labels)

TableAttributePredicate

typeSet: Set of allowed types

attributeKey: Key of the attribute

Returns True if the node is a column in the table and, additionally, this table has an attribute with the given key located in the given set of allowable values

TableSourcePredicate

typeSet: Set of allowed types

Returns True if the node is a column in the table and, additionally, this table has a source ( OBJECT_SOURCE_TYPE attribute) located in the given set of allowable values

TableTypePredicate

typeSet: Set of allowed types

Returns True if the node is a column in the table and, additionally, this table is a type located in the given set of allowable types

VertexAttributePredicate

attributeKey: Key of the attribute

allowedValues: Set of allowed values

Returns True if the node has an attribute with the given key and a value from the set of allowed values

VertexPropertyPredicate

valueSet: Set of allowed values

propertyName: Name of the property node

Returns True if the value of the vertex property belongs to the specified set

Removed as of R42

To retrieve a name, use NamePredicate instead

To retrieve a type, use VertexTypePredicate instead

VertexTypePredicate

valueSet: Set of allowed values

Returns True if the type of the vertex is from the allowed set

Example

Example of the configuration of the dialects for Manta Open Integration Export.

openexport-config.json

Practical Examples of Configuration Overrides

This section describes selected use cases where configuration overrides apply.

To improve readability the examples are abbreviated. In practice, it is necessary to configure the whole dialect.
Deduced Table Export

By default, deduced tables, views, and synonyms are typically not exported. The default MS SQL dialect configuration for Open Manta Integration Export is:

  "mssql": {
    "startNodeEvaluator": {
      "type": "AndPredicate",
      "children": [
        {
          "type": "ParentTypePredicate",
          "typeSet": [
            "Table",
            "View",
            "Synonym"
          ]
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "VertexTypePredicate",
            "valueSet": [
              "Pseudocolumn"
            ]
          }
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "TableTypePredicate",
            "typeSet": [
              "VOLATILE_TABLE",
              "GLOBAL_TEMPORARY_TABLE"
            ]
          }
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "TableSourcePredicate",
            "typeSet": [
              "DEDUCTION"
            ]
          }
        }
      ]
    },
    "endNodeEvaluator": {
      "type": "AndPredicate",
      "children": [
        {
          "type": "ParentTypePredicate",
          "typeSet": [
            "Table",
            "View",
            "Synonym"
          ]
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "VertexTypePredicate",
            "valueSet": [
              "Pseudocolumn"
            ]
          }
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "TableTypePredicate",
            "typeSet": [
              "VOLATILE_TABLE",
              "GLOBAL_TEMPORARY_TABLE"
            ]
          }
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "TableSourcePredicate",
            "typeSet": [
              "DEDUCTION"
            ]
          }
        }
      ]
    },
    ...

To enable deduced object export, remove the predicate disabling this from the startNodeEvaluator and endNodeEvaluator.

        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "TableSourcePredicate",
            "typeSet": [
              "DEDUCTION"
            ]
          }
        }

So the target configuration is:

  "mssql": {
    "startNodeEvaluator": {
      "type": "AndPredicate",
      "children": [
        {
          "type": "ParentTypePredicate",
          "typeSet": [
            "Table",
            "View",
            "Synonym"
          ]
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "VertexTypePredicate",
            "valueSet": [
              "Pseudocolumn"
            ]
          }
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "TableTypePredicate",
            "typeSet": [
              "VOLATILE_TABLE",
              "GLOBAL_TEMPORARY_TABLE"
            ]
          }
        }
      ]
    },
    "endNodeEvaluator": {
      "type": "AndPredicate",
      "children": [
        {
          "type": "ParentTypePredicate",
          "typeSet": [
            "Table",
            "View",
            "Synonym"
          ]
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "VertexTypePredicate",
            "valueSet": [
              "Pseudocolumn"
            ]
          }
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "TableTypePredicate",
            "typeSet": [
              "VOLATILE_TABLE",
              "GLOBAL_TEMPORARY_TABLE"
            ]
          }
        }
      ]
    },
    ...
Volatile and Temporary Table Export

By default, volatile and temporary tables are typically not exported. To enable this, remove the appropriate predicates from the abovementioned default configuration.

        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "TableTypePredicate",
            "typeSet": [
              "VOLATILE_TABLE",
              "GLOBAL_TEMPORARY_TABLE"
            ]
          }
        }

So the target configuration is:

  "mssql": {
    "startNodeEvaluator": {
      "type": "AndPredicate",
      "children": [
        {
          "type": "ParentTypePredicate",
          "typeSet": [
            "Table",
            "View",
            "Synonym"
          ]
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "VertexTypePredicate",
            "valueSet": [
              "Pseudocolumn"
            ]
          }
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "TableSourcePredicate",
            "typeSet": [
              "DEDUCTION"
            ]
          }
        }
      ]
    },
    "endNodeEvaluator": {
      "type": "AndPredicate",
      "children": [
        {
          "type": "ParentTypePredicate",
          "typeSet": [
            "Table",
            "View",
            "Synonym"
          ]
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "VertexTypePredicate",
            "valueSet": [
              "Pseudocolumn"
            ]
          }
        },
        {
          "type": "NotPredicate",
          "vertexPredicate": {
            "type": "TableSourcePredicate",
            "typeSet": [
              "DEDUCTION"
            ]
          }
        }
      ]
    },
    ...
Export Transformations without Sources and Targets

If the third-party tool enables it, source nodes are not required for transformation export. Target nodes are typically required with the exceptions defined by the startNodeOptional evaluator (see above). The

default MS SQL dialect configuration for Open Manta Integration Export is:

  "mssql": {
    ...
    "startNodeOptionalEvaluator": {
      "type": "ParentTypePredicate",
      "typeSet": [
        "Query",
        "Delete",
        "DropTableOrView"
      ]
    },
    ...

To enable export without target nodes for all transformations, replace this predicate with TruePredicate.

  "mssql": {
    ...
    "startNodeOptionalEvaluator": {
      "type": "TruePredicate"
    },
    ...
Export with Certain Types of Nodes Skipped (e.g., Views)

In this case, we need to remove the node type from the start node and end node evaluator.

If the original configuration is like this:

 "mssql": {
    "detailedLineagePolicy": "SOURCE_TO_TARGET",
    "startNodeEvaluator": {
      "type": "AndPredicate",
      "children": [
        {
          "type": "ParentTypePredicate",
          "typeSet": [
            "Table",
            "View",
            "Synonym"
          ]
        },
    ...

We can set the configuration to:

  "mssql": {
    "detailedLineagePolicy": "SOURCE_TO_TARGET",
    "startNodeEvaluator": {
      "type": "AndPredicate",
      "children": [
        {
          "type": "ParentTypePredicate",
          "typeSet": [
            "Table",
            "Synonym"
          ]
        },
    ...

Other Export Configuration Properties

The following export configuration properties are configurable for Open Manta export.

Configuration property

Type

Description

Default value

typeMapping

A JSON object with internal lineage node types as keys and names for export as values

Mapping of internal lineage node types into names for export

Example:

"typeMapping": {
      "Server": "SERVER",
      "Database": "DATABASE",
      "Insert": "STATEMENT",
      "Update": "STATEMENT"
      ...
}

An empty object

conditionalTypeMappings

A JSON object with the following properties

condition: Defines a predicate. For more information about predicates, read the “Predicates” section above.

typeMapping: It has the same structure as the configuration property typeMapping described above.

Mapping of internal lineage node types into names for export, applied if the defined condition is met

condition: Defines a predicate to define a condition for the type mapping. For more information about predicates, read the “Predicates” section above.

Example:

It can express the condition like this.

  • If the node type is Data Column or Measure and it has an ancestor of the type Report, use the mapping {"Data Column": "BI_REPORT_COLUMN", "Measure", "BI_REPORT_COLUMN"}.

  • If the node type is Data Column or Measure and it has an ancestor of the type Data Set, use the mapping {"Data Column": "BI_DATASOURCE_COLUMN", "Measure", "BI_DATASOURCE_COLUMN"}.

An empty collection

detailedLineagePolicy

NEVER | ALWAYS | SOURCE_TO_TARGET

It is only taken into account if detailed lineage is enabled in the global settings of Manta Data Lineage to IEDC.

ALWAYS: Summary lineage will be exported between the source and the target. All flow links will be exported as detailed lineage.

  • Typical use case when more than one transformation can be exported between the source and the target (e.g., ETLs)

NEVER: Detailed lineage will never be exported. All flow links will be exported as standard lineage.

  • Typical use case when there is no way to specify detailed lineage in relation to summary lineage (e.g., analytical and reporting tools)

SOURCE_TO_TARGET: Summary lineage will be exported between the source and target. Flow links between the source and target will be exported as detailed lineage. Other flow links between will be exported as detailed lineage.

  • Typical use case when just one transformation is exported between the source and target (e.g., database transformations)

NEVER

sourceSupportNodeTypes

An object with the following parameters
selfSourceTypes: Set of types
parentSourceTypes: Map of types

Configuration of the node types that the source codes are loaded for. It has two parameters.

selfSourceTypes: Types of nodes that the source codes linked to themselves are loaded for.

parentSourceTypes: Types of nodes that the source codes linked to any of their ancestor nodes are loaded for. The key of the map is the type of node that the source code should be loaded for and the corresponding value is the type of ancestor node that the source code should be loaded from.

  • Example: If there is a key-value pair (“Merge Insert”, “Merge”) in the map, it means that for the “Merge Insert” node, the source code linked to the “Merge” node—the whole “MERGE” source code—is loaded.

  • Note: With hierarchyParentNameFilterEvaluator we can exclude some node types from the export. If we don’t export, for example, “Merge”, we can still use this option to load the whole “MERGE” source code for the child of the type “Merge Insert” or ”Merge Update”.

An object with the following:

selfSourceTypes: An empty collection

parentSourceTypes: An empty collection

inputLevelSourceSupportNodeTypes

An object with the following parameters
selfSourceTypes: Set of types
parentSourceTypes: Map of types

It has the same structure as sourceSupportNodeTypes, but it has different semantics.

There’s an abstract layer of the type “input” (from IEDC terminology) where nodes of types such as procedures, triggers, scripts, and ETL transformations belong.

If this feature is enabled (see the exportInputLevelSourceCode configuration property below) and if for the given node there is no source code to be exported based on the sourceSupportNodeTypes configuration, then inputLevelSourceSupportNodeTypes is applied.

Example:

"sourceSupportNodeTypes": {
  "selfSourceTypes": [
    "PLSQL Insert",
    "PLSQL Update"
  ],
  "parentSourceTypes": {
    "PLSQL MergeInsert": "PLSQL Merge",
    "PLSQL MergeUpdate": "PLSQL Merge"
  }
},
"inputLevelSourceSupportNodeTypes": {
  "selfSourceTypes": [
    "Procedure"
  ]
}

In this case, for the PLSQL Insert and PLSQL Update nodes, PLSQL Insert and PLSQL Update, respectively, are exported. For PLSQL MergeInsert and PLSQL MergeUpdate, the whole PLSQL Merge statement is exported.

And for a node of the type Procedure, the whole procedure source code with all procedure statements is exported.

Enable input-level source code export:

exportInputLevelSourceCode: true|false in the client configuration defines whether the source code is exported at the input level (defined in inputLevelSourceSupportNodeTypes) or whether only sourceSupportNodeTypes is applied.

An object with the following:

selfSourceTypes: An empty collection

parentSourceTypes: An empty collection

artificialParentList

A list of objects with the following properties

evaluator: Predicate that says which node should have an artificial parent

parentName: Name of the artificial parent

parentType: Type of the artificial parent

Configuration of the artificial parent for nodes defined by the condition

evaluator: Defines a predicate. For more information about predicates, read the “Predicates” section above.

An empty collection

nameResolverMapping

An object representing the map with the node type as the key and a name resolver configuration object with the following properties

type: Type of name resolver — NamespaceIncludingResolver or NameOfResource

If the resolver type is NamespaceIncludingResolver, then the following properties can be configured:

ancestorsTypesFilter — types of nodes allowed to be part of a namespace, if empty

There are two types of name resolvers:

NameOfResource — Per-connection export node name resolver getting its name from the resource name

NamespaceIncludingResolver — Per-connection export node name resolver composing the result name from the node name and its namespace. The namespace contains names of its ancestors that are of an allowed type.

Namespace including resolver:

We can configure it so that some nodes will not be exported. But the concept of namespaces exists so we don’t have to lose all the information from the excluded nodes.

This configuration property defines which ancestors will be included in the node namespace. There are two strategies:

FIRST_ANY_ANCESTOR — The namespace will contain the closest ancestor that meets the specified condition (e.g., the node type condition). If there is no such ancestor, no ancestor information will be added as a node namespace.

ALL_DIRECT_ANCESTOR — The namespace will contain all the closest ancestors that meet the condition (the exporter goes up in the ancestor hierarchy and adds the ancestors to the node namespace until the first node that does not meet the condition is found).

An empty mapping object

If a name resolver mapping is configured with the resolver type NamespaceIncludingResolver, then ancestorsTypesFilter is empty and namespaceBuildingStrategy is set to ALL_DIRECT_ANCESTORS by default for this mapping

connectionResolver

An object specifying the type of connection resolver and its properties. It has the following properties.

type: ConnectionByNodeType | ConnectionByAttribute | OrConnection | NoConnection

OrConnection type properties:

children: An array of connection resolvers

ConnectionByNodeType properties:

nodeType: Type of the node whose name is used as the connection name

ConnectionByAttribute properties:

attributeName: A node attribute whose value should be used as a connection

A resolver of a connection that a lineage node belongs to

In the stored data, the connection information can be stored in different ways.

If the hierarchy is something like Resource -> Server -> Database -> Scheme -> Table -> Column, it will be exported as MSSQL/<Connection>/<Server>/<Database>/<Scheme>/<Table>/<Column> (example of an MS SQL Resource).

This configuration defines where the connection information is stored.

  • NoConnection: In this case, an empty string is returned instead of a connection and the exported namespace will contain two slashes like this: MSSQL//<Server>/<Database>/<Scheme>/<Table>/<Column>.

  • ConnectionByAttribute: In this case, the node ancestors are traversed until the node with a configured attributeName is found. Then the value of the attribute is used as a connection name.

  • ConnectionByNodeType: In this case, the node ancestors are traversed until the node with the configured node type is found. Then the name of the node is used as a connection name.

  • OrConnection: It allows you to combine multiple connection resolvers. It’s property children should contain an array of connection attributes.

NoConnection

allowedLocationDialects

An array of allowed dialect names (case insensitive)

The locations (transformations) in any dialect can have source or target nodes in another dialect (e.g., ETL transformations can have any database as a source or target).

For the given dialect, this configuration defines a list of dialects that nodes of this dialect can be exported for as a source or target of the transformation. The purpose of this configuration is to limit the lineage export.

If the dialect has this configuration property configured as an empty array (usually for databases), the dialect can be exported as a target or source of the locations (transformations) of all dialects.

Example:

For SSAS, allowedLocationDialects is configured to ["SSAS", "SSRS", "Excel"].

For MS SQL, allowedLocationDialects is configured as an empty array.

  • If the export exports a node in SSRS dialect and its source is in SSAS dialect, this SSAS source is exported only if SSAS contains SSRS in its list of allowedLocationDialect or if the list is empty. In this case, the first condition is met, so the source would be exported.

  • If the export exports a node in SSRS dialect and its target is in MS SQL dialect, this MS SQL target is exported only if MS SQL contains SSRS in its list of allowedLocationDialect or if the list is empty. The latter condition is met, so the MS SQL source would be exported.

Note: This logic is applied in both directions — to both incoming and outgoing edges.

An empty array — allowing the dialect to be exported as a source or target of the locations for all dialects

transformationAttributes

An array containing keys of node attributes

Available only for Open Manta Integration Export

This property configures which node attributes can be exported in the transformation_expression column. For more information, see Structure of Exported Files. If the object has at least one of the configured attributes, then the topmost attribute will be exported. If there are no configured transformation attributes or the object does not have any of the configured attributes, the transformation_expression column can contain transformation logic or the source code, if there is any.

Example:

"transformationAttributes": [
  "EXPRESSION",
  "QUERY"
]

Each ETL and reporting tool has its own default values.

Collibra Asset Export Configuration

It’s possible to change the configuration of the asset and attribute mapping for Collibra. The configuration can be changed by changing the JSON file, which can be found in ADMIN GUI > Configuration > Integrations > Collibra > Collibra Asset Export Configuration.

Group

Description

Example

assetEntryTypeDetails

JSON object that maps Manta Data Lineage internal model nodes into Collibra types

  • typeKey — Key of the type in Collibra; that is, collibra.table, collibra.file

  • category — Domain of the given object according to Manta Flow Collibra Export Model; possible values are TECHNOLOGY, PHYSICAL, MAPPING, REPORTS, or LOGICAL

  • parentRelations — Possible child-parent relation types; left for top-level assets

    • key — Key of the type in Collibra

    • referencedAssetRole — SOURCE or TARGET depending on the edge orientation

"TABLE": {
  "typeKey": "collibra.table",  
  "category": "PHYSICAL",  
  "parentRelations": {
    "DATABASE": {
      "key": "collibra.dataAsset-implementedIn-technologyAsset",   
      "referencedAssetRole": "TARGET" 
      },    
    "SCHEMA": {
      "key": "collibra.schema-contains-table",
      "referencedAssetRole": "SOURCE"
      }
  }
}

assetTypeMapping

JSON object that maps Manta Data Lineage types into the internal node representation used by Manta Data Lineage for exports to Collibra which is further used in assetEntryTypeDetails and attributeMapping and mapped to the final Collibra types

Asset type mappings are separated into groups based on the technology types such as reportAssetTypeMapping, analyticalAssetTypeMapping, etc.

"reportAssetTypeMapping": {
  "Server": "HOST",  
  "Tableau Site": "HOST",
  "Report": "REPORT",  
  "Workbook": "REPORT",
  "Tableau Workbook": "REPORT",
  "Value": "REPORT_ATTRIBUTE", 
  "Tooltip": "REPORT_ATTRIBUTE", 
  "Data Point": "REPORT_ATTRIBUTE", 
  "Table Field": "REPORT_ATTRIBUTE", 
  "Pivot Table Field": "REPORT_ATTRIBUTE", 
  "Label": "REPORT_ATTRIBUTE"
  }

attributeMapping

JSON object with an array that declares how attributes from Manta Data Lineage are mapped into Collibra attribute types

  • collibraKey — Key of the type in Collibra

  • mantaName — Manta attribute name; it’s possible to name more of them on one line using the pipe sign, as in the example DESCRIPTION|COMMENT_STRING

  • nodeType — Manta asset type

  • parentType — Possible parent types; optional, left for any parent type

  • valueConverter — Converts attributes into suitable values for Collibra; optional, left for no conversion

    • type — Type of the converter

    • Additional parameters if needed such as valueMap

Value Converters

  • IntegerFilter — Filters non-integer values. If the Manta attribute is not an integer value, it is ignored or will be replaced by implicit value.

  • ValueMapping — Maps Manta-attributed values on Collibra attribute values. It’s necessary to provide valueMap, as shown in the example.

{
  "collibraKey": "collibra.server.description",  
  "mantaName": "DESCRIPTION|COMMENT_STRING",  
  "nodeType": "HOST"
}

or

{
        "collibraKey": "collibra.column.nullability",
        "mantaName": "COLUMN_NULLABILITY",
        "nodeType": "COLUMN",
        "parentType": "TABLE|VIEW",
        "valueConverter": {
          "type": "ValueMapping",
          "valueMap": {
            "true": "True",
            "nullable": "True",
            "false": "False",
            "not null": "False"
          }
        }
  }