metadata-ingestion/docs/sources/metabase/metabase_post.md
Use the Important Capabilities table above as the source of truth for supported features and whether additional configuration is required.
The connector uses Metabase collection APIs to discover collection hierarchy and list dashboards within each collection:
Dashboard details are extracted from:
This includes titles, descriptions, ownership context, and dashboard URL metadata.
Chart metadata is extracted from:
This captures chart definitions, query relationships, and chart-level attributes used for DataHub Chart entities.
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.
If several platform instances with the same platform (e.g. from several distinct clickhouse clusters) are present in DataHub, the mapping between database id in Metabase and platform instance in DataHub may be configured with the following map:
database_id_to_instance_map:
"42": platform_instance_in_datahub
The key in this map must be string, not integer although Metabase API provides id as number.
If database_id_to_instance_map is not specified, platform_instance_map is used for platform instance mapping. If none of the above are specified, platform instance is not used when constructing urn when searching for dataset relations.
If needed it is possible to exclude collections from other users by setting the following configuration:
exclude_other_user_collections: true
Module behavior is constrained by source APIs, permissions, and metadata exposed by the platform. Refer to capability notes for unsupported or conditional features.
If ingestion fails, validate credentials, permissions, connectivity, and scope filters first. Then review ingestion logs for source-specific errors and adjust configuration accordingly.