Skip to main content

Redash

Module redash

Incubating

This plugin extracts the following:

  • Redash dashboards and queries/visualization
  • Redash chart table lineages (disabled by default)

Install the Plugin

pip install 'acryl-datahub[redash]'

Quickstart Recipe

Check out the following recipe to get started with ingestion! See below for full configuration options.

For general pointers on writing and running a recipe, see our main recipe guide

source:
type: "redash"
config:
connect_uri: http://localhost:5000/
api_key: REDASH_API_KEY

# Optionals
# api_page_limit: 1 #default: None, no limit on ingested dashboards and charts API pagination
# skip_draft: true #default: true, only ingest published dashboards and charts
# dashboard_patterns:
# deny:
# - ^denied dashboard.*
# allow:
# - .*allowed dashboard.*
# chart_patterns:
# deny:
# - ^denied chart.*
# allow:
# - .*allowed chart.*
# parse_table_names_from_sql: false

Config Details

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

View All Configuration Options
FieldRequiredTypeDescriptionDefault
connect_uristringRedash base URL.http://localhost:5000
api_keystringRedash user API key.REDASH_API_KEY
skip_draftbooleanOnly ingest published dashboards and charts.True
page_sizeintegerLimit on number of items to be queried at once.25
api_page_limitintegerLimit on number of pages queried for ingesting dashboards and charts API during pagination.9223372036854775807
parallelismintegerParallelism to use while processing.1
parse_table_names_from_sqlbooleanSee note below.False
sql_parserstringcustom SQL parser. See note below for details.datahub.utilities.sql_parser.DefaultSQLParser
envstringEnvironment to use in namespace when constructing URNs.PROD
dashboard_patternsAllowDenyPattern (see below for fields)regex patterns for dashboards to filter for ingestion.{'allow': ['.*'], 'deny': [], 'ignoreCase': True, 'alphabet': '[A-Za-z0-9 _.-]'}
dashboard_patterns.allowArray of stringList of regex patterns for process groups to include in ingestion['.*']
dashboard_patterns.denyArray of stringList of regex patterns for process groups to exclude from ingestion.[]
dashboard_patterns.ignoreCasebooleanWhether to ignore case sensitivity during pattern matching.True
dashboard_patterns.alphabetstringAllowed alphabets pattern[A-Za-z0-9 _.-]
chart_patternsAllowDenyPattern (see below for fields)regex patterns for charts to filter for ingestion.{'allow': ['.*'], 'deny': [], 'ignoreCase': True, 'alphabet': '[A-Za-z0-9 _.-]'}
chart_patterns.allowArray of stringList of regex patterns for process groups to include in ingestion['.*']
chart_patterns.denyArray of stringList of regex patterns for process groups to exclude from ingestion.[]
chart_patterns.ignoreCasebooleanWhether to ignore case sensitivity during pattern matching.True
chart_patterns.alphabetstringAllowed alphabets pattern[A-Za-z0-9 _.-]

Note! The integration can use an SQL parser to try to parse the tables the chart depends on. This parsing is disabled by default, but can be enabled by setting parse_table_names_from_sql: true. The default parser is based on the sqllineage package. As this package doesn't officially support all the SQL dialects that Redash supports, the result might not be correct. You can, however, implement a custom parser and take it into use by setting the sql_parser configuration value. A custom SQL parser must inherit from datahub.utilities.sql_parser.SQLParser and must be made available to Datahub by ,for example, installing it. The configuration then needs to be set to module_name.ClassName of the parser.

Code Coordinates

  • Class Name: datahub.ingestion.source.redash.RedashSource
  • Browse on GitHub

Questions

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