Skip to main content
Version: Next

Redash

Incubating

Important Capabilities

CapabilityStatusNotes
Table-Level LineageEnabled by default

This plugin extracts the following:

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

CLI based Ingestion

Install the Plugin

The redash source works out of the box with acryl-datahub.

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
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 parser is based on the sqlglot package.

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.