Import Metadata from Azure Analysis Service

Azure Analysis Services

The Azure Analysis Services (AAS) tabular model can be mapped in Blindata Data Catalog by analyzing .bim files.

Job Definition & Setup

To create an AAS .bim analyzer job, navigate to Settings → Agents → Schedules and then click on the FAB button to launch the job definition modal.

  1. In the first step, specify the system on which AAS metadata will be uploaded, and the job type must be set to AAS_BIM_ANALYZER.

Bim Modal

  1. In the second step, either accept the auto-generated job name or specify a custom one. Leave empty the cron expression to schedule periodic execution of the job.

Bim Modal second step

  1. Finally, in the last step, provide the JSON configuration of the job. Below is a template of the job configuration JSON code.

Bim Modal last step

Below is a template of the job configuration JSON code.

{
  "aasSystemName": "",
  "aasSystemUuid": "",
  "sourceSystemName": "",
  "sourceSystemUuid": "",
  "outputOptions": {
    "targetConnectionName": "",
    "dryRun": false,
    "defaultHidden": false
  },
  "cleanupOptions": {
    "daysFromLastUpdate": 7,
    "systemUuid": "",
    "dataFlowsScope": "",
    "allResourcesDeletionEnabled": false,
    "physicalEntitiesDeletionEnabled": false,
    "physicalFieldsDeletionEnabled": false,
    "systemRoutinesDeletionEnabled": false,
    "dataFlowsDeletionEnabled": false
  }
}

The configuration specifies:

  • aasSystemName/aasSystemUuid (mandatory): the system in which the AAS’s metadata will be uploaded.
  • sourceSystemName/sourceSystemUuid (optional): the system that contains the metadata of the data sources to which AAS is connected.

OutputOptions:

  • DryRun: if true, the collected metadata will not be uploaded to Blindata. It is used for test and debug purposes.
  • TargetConnectionName: the name of the connection to the Blindata instance. The Agent will use this to upload the collected AAS’ metadata.

CleanupOptions: if enabled, the job, after uploading all metadata to Blindata, will execute a cleanup of the tabular schemas that have been updated. This will eliminate all the resources of the specified system and schemas that have not been updated (physical entities, physical fields, routines and data flows). The automatic cleanup options are:

  • daysFromLastUpdate: (mandatory) this option specifies the number of days since the last update, beyond which elements will be deleted if they have not been updated.
  • systemUuid: (mandatory) this must be equal to aasSystemUuid.
  • allResourcesDeletionEnabled: if set to true, resources of all types will be deleted.
  • physicalEntitiesDeletionEnabled: (optional) if set to true, the physical entities will be deleted.
  • physicalFieldsDeletionEnabled: (optional) if set to true, the physical fields will be deleted.
  • systemRoutinesDeletionEnabled: (optional) if set to true, the system routines will be deleted.
  • dataFlowsDeletionEnabled: (optional) if set to true, the dataflows will be deleted.

Job Execution:

Until now, only job execution via HTTP API is supported.

Send a POST request to (the instance url depends on Blindata configuration. E.g. it can be app.blindata.io):

https://<instance url>/agent-api/v1/jobs/runner/async/schedules/<Job UUID>/files

The body of the request must be of form-data type and must have one row with:

  • Key: “file”
  • Value: the .bim file

After each request, the file will be analyzed, and the result will be uploaded automatically to Blindata. To see the history of the Job, go to its history section.

Details on Api-Key authentication can be found at Api Docs.

AAS to Blindata Model

This section explains how the tabular model in AAS is mapped to the metadata model in Blindata.

  • Table → Physical Entity: A Table is mapped to a physical entity.

    • The name is the table name

    • The schema is “«model name»”

    • Table type is TABLE.

  • Column → Physical Field: A Column is mapped to a physical field.

    • The name is the column name
    • The type is the column type.
  • Measure → Physical Field: A Measure is mapped to a physical field.

    • The name is the measure name

    • The type is MEASURE

    • The description contains:

      • Measure name
      • Folder
      • Expression
      • FormatString
  • Model → Physical Entity: A tabular model is represented as a physical entity.

    • The name is the model name.

The entities mapped on Blindata are linked with DataFlows as follows:

  • DataSource.Table.Column → Model.Table.Column
  • DataSource.Table.Column → Model.Table.Measure
  • Model.Table → Model