Skip to main content
Version: Next

Qlik Sense

Incubating

Important Capabilities

CapabilityStatusNotes
Asset ContainersEnabled by default
Column-level LineageDisabled by default.
DescriptionsEnabled by default
Detect Deleted EntitiesOptionally enabled via stateful_ingestion.remove_stale_metadata
Extract OwnershipEnabled by default, configured using ingest_owner
Platform InstanceEnabled by default
Schema MetadataEnabled by default
Table-Level LineageEnabled by default.

This plugin extracts the following:

  • Qlik Sense Spaces and Apps as Container.
  • Qlik Datasets
  • Sheets as dashboard and its charts

Integration Details

This source extracts the following:

  • Accessible spaces and apps within that spaces as Container.
  • Qlik Datasets as Datahub Datasets with schema metadata.
  • Sheets as Datahub dashboard and charts present inside sheets.

Configuration Notes

  1. Refer doc to generate an API key from the hub.
  2. Get tenant hostname from About tab after login to qlik sense account.

Concept mapping

Qlik SenseDatahubNotes
SpaceContainerSubType "Qlik Space"
AppContainerSubType "Qlik App"
SheetDashboard
ChartChart
DatasetDatasetSubType "Qlik Dataset"
UserUser (a.k.a CorpUser)Optionally Extracted

CLI based Ingestion

Install the Plugin

pip install 'acryl-datahub[qlik-sense]'

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: qlik-sense
config:
# Coordinates
tenant_hostname: "xyz12xz.us.qlikcloud.com"
# Credentials
api_key: "QLIK_API_KEY"

# Optional - filter for certain space names instead of ingesting everything.
# Mention 'personal_space' if entities of personal space need to ingest
# space_pattern:
# allow:
# - space_name

ingest_owner: true

# Optional -- This mapping is optional and only required to configure platform-instance for Qlik app dataset upstream source tables
# A mapping of the Qlik app dataset upstream tables from data connection to platform instance. Use 'data_connection_name' as key.
# data_connection_to_platform_instance:
# data_connection_name:
# platform_instance: cloud_instance
# env: DEV

sink:
# sink configs

Config Details

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

FieldDescription
api_key 
string
Qlik API Key
tenant_hostname 
string
Qlik Tenant hostname
ingest_owner
boolean
Ingest Owner from source. This will override Owner info entered from UI
Default: True
platform_instance
string
The instance of the platform that all assets produced by this recipe belong to
env
string
The environment that all assets produced by this connector belong to
Default: PROD
data_connection_to_platform_instance
map(str,PlatformDetail)
Any source that connects to a platform should inherit this class
data_connection_to_platform_instance.key.env
string
The environment that all assets produced by this connector belong to
Default: PROD
data_connection_to_platform_instance.key.platform_instance
string
The instance of the platform that all assets produced by this recipe belong to
space_pattern
AllowDenyPattern
Regex patterns to filter Qlik spaces in ingestion.Mention 'personal_space' if entities of personal space need to ingest
Default: {'allow': ['.*'], 'deny': [], 'ignoreCase': True}
space_pattern.ignoreCase
boolean
Whether to ignore case sensitivity during pattern matching.
Default: True
space_pattern.allow
array
List of regex patterns to include in ingestion
Default: ['.*']
space_pattern.allow.string
string
space_pattern.deny
array
List of regex patterns to exclude from ingestion.
Default: []
space_pattern.deny.string
string
stateful_ingestion
StatefulIngestionConfig
Stateful Ingestion Config
stateful_ingestion.enabled
boolean
Whether or not to enable stateful ingest. Default: True if a pipeline_name is set and either a datahub-rest sink or datahub_api is specified, otherwise False
Default: False

Code Coordinates

  • Class Name: datahub.ingestion.source.qlik_sense.qlik_sense.QlikSenseSource
  • Browse on GitHub

Questions

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