Bridge Specifications
Vendor | Meta Integration Technology, Inc. |
Tool Name | Metadata Excel Format |
Tool Version | Excel 2003 to 2010 |
Tool Web Site | http://metaintegration.com/Products/MIMB/ |
Supported Methodology | [Metadata Management] Multi-Model, ETL (Source and Target Data Stores, Transformation Lineage, Expression Parsing) via Excel 2007 (XLSX) File |
SPECIFICATIONS
Tool: Meta Integration Technology, Inc. / Metadata Excel Format version Excel 2003 to 2010 via Excel 2007 (XLSX) File
See http://metaintegration.com/Products/MIMB/
Metadata: [Metadata Management] Multi-Model, ETL (Source and Target Data Stores, Transformation Lineage, Expression Parsing)
Component: MicrosoftExcel version 11.2.0
DISCLAIMER
This import bridge requires internet access to download third-party libraries:
- such as https://repo.maven.apache.org/maven2/ to download open source third-party libraries,
- and more sites for other third-party software such as database specific JDBC drivers.
The downloaded third-party libraries are stored into $HOME/data/download/MIMB/
- If HTTPS fails, the import bridge then tries with HTTP.
- If a proxy is used to access internet, you must configure that proxy in the JRE (see the -j option in the Miscellaneous parameter).
- If the import bridge does not have full access to internet, that $HOME/data/download/MIMB/ directory can be copied from another server with internet access where the command $HOME/bin/MIMB.sh (or .bat) -d can be used to download all third-party libraries used by all bridges at once.
By running this import bridge, you hereby acknowledge responsibility for the license terms and any potential security vulnerabilities from these downloaded third-party software libraries.
OVERVIEW
The purpose of this import bridge is to import metadata from technologies / tools for which no existing import bridge is available: such as legacy data store or ETL tools, or hand written ETL jobs written in an unsupported language.
Productivity tools, such as spreadsheet editing tools, are commonly used to capture, document or publish physical, logical, and business metadata throughout the industry. A tool like Microsoft Office Excel is an especially common choice as it is nearly always available. It is understood by and familiar to business users, offers simple copy and paste compatibility with other Office applications, and conveniences such as spelling correction. Microsoft Excel import and export capabilities are provided to leverage these advantages.
This import bridge imports the metadata representing physical data stores, logical data models, and/or data mappings expressed in Microsoft Office Excel spreadsheets based on a standard Metadata Excel Format which uses multiple tabs (sheets) to represent different metamodel aspects:
- Data Modeling tabs: Models, Packages, Relationships, Domains, Constraints, Enumerations.
- Data Mappings tabs: Mappings, Joins, Filters, Lookups, Rules.
This import bridge imports metadata as:
- a data mapping / data integration model if it contains any Mappings,
- a logical/physical data model if it contains any Packages,
- a physical data store (e.g. Oracle) otherwise.
A Metadata Excel Format add-in creates a new 'Metadata' menu in the Excel ribbon to help navigate and manage spreadsheets which are designed using the standard format. These functions include:
- Inserting new worksheets in the 'Standard' format
- Show and hide functions to control which columns are displayed
- Annotation, formatting and validation of entries on a worksheet
The best way to learn, the standard Metadata Excel Format is to study from examples exported from previously imported databases, data models, or data integration jobs.
However, note that the Metadata Excel Format was not designed to (and therefore does not support to) export, edit, and import as a round-trip. In other words, this import bridge imports metadata as an on boarding technology, while its matching import bridge exports metadata as a report (e.g. summarizing lineage of complex DI/ETL jobs).
DEPRECATED END OF LIFE WARNING
As explained above this "Metadata Excel Format" import bridge is designed to emulate unsupported tools (for which a native import bridge is not available) on two independent use cases:
1- Data Modeling emulating a data store (database, business application, etc.)
2- Data Mapping emulating a data integration (DI, ETL, ELT, CDC)
The use of this old "Metadata Excel Format" import bridge for data mapping emulation (above use case #2) has been deprecated in 2022 and will be End Of Life (EOL) unsupported in 2024, as it has been replaced by the much more capable new "Data Mapping Script" import bridge.
Note that the new data mapping script format provides a number of advantages over the older Metadata Excel format (deprecated) including:
- The data mapping script format supports a full round trip (export/import) from/to a data mapping, while this is not possible with the older Metadata Excel format where the export was more for reporting and the import for bootstrapping.
- The data mapping script format files are generally much more compact than the very verbose Metadata Excel format files based on classifier/table maps and feature/column maps.
- The data mapping script format is easier to generate from SQL based DI/ETL/ELT/CDC tools.
- The data mapping script format supports both bulk mappings and query mappings, while the Metadata Excel format is quite limited in its handling of bulk mappings.
- The data mapping script format supports more source and target data store technologies (RDBMS, NoSQL, File Systems) that are supported by the Metadata Excel format.
REQUIREMENTS
The file must comply to the standard Metadata Excel Format which is:
- based on an Excel template called Standard-Blank.xlsx
- supported/enforced by an Excel 'Add-In' called Standard-Addin.xlam
both located in ${MODEL_BRIDGE_HOME}\conf\MIRModelBridgeTemplate\MIRMicrosoftExcel
Follow Microsoft Excel documentation about installing add-ins in Excel.
FREQUENTLY ASKED QUESTIONS
Q: Why are Business Name and Business Description not imported
A: When the Metadata Excel Format file does NOT contain any data mappings or data modeling packages, the metadata is imported as a physical data store (e.g. Oracle Database) for which the metamodel does not contain (and therefore ignore) any business names and business descriptions.
In the case of RDBMS, any SQL Comments (which can be used to document any tables or columns in the DDL) will be imported as Comment (itself not related to any other concept of User Comment / Feedback).
In the case of Data Mapping, there are only connection definitions, not actual data store definitions. In this way, only the connection definitions will receive any imported value and thus it is still not documenting the data stores themselves.
Q: How does the import bridge handle 'implicit joins'?
A: When a transformation is defined that requires the joining of two or more tables, a join should be specified on a 'Joins' type worksheet. If there are no entries on any 'Joins' type worksheet or if there are no worksheets of that type, then the import bridge will attempt to generate the corresponding join specifications required. In many cases, the import bridge will not have sufficient information to create the correct join and will instead generate a proposed join that must be corrected in the export tool.
On the other hand, if there are any entries (join specifications) on any 'Joins' type worksheets, the import bridge assumes that all joins are fully specified.
Q: Why do I see errors such as 'Table not found', 'Schema not found', or 'Model not found'.
A: These and other errors can be avoided by using the 'Add-In's Validation' operation. This catches most errors and positions the cursor to the first error cell. The cell is turned red and a specific error message is added as a cell comment.
Q: How do I create an XLSX file with an Excel version earlier than 2007?
A: From the Microsoft Download center, install the 'Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint File Formats'. It supports Office XP and 2003.
Q: How do I resolve an 'Out of Memory' error message in the log?
A: By default the import bridge allocates 512 MB of memory. For large models, you can increase this amount, as well as switch to a 64-bit Java Virtual Machine if you require more than 2 GB. Update the configuration file $MetaIntegration/conf/conf.properties with appropriate -Xmx parameter for a 64-bit JVM, for example:
M_JAVA_HOME=..\jre
M_JAVA_OPTIONS=-Xmx2G
LIMITATIONS
Refer to the current general known limitations at https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.html
The Excel Metadata Format is not the recommended means for documentation, especially of the Business Name and Business Description. Instead, the customer should used the CSV format of export, editing and then re-import, as documented in the user guide, which will then be documenting the actual data stores, not the connection definitions.
1. All metadata source spreadsheets must be defined in the Standard format, as this is the only format directly supported. To accommodate a legacy migration activity involving a very large number of existing spreadsheets, the format expected by the import bridge is not hard coded but rather defined by 'Blank' spreadsheets specifying how each spreadsheet cell relates to a neutral repository meta model. This flexibility is available only as a specific customized import bridge which may be provided through consulting services.
2. While both import (reading from spreadsheet) and export (writing to spreadsheet) capabilities are offered, they are not designed to support round-trip re-engineering. For example, one may forward engineer the mapping requirements into a DI/ETL tool for design, but the purpose of exporting from that DI/ETL tool back to Excel is to provide a mapping lineage summary independent of all internal multiple complex transformations and not to re-engineer the design and re-import.
3. Data Design and Architecture tool models may support round-trip type editing within Excel, to take advantage of the spell-checking, column and row based copy and paste, and other conveniences inherent to a spreadsheet environment. In this case, one should export to a spreadsheet, make the edits and then re-import into the original design tool, leveraging the compare and merge facilities provided with the receiving tool.
4. New source or target data stores may be exported to an existing spreadsheet. However, no merge or update features are offered at this time. Also, when importing an Excel spreadsheet into a DI/ETL tool, the receiving tool is responsible for integrating/merging the models and mappings within its existing versions.
5. Specific assumptions and limitations are provided for each pre-defined format in the appropriate ${MODEL_BRIDGE_HOME}\conf\MIRModelBridgeTemplate\MIRMicrosoftExcel\*-Blank.xlsx file
6. Using a spreadsheet to manage metadata may have limitations in some cases. There are no actual limits for any information represented as rows in the spreadsheet, for example there are no limits in the number of entities/tables per model, or the number of attributes/columns per entity/table. However, there are some limitations for any information represented as columns for usability reasons. For example, the nesting of packages within a model, the number of PK/FK/AK keys a given attribute/column can be involved in, or more importantly the number of custom UDP allocated to an entity/table, attribute/column, or data type.
7. Flat file type supports Delimited or Fixed Width flat files. Fixed Width files use the Position attribute to set 'absolute number of characters from the beginning of the row' for each of their fields/columns. Delimited files use the Position attribute to depict the order of their fields/columns.
8. With respect to Comments vs. Descriptions:
A physical data model has a "Comment" on a table which ends up been generated as SQL Comment in the DDL.
A logical data model has a "Description" on an entity. That logical entity may be associated to a physical table if the model is both Logical/Physical, but a Physical only data model cannot have a description and a comment by design.
Therefore, when an Entity / Table / Record / View / File has a Design Level of a Logical/physical, you may see both a (physical) comment, and separately a (logical) description.
However, when an Entity / Table / Record / View / File has a Design Level of a Physical only, then it can have only one description taken from (physical) comment, or (logical) description if present (in such case the physical comment is ignored).
SUPPORT
Provide a troubleshooting package with:
- the debug log (can be set in the UI or in conf/conf.properties with MIR_LOG_LEVEL=6)
- the metadata backup if available (can be set in the Miscellaneous parameter with -backup option, although this common option is not implemented on all bridges for technical reasons).
Bridge Parameters
Parameter Name | Description | Type | Values | Default | Scope |
File | This import bridge reads an Excel spreadsheet in XLSX format and creates a model from its textual information. The "File" parameter should contain the name of this first spreadsheet, generally referred to as the "metadata import spreadsheet." This metadata import spreadsheet MUST be formatted to match the blank spreadsheet. Please find samples of these metadata import spreadsheets in: ${MODEL_BRIDGE_HOME}/conf/MIRModelBridgeTemplate/MIRMicrosoftExcel/BlankFiles/ Using these files as guides, you may simply create a metadata import spreadsheet with your own model information that matches these examples. |
FILE | *.xlsx | Mandatory | |
Miscellaneous | INTRODUCTION Specify miscellaneous options starting with a dash and optionally followed by parameters, e.g. -connection.cast MyDatabase1="MICROSOFT SQL SERVER" Some options can be used multiple times if applicable, e.g. -connection.rename NewConnection1=OldConnection1 -connection.rename NewConnection2=OldConnection2; As the list of options can become a long string, it is possible to load it from a file which must be located in ${MODEL_BRIDGE_HOME}\data\MIMB\parameters and have the extension .txt. In such case, all options must be defined within that file as the only value of this parameter, e.g. ETL/Miscellaneous.txt JAVA ENVIRONMENT OPTIONS -java.memory <Java Memory's maximum size> (previously -m) 1G by default on 64bits JRE or as set in conf/conf.properties, e.g. -java.memory 8G -java.memory 8000M -java.parameters <Java Runtime Environment command line options> (previously -j) This option must be the last one in the Miscellaneous parameter as all the text after -java.parameters is passed "as is" to the JRE, e.g. -java.parameters -Dname=value -Xms1G The following option must be set when a proxy is used to access internet (this is critical to access https://repo.maven.apache.org/maven2/ and exceptionally a few other tool sites) in order to download the necessary third-party software libraries. Note: The majority of proxies are concerned with encrypting (HTTPS) the outside (of the company) traffic and trust the inside traffic that can access proxy over HTTP. In this case, an HTTPS request reaches the proxy over HTTP where the proxy HTTPS-encrypts it. -java.parameters -java.parameters -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass MODEL IMPORT OPTIONS -model.name <model name> Override the model name, e.g. -model.name "My Model Name" -prescript <script name> This option allows running a script before the bridge execution. The script must be located in the bin directory (or as specified with M_SCRIPT_PATH in conf/conf.properties), and have .bat or .sh extension. The script path must not include any parent directory symbol (..). The script should return exit code 0 to indicate success, or another value to indicate failure. For example: -prescript "script.bat arg1 arg2" -postscript <script name> This option allows running a script after successful execution of the bridge. The script must be located in the bin directory (or as specified with M_SCRIPT_PATH in conf/conf.properties), and have .bat or .sh extension. The script path must not include any parent directory symbol (..). The script should return exit code 0 to indicate success, or another value to indicate failure. For example: -postscript "script.bat arg1 arg2" -cache.clear Clears the cache before the import, and therefore will run a full import without incremental harvesting. If the model was not changed and the -cache.clear parameter is not used (incremental harvesting), then a new version will not be created. If the model was not changed and the -cache.clear parameter is set (full source import instead of incremental), then a new version will be created. -backup <directory> Allows to save the input metadata for further troubleshooting. The provided <directory> must be empty. -restore <directory> Specify the backup <directory> to be restored. DATA CONNECTION OPTIONS Data Connections are produced by the import bridges typically from ETL/DI and BI tools to refer to the source and target data stores they use. These data connections are then used by metadata management tools to connect them (metadata stitching) to their actual data stores (e.g. databases, file system, etc.) in order to produce the full end to end data flow lineage and impact analysis. The name of each data connection is unique by import model. The data connection names used within DI/BI design tools are used when possible, otherwise connection names are generated to be short but meaningful such as the database / schema name, the file system path, or Uniform Resource Identifier (URI). The following option allows to manipulate connections. These options replaces the legacy options -c, -cd, and -cs. -connection.cast ConnectionName=ConnectionType Casts a generic database connection (e.g. ODBC/JDBC) to a precise database type (e.g. ORACLE) for SQL Parsing, e.g. -connection.cast "My Database"="MICROSOFT SQL SERVER". The list of supported data store connection types includes: ACCESS APACHE CASSANDRA DB2/UDB DENODO GOOGLE BIGQUERY HIVE MYSQL NETEZZA ORACLE POSTGRESQL PRESTO REDSHIFT SALESFORCE SAP HANA SNOWFLAKE MICROSOFT SQL AZURE MICROSOFT SQL SERVER SYBASE SQL SERVER SYBASE AS ENTERPRISE TERADATA VECTORWISE HP VERTICA -connection.rename OldConnection=NewConnection Renames an existing connection to a new name, e.g. -connection.rename OldConnectionName=NewConnectionName Multiple existing database connections can be renamed and merged into one new database connection, e.g. -connection.rename MySchema1=MyDatabase -connection.rename MySchema2=MyDatabase -connection.split oldConnection.Schema1=newConnection Splits a database connection into one or multiple database connections. A single database connection can be split into one connection per schema, e.g. -connection.split MyDatabase All database connections can be split into one connection per schema, e.g. -connection.split * A database connection can be explicitly split creating a new database connection by appending a schema name to a database, e.g. -connection.split MyDatabase.schema1=MySchema1 -connection.map SourcePath=DestinationPath Maps a source path to destination path. This is useful for file system connections when different paths points to the same object (directory or file). On Hadoop, a process can write into a CSV file specified with the HDFS full path, but another process reads from a Hive table implemented (external) by the same file specified using a relative path with default file name and extension, e.g. -connection.map /user1/folder=hdfs://host:8020/users/user1/folder/file.csv On Linux, a given directory (or file) like /data can be referred to by multiple symbolic links like /users/john and /users/paul, e.g. -connection.map /data=/users/John -connection.map /data=/users/paul On Windows, a given directory like C:\data can be referred to by multiple network drives like M: and N:, e.g. -connection.map C:\data=M:\ -connection.map C:\data=N:\ -connection.casesensitive ConnectionName... Overrides the default case insensitive matching rules for the object identifiers inside the specified connection, provided the detected type of the data store by itself supports this configuration (e.g. Microsoft SQL Server, MySql etc.), e.g. -connection.casesensitive "My Database" -connection.caseinsensitive ConnectionName... Overrides the default case sensitive matching rules for the object identifiers inside the specified connection, provided the detected type of the data store by itself supports this configuration (e.g. Microsoft SQL Server, MySql etc.), e.g. -connection.caseinsensitive "My Database" -connection.level AggregationLevel Specifies the aggregation level for the external connections, e.g.-connection.level catalog The list of the supported values: server catalog schema (default) ETL OPTIONS These options are available on all ETL/DI tools and scripting import bridges in order to: - Process all SQL parsing - Build runtime models from design models and runtime variables - Calculate runtime summary lineage -etl.summary.add.ultimate (previously -ppus) Adds the ultimate runtime lineage summary (may generate a very large model). -etl.summary.only.ultimate (previously -ppsp) Only produces the ultimate runtime lineage summary (may generate a very large model). -etl.connections.add.internal.design (previously -pppd) Adds the internal ETL design data connectors (needed for ETL conversion). -etl.connections.remove.input (previously -ri) Removes all input (source) data connections (to reduce the size of the generated model). -etl.transformations.enable.xml This option enables the parsing and support of XML transformations in DI/ETL import bridges such as Informatica PowerCenter, Informatica Developer, Microsoft SSIS, IBM DataStage, and Talend Data Integration. In case of Informatica, such XML transformations corresponds to the following PowerCenter features https://docs.informatica.com/data-integration/powercenter/10-5/xml-guide/midstream-xml-transformations.html https://docs.informatica.com/data-integration/powercenter/10-5/xml-guide/xml-source-qualifier-transformation.html Note that this option may significantly slow down the import. |
STRING |
Bridge Mapping
Meta Integration Repository (MIR) Metamodel (based on the OMG CWM standard) |
"Metadata Excel Format" Metamodel MicrosoftExcel |
Mapping Comments |
Attribute | Attributes, SourceAttributes or TargetAttributes | |
Comment | Attribute Comment | |
Description | Attribute Description | |
InitialValue | Attribute Initial Value | |
Name | Attribute Name | |
Optional | Is Attribute Optional | Is Attribute Required |
PhysicalName | Attribute Physical name | |
Position | Attribute Position | |
Class | Classes, SourceClasses or TargetClasses | |
Comment | Class Comment | |
Description | Class Description | |
Name | Class Name | |
PhysicalName | Class Physical name | |
ClassifierMap | Computed based on feature maps | |
DataAttribute | Computed based on feature maps | |
DataSet | Computed based on Transformation | |
DatabaseSchema | Schemas, SourceSchemas or TargetSchemas | Created based on the "System Type" |
Comment | Schema Comment | |
Description | Schema Description | |
Name | Schema Name | |
PhysicalName | Schema Physical name | |
DerivedType | Create using "Data Type Inherited From" or calculated using template data. | |
Comment | Data Type Comment | |
Description | Data Type Description | |
InitialValue | Data Type Initial Value | |
Length | Data Type Length | |
LowerBound | Data Type Min Value | |
Name | Data Type Name | |
PhysicalName | Data Type Physical Name | |
Scale | Data Type Scale | |
UpperBound | Data Type Max Value | |
UserDefined | Calculated based on the datatype usage | |
DesignPackage | DataPackages, SourceDataPackages or TargetDataPackages | |
Comment | Package Comment | |
Description | Package Description | |
Name | Package Name | |
PhysicalName | Package Physical name | |
FeatureMap | FeatureMaps | Computed based on source and target attribute references. |
Description | Feature Map Description | |
Name | Feature Map Name | |
Operation | Feature Map Operation | |
FileDirectory | Schemas, SourceSchemas or TargetSchemas | Created based on the "System Type" |
Comment | Schema Comment | |
Description | Schema Description | |
Name | Schema Name | |
PhysicalName | Schema Physical name | |
PropertyType | Defined in the template | |
DataType | Defined in the template | |
InitialValue | Defined in the template | |
Name | Defined in the template | |
Name | Defined in the template | |
Value | Defined in the template | |
StoreModel | Models | |
Author | Model Creation Time | |
Comment | Model Comment | |
CreationTime | Model Creation Time | |
Description | Model Description | |
ModificationTime | Model Creation Time | |
Modifier | Model Creation Time | |
Name | Model Name | |
PhysicalName | Model Physical name | |
SystemType | System Type | |
SystemTypeOld | System Type | |
TypeValue | DataTypes, SourceDataTypes or TargetDataTypes | |
Description | Data Type Enumerated Value Description | |
Name | Data Type Enumerated Value |