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)

CLI based Ingestion

Install the Plugin

pip install 'acryl-datahub[redash]'

Starter 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
Field [Required]TypeDescriptionDefaultNotes
api_keystringRedash user API key.REDASH_API_KEY
api_page_limitintegerLimit on number of pages queried for ingesting dashboards and charts API during pagination.9223372036854775807
connect_uristringRedash base URL.http://localhost:5000
page_sizeintegerLimit on number of items to be queried at once.25
parallelismintegerParallelism to use while processing.1
parse_table_names_from_sqlbooleanSee note below.None
skip_draftbooleanOnly ingest published dashboards and charts.True
sql_parserstringcustom SQL parser. See note below for details.datahub.utilities.sql_parser.DefaultSQLParser
envstringEnvironment to use in namespace when constructing URNs.PROD
chart_patternsAllowDenyPatternregex patterns for charts to filter for ingestion.{'allow': ['.*'], 'deny': [], 'ignoreCase': True}
chart_patterns.allowarray(string)None
chart_patterns.denyarray(string)None
chart_patterns.ignoreCasebooleanWhether to ignore case sensitivity during pattern matching.True
dashboard_patternsAllowDenyPatternregex patterns for dashboards to filter for ingestion.{'allow': ['.*'], 'deny': [], 'ignoreCase': True}
dashboard_patterns.allowarray(string)None
dashboard_patterns.denyarray(string)None
dashboard_patterns.ignoreCasebooleanWhether to ignore case sensitivity during pattern matching.True

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