Microsoft Azure Analysis Services (SSAS) - Import
Bridge Requirements
This bridge:requires Internet access to https://repo.maven.apache.org/maven2/ and/or other tool sites to download drivers into <TDC_HOME>/data/download/MIMB/.
is only supported on Microsoft Windows.
requires the tool to be installed to access its SDK.
Bridge Specifications
Vendor | Microsoft |
Tool Name | Azure Analysis Services (SSAS) |
Tool Version | 9.0 (2005) to 15.x (2019) |
Tool Web Site | https://azure.microsoft.com/en-us/services/analysis-services/ |
Supported Methodology | [Business Intelligence] Metadata Repository, Data Store (Physical Data Model, OLAP Dimensional Model, Stored Procedure Expression Parsing), BI Design (RDBMS Source, OLAP Source, Dimensional Target, Transformation Lineage, Expression Parsing) via .Net API |
Data Profiling | |
Incremental Harvesting | |
Multi-Model Harvesting | |
Remote Repository Browsing for Model Selection |
SPECIFICATIONS
Tool: Microsoft / Azure Analysis Services (SSAS) version 9.0 (2005) to 15.x (2019) via .Net API
See https://azure.microsoft.com/en-us/services/analysis-services/
Metadata: [Business Intelligence] Metadata Repository, Data Store (Physical Data Model, OLAP Dimensional Model, Stored Procedure Expression Parsing), BI Design (RDBMS Source, OLAP Source, Dimensional Target, Transformation Lineage, Expression Parsing)
Component: MicrosoftSqlServerRepositoryAsImport.MicrosoftAzureAnalysisServices 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
This bridge imports Business Intelligence (BI) reporting metadata from Microsoft SQL Server Analysis Services (SSAS), including the analysis databases (OLAP Models) and Analysis Management Objects (AMO).
Bridge supports Analysis Services Tabular, Multidimensional and Azure Tabular models.
REQUIREMENTS
This bridge connects to the SQL Server Repository using the Analysis Services Management Objects (AMO). AMO client libraries are available as installable packages from NuGet.org and the bridge loads it automatically with Miscellaneous -d. You have to install these components with first running.
This bridge uses Windows Authentication to connect to Analysis Services by default. Please be sure the application is logged into Windows Domain as a User which has appropriate rights to the objects you wish to import when 'User' option is empty.
AUTHORIZATION
User role must have at least "Read definition" permissions on SSAS database
Use one of the following authentication methods based on the User and Secret parameter values:
- Microsoft SQL Server application credentials:
User = Application user
Secret = Application password
- Microsoft Azure Key Vault secret:
User = Application user (e.g. user@mail.com) added as "Analysis Services Server Admin" on target server.
Secret = Secret@VaultURL
For more information, see https://docs.microsoft.com/en-us/azure/key-vault/
- Microsoft Azure Secret credentials:
User = ClientID@TenantID
Secret = ClientSecret
For more information, see https://docs.microsoft.com/en-us/azure/key-vault/secrets/
- Microsoft Azure Temporary credentials (Externally MM managed cloud identity):
User = ""
Secret = ""
This is the first authorization method tried by default when both above parameters are empty.
For more information, see your Metadata Management (MM) / Data Catalog / Data Governance application documentation on managing cloud identity for metadata harvesting.
- Microsoft Azure Managed Service Identity (MSI):
User = ""
Secret = ""
This is the second authorization method tried by default when both above parameters are empty, however this authorization method can be forced with:
Miscellaneous = -auth.msi
For more information, see https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources
- Microsoft Windows Integrated Security:
User = ""
Secret = ""
This is the third authorization method tried by default when both above parameters are empty, however this authorization method can be forced with:
Miscellaneous = -auth.integrated
FREQUENTLY ASKED QUESTIONS
n/a
LIMITATIONS
Refer to the current general known limitations at https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.html
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 option -backup)
In order to provide a complete set of source metadata to reproduce any SSAS issue, provide the exported Analysis Databases (XMLA) files.
Bridge Parameters
Parameter Name | Description | Type | Values | Default | Scope |
Analysis Server instance | Analysis server instance to connect to (e.g. hostname or hostname\\instance). Keep empty if reports do not source from Analysis Server databases. | STRING | Mandatory | ||
Database | SQL Server Analysis Service Project name to be imported (e.g. "/Adventure Works DW Standard Edition"). For Azure put model name (e.g. /TabularProject). |
REPOSITORY_MODEL | Mandatory | ||
User | The User value can be a user name, a client id, or others (it can even be empty) depending on the authorization method. Refer to the AUTHORIZATION section of this bridge's main documentation. |
STRING | |||
Secret | The Secret value can be a password, a secret id, or others (it can even be empty) depending on the authorization method. Refer to the AUTHORIZATION section of this bridge's main documentation. |
PASSWORD | |||
Miscellaneous | MODEL IMPORT OPTIONS -backup <directory> Full path of an empty directory to save the metadata input files for further troubleshooting. 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"="SQL SERVER". The list of supported data store connection types includes: ACCESS CASSANDRA DB2 DENODO HIVE MYSQL NETEZZA ORACLE POSTGRESQL PRESTO REDSHIFT SALESFORCE SAP HANA SNOWFLAKE SQL SERVER SYBASE TERADATA VECTORWISE 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.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" ANALYSIS SERVER OPTIONS -library.packageId Specify packageId for NuGet package with Microsoft.AnalysisServices.dll. Default value is "Microsoft.AnalysisServices.retail.amd64". -library.version Specify version for NuGet package with Microsoft.AnalysisServices.dll. Default value is "19.20.1". -library.filter Specify filter for DLLs inside NuGet package. Result must include "Microsoft.AnalysisServices.dll". Default value is "/lib/net45/". -connection.embedded Enables processing for embedded data sources. An embedded data source, also known as a report-specific data source, is a data connection that is saved in the report definition. Embedded data source connection information can be used only by the report in which it is embedded. -d Specify to download NuGet packages if missing. Cache on first download, then reuse. -cache.clear Clears the cache before the import, and therefore will run a full import without incremental harvesting. |
STRING |
Bridge Mapping
Meta Integration Repository (MIR) Metamodel (based on the OMG CWM standard) |
"Microsoft Azure Analysis Services (SSAS)" Metamodel MicrosoftSqlServerXMLA |
Mapping Comments |
AggregationRule | AggregateFunction | A string defined in the measure |
Rule | Value | |
Cube | Cube | |
Description | Description | |
Name | Name | |
NativeId | ID | |
PhysicalName | Name | |
CubeDimensionAssociation | Defined by containment relationship between Cube and Dimension | |
Dimension | Dimension | |
Description | Description | |
Hide | visible | |
Name | Name | |
NativeId | ID | |
NativeType | Type | |
PhysicalName | Name | |
DimensionAttribute | DimensionAttribute | |
Description | Description | |
Name | Name | |
NativeId | ID | |
PhysicalName | Name | |
Hierarchy | Hierarchy | |
Description | Description | |
Name | Name | |
NativeId | ID | |
PhysicalName | Name | |
HierarchyLevelAssociation | Defined by containment relationship between hierarchy and level | |
Join | Relationship | Defined by DataSourceView |
Description | Description | |
Name | Name | |
NativeId | ID | |
Type | Type | |
JoinRole | Defined by the relationship | |
Level | Level | |
Description | Description | |
Name | Name | |
NativeId | ID | |
NativeType | Type | |
PhysicalName | Name | |
LevelAssociation | Defined by the contiainment between Level and Attribute | |
LevelAttribute | DimensionAttribute | Contained by a Level |
Description | Description | |
Name | Name | |
NativeId | ID | |
Optional | Usage (Attribute) | |
PhysicalName | Name | |
LevelKey | ValueColumn | |
Description | Description | |
Name | Name | |
NativeId | ID | |
NativeType | Type | |
PhysicalName | Name | |
Measure | Measure | |
DefaultAggregation | AggregationString | |
Description | Description | |
Hide | visible | |
Name | Name | |
NativeId | ID | |
NativeType | Type | |
PhysicalName | Name |