Skip to main content

Metabase

Module metabase

Certified

Important Capabilities

CapabilityStatusNotes
Platform InstanceEnabled by default

This plugin extracts Charts, dashboards, and associated metadata. This plugin is in beta and has only been tested on PostgreSQL and H2 database.

Dashboard

/api/dashboard endpoint is used to retrieve the following dashboard information.

  • Title and description
  • Last edited by
  • Owner
  • Link to the dashboard in Metabase
  • Associated charts

Chart

/api/card endpoint is used to retrieve the following information.

  • Title and description
  • Last edited by
  • Owner
  • Link to the chart in Metabase
  • Datasource and lineage

The following properties for a chart are ingested in DataHub.

NameDescription
DimensionsColumn names
FiltersAny filters applied to the chart
MetricsAll columns that are being used for aggregation

Install the Plugin

pip install 'acryl-datahub[metabase]'

Config Details

Note that a . is used to denote nested fields in the YAML recipe.

View All Configuration Options
FieldRequiredTypeDescriptionDefault
envstringThe environment that all assets produced by this connector belong toPROD
platform_instance_mapDict[str,string]A holder for platform -> platform_instance mappings to generate correct dataset urns
connect_uristringMetabase host URL.localhost:3000
usernamestringMetabase username.None
passwordstringMetabase password.None
database_alias_mapDictDatabase name map to use when constructing dataset URN.
engine_platform_mapDict[str,string]Custom mappings between metabase database engines and DataHub platforms
default_schemastringDefault schema name to use when schema is not provided in an SQL querypublic

Metabase databases will be mapped to a DataHub platform based on the engine listed in the api/database response. This mapping can be customized by using the engine_platform_map config option. For example, to map databases using the athena engine to the underlying datasets in the glue platform, the following snippet can be used:

  engine_platform_map:
athena: glue

DataHub will try to determine database name from Metabase api/database payload. However, the name can be overridden from database_alias_map for a given database connected to Metabase.

Compatibility

Metabase version v0.41.2

Code Coordinates

  • Class Name: datahub.ingestion.source.metabase.MetabaseSource
  • Browse on GitHub

Questions

If you've got any questions on configuring ingestion for Metabase, feel free to ping us on our Slack