Skip to main content
Version: Next

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.

FieldDescription
api_key
string
Redash user API key.
Default: REDASH_API_KEY
api_page_limit
integer
Limit on number of pages queried for ingesting dashboards and charts API during pagination.
Default: 9223372036854775807
connect_uri
string
Redash base URL.
Default: http://localhost:5000
page_size
integer
Limit on number of items to be queried at once.
Default: 25
parallelism
integer
Parallelism to use while processing.
Default: 1
parse_table_names_from_sql
boolean
See note below.
Default: False
skip_draft
boolean
Only ingest published dashboards and charts.
Default: True
sql_parser
string
custom SQL parser. See note below for details.
Default: datahub.utilities.sql_parser.DefaultSQLParser
env
string
Environment to use in namespace when constructing URNs.
Default: PROD
chart_patterns
AllowDenyPattern
regex patterns for charts to filter for ingestion.
Default: {'allow': ['.*'], 'deny': [], 'ignoreCase': True}
chart_patterns.ignoreCase
boolean
Whether to ignore case sensitivity during pattern matching.
Default: True
chart_patterns.allow
array
List of regex patterns to include in ingestion
Default: ['.*']
chart_patterns.allow.string
string
chart_patterns.deny
array
List of regex patterns to exclude from ingestion.
Default: []
chart_patterns.deny.string
string
dashboard_patterns
AllowDenyPattern
regex patterns for dashboards to filter for ingestion.
Default: {'allow': ['.*'], 'deny': [], 'ignoreCase': True}
dashboard_patterns.ignoreCase
boolean
Whether to ignore case sensitivity during pattern matching.
Default: True
dashboard_patterns.allow
array
List of regex patterns to include in ingestion
Default: ['.*']
dashboard_patterns.allow.string
string
dashboard_patterns.deny
array
List of regex patterns to exclude from ingestion.
Default: []
dashboard_patterns.deny.string
string

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.