PowerBI Report Server
Important Capabilities
Capability | Status | Notes |
---|---|---|
Detect Deleted Entities | ✅ | Enabled by default via stateful ingestion. |
Extract Ownership | ✅ | Enabled by default. |
Use this plugin to connect to PowerBI Report Server. It extracts the following:
Metadata that can be ingested:
- report name
- report description
- ownership(can add existing users in DataHub as owners)
- transfer folders structure to DataHub as it is in Report Server
- webUrl to report in Report Server
Due to limits of PBIRS REST API, it's impossible to ingest next data for now:
- tiles info
- datasource of report
- dataset of report
Next types of report can be ingested:
- PowerBI report(.pbix)
- Paginated report(.rdl)
- Linked report
Configuration Notes
See the
- Microsoft Grant user access to a Report Server doc
- Use your user credentials from previous step in yaml file
Concept mapping
Power BI Report Server | Datahub |
---|---|
Paginated Report | Dashboard |
Power BI Report | Dashboard |
Mobile Report | Dashboard |
Linked Report | Dashboard |
Dataset, Datasource | N/A |
CLI based Ingestion
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: powerbi-report-server
config:
# Your Power BI Report Server Windows username
username: username
# Your Power BI Report Server Windows password
password: password
# Your Workstation name
workstation_name: workstation_name
# Your Power BI Report Server host URL, example: localhost:80
host_port: host_port
# Your alias for Power BI Report Server host URL, example: local_powerbi_report_server
server_alias: server_alias
# Workspace's dataset environments, example: (PROD, DEV, QA, STAGE)
env: DEV
# Your Power BI Report Server base virtual directory name for reports
report_virtual_directory_name: Reports
# Your Power BI Report Server base virtual directory name for report server
report_server_virtual_directory_name: ReportServer
# Enable/Disable extracting ownership information of Dashboard
extract_ownership: True
# Set ownership type
ownership_type: TECHNICAL_OWNER
sink:
# sink configs
Config Details
- Options
- Schema
Note that a .
is used to denote nested fields in the YAML recipe.
Field | Description |
---|---|
host_port ✅ string | Power BI Report Server host URL |
password ✅ string | Windows account password |
report_server_virtual_directory_name ✅ string | Report Server Virtual Directory URL name |
report_virtual_directory_name ✅ string | Report Virtual Directory URL name |
username ✅ string | Windows account username |
extract_ownership boolean | Whether ownership should be ingested Default: True |
graphql_url One of string, null | [deprecated] Not used Default: None |
ownership_type string | Ownership type of owner Default: NONE |
platform_name string | Default: powerbi |
platform_urn string | Default: urn:li:dataPlatform:powerbi |
server_alias string | Alias for Power BI Report Server host URL Default: |
workstation_name string | Workstation name Default: localhost |
env string | The environment that all assets produced by this connector belong to Default: PROD |
chart_pattern AllowDenyPattern | A class to store allow deny regexes |
chart_pattern.ignoreCase One of boolean, null | Whether to ignore case sensitivity during pattern matching. Default: True |
report_pattern AllowDenyPattern | A class to store allow deny regexes |
report_pattern.ignoreCase One of boolean, null | Whether to ignore case sensitivity during pattern matching. Default: True |
stateful_ingestion One of StatefulIngestionConfig, null | Stateful Ingestion Config Default: None |
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 |
The JSONSchema for this configuration is inlined below.
{
"$defs": {
"AllowDenyPattern": {
"additionalProperties": false,
"description": "A class to store allow deny regexes",
"properties": {
"allow": {
"default": [
".*"
],
"description": "List of regex patterns to include in ingestion",
"items": {
"type": "string"
},
"title": "Allow",
"type": "array"
},
"deny": {
"default": [],
"description": "List of regex patterns to exclude from ingestion.",
"items": {
"type": "string"
},
"title": "Deny",
"type": "array"
},
"ignoreCase": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": true,
"description": "Whether to ignore case sensitivity during pattern matching.",
"title": "Ignorecase"
}
},
"title": "AllowDenyPattern",
"type": "object"
},
"StatefulIngestionConfig": {
"additionalProperties": false,
"description": "Basic Stateful Ingestion Specific Configuration for any source.",
"properties": {
"enabled": {
"default": false,
"description": "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",
"title": "Enabled",
"type": "boolean"
}
},
"title": "StatefulIngestionConfig",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"env": {
"default": "PROD",
"description": "The environment that all assets produced by this connector belong to",
"title": "Env",
"type": "string"
},
"stateful_ingestion": {
"anyOf": [
{
"$ref": "#/$defs/StatefulIngestionConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Stateful Ingestion Config"
},
"username": {
"description": "Windows account username",
"title": "Username",
"type": "string"
},
"password": {
"description": "Windows account password",
"title": "Password",
"type": "string"
},
"workstation_name": {
"default": "localhost",
"description": "Workstation name",
"title": "Workstation Name",
"type": "string"
},
"host_port": {
"description": "Power BI Report Server host URL",
"title": "Host Port",
"type": "string"
},
"server_alias": {
"default": "",
"description": "Alias for Power BI Report Server host URL",
"title": "Server Alias",
"type": "string"
},
"graphql_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "[deprecated] Not used",
"title": "Graphql Url"
},
"report_virtual_directory_name": {
"description": "Report Virtual Directory URL name",
"title": "Report Virtual Directory Name",
"type": "string"
},
"report_server_virtual_directory_name": {
"description": "Report Server Virtual Directory URL name",
"title": "Report Server Virtual Directory Name",
"type": "string"
},
"extract_ownership": {
"default": true,
"description": "Whether ownership should be ingested",
"title": "Extract Ownership",
"type": "boolean"
},
"ownership_type": {
"default": "NONE",
"description": "Ownership type of owner",
"title": "Ownership Type",
"type": "string"
},
"platform_name": {
"default": "powerbi",
"title": "Platform Name",
"type": "string"
},
"platform_urn": {
"default": "urn:li:dataPlatform:powerbi",
"title": "Platform Urn",
"type": "string"
},
"report_pattern": {
"$ref": "#/$defs/AllowDenyPattern",
"default": {
"allow": [
".*"
],
"deny": [],
"ignoreCase": true
}
},
"chart_pattern": {
"$ref": "#/$defs/AllowDenyPattern",
"default": {
"allow": [
".*"
],
"deny": [],
"ignoreCase": true
}
}
},
"required": [
"username",
"password",
"host_port",
"report_virtual_directory_name",
"report_server_virtual_directory_name"
],
"title": "PowerBiReportServerDashboardSourceConfig",
"type": "object"
}
Code Coordinates
- Class Name:
datahub.ingestion.source.powerbi_report_server.report_server.PowerBiReportServerDashboardSource
- Browse on GitHub
Questions
If you've got any questions on configuring ingestion for PowerBI Report Server, feel free to ping us on our Slack.
Is this page helpful?