PowerBI Report Server
Important Capabilities
Capability | Status | Notes |
---|---|---|
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 string | [deprecated] Not used |
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 | Default: {'allow': ['.*'], 'deny': [], 'ignoreCase': True} |
chart_pattern.ignoreCase boolean | Whether to ignore case sensitivity during pattern matching. Default: True |
chart_pattern.allow array | List of regex patterns to include in ingestion Default: ['.*'] |
chart_pattern.allow.string string | |
chart_pattern.deny array | List of regex patterns to exclude from ingestion. Default: [] |
chart_pattern.deny.string string | |
report_pattern AllowDenyPattern | Default: {'allow': ['.*'], 'deny': [], 'ignoreCase': True} |
report_pattern.ignoreCase boolean | Whether to ignore case sensitivity during pattern matching. Default: True |
report_pattern.allow array | List of regex patterns to include in ingestion Default: ['.*'] |
report_pattern.allow.string string | |
report_pattern.deny array | List of regex patterns to exclude from ingestion. Default: [] |
report_pattern.deny.string string |
The JSONSchema for this configuration is inlined below.
{
"title": "PowerBiReportServerDashboardSourceConfig",
"description": "Any source that produces dataset urns in a single environment should inherit this class",
"type": "object",
"properties": {
"env": {
"title": "Env",
"description": "The environment that all assets produced by this connector belong to",
"default": "PROD",
"type": "string"
},
"username": {
"title": "Username",
"description": "Windows account username",
"type": "string"
},
"password": {
"title": "Password",
"description": "Windows account password",
"type": "string"
},
"workstation_name": {
"title": "Workstation Name",
"description": "Workstation name",
"default": "localhost",
"type": "string"
},
"host_port": {
"title": "Host Port",
"description": "Power BI Report Server host URL",
"type": "string"
},
"server_alias": {
"title": "Server Alias",
"description": "Alias for Power BI Report Server host URL",
"default": "",
"type": "string"
},
"graphql_url": {
"title": "Graphql Url",
"description": "[deprecated] Not used",
"type": "string"
},
"report_virtual_directory_name": {
"title": "Report Virtual Directory Name",
"description": "Report Virtual Directory URL name",
"type": "string"
},
"report_server_virtual_directory_name": {
"title": "Report Server Virtual Directory Name",
"description": "Report Server Virtual Directory URL name",
"type": "string"
},
"extract_ownership": {
"title": "Extract Ownership",
"description": "Whether ownership should be ingested",
"default": true,
"type": "boolean"
},
"ownership_type": {
"title": "Ownership Type",
"description": "Ownership type of owner",
"default": "NONE",
"type": "string"
},
"platform_name": {
"title": "Platform Name",
"default": "powerbi",
"type": "string"
},
"platform_urn": {
"title": "Platform Urn",
"default": "urn:li:dataPlatform:powerbi",
"type": "string"
},
"report_pattern": {
"title": "Report Pattern",
"default": {
"allow": [
".*"
],
"deny": [],
"ignoreCase": true
},
"allOf": [
{
"$ref": "#/definitions/AllowDenyPattern"
}
]
},
"chart_pattern": {
"title": "Chart Pattern",
"default": {
"allow": [
".*"
],
"deny": [],
"ignoreCase": true
},
"allOf": [
{
"$ref": "#/definitions/AllowDenyPattern"
}
]
}
},
"required": [
"username",
"password",
"host_port",
"report_virtual_directory_name",
"report_server_virtual_directory_name"
],
"additionalProperties": false,
"definitions": {
"AllowDenyPattern": {
"title": "AllowDenyPattern",
"description": "A class to store allow deny regexes",
"type": "object",
"properties": {
"allow": {
"title": "Allow",
"description": "List of regex patterns to include in ingestion",
"default": [
".*"
],
"type": "array",
"items": {
"type": "string"
}
},
"deny": {
"title": "Deny",
"description": "List of regex patterns to exclude from ingestion.",
"default": [],
"type": "array",
"items": {
"type": "string"
}
},
"ignoreCase": {
"title": "Ignorecase",
"description": "Whether to ignore case sensitivity during pattern matching.",
"default": true,
"type": "boolean"
}
},
"additionalProperties": false
}
}
}
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?