Skip to main content

Microsoft Power BI connection

Prophecy supports writing data to Microsoft Power BI using the Power BI REST API. By configuring a connection with the appropriate Microsoft Entra credentials and scopes, you can push data directly from your Prophecy pipelines into tables used in reports and dashboards.

Prerequisites

To connect Prophecy to Power BI, your Microsoft administrator must first register Prophecy as an application in Microsoft Entra ID. This registration provides the Client ID and Client Secret needed to authenticate Prophecy with Microsoft APIs.

As part of the setup, the following scope must be granted to the registered app:

  • Dataset.ReadWrite.All

This lets Prophecy update tables in Power BI. For detailed instructions on adding scopes to your app, visit Using the Power BI REST APIs in the Power BI documentation.

Feature support

The table below outlines whether the connection supports certain Prophecy features.

FeatureSupported
Read and write using Source and Target gemsNo
Write data with a PowerBIWrite gemYes
Browse data in the Environment browserNo

Limitations

Prophecy uses the Power BI connection for the Push Datasets Power BI API. For the full list of limitations for this API, visit Push semantic model limitations in the Power BI documentation.

Connection parameters

To create a connection with Power BI, enter the following parameters. You can find the Tenant ID, Client ID, and Client Secret in your Microsoft Entra app.

ParameterDescription
Connection NameUnique name for the connection
Tenant IDYour Microsoft Entra tenant ID
Client IDYour Microsoft Entra app Client ID
Client Secret (Secret required)Your Microsoft Entra app Client Secret

Data type mapping

Prophecy processes data using a SQL warehouse like Databricks SQL or BigQuery. When you are ready to write your transformed data to Power BI, data types are converted to Power BI data types using the following mapping.

DatabricksBigQueryPower BI
STRING
Alias: String
STRING
Alias: String
Text
BOOLEAN
Alias: Boolean
BOOL
Alias: Boolean
True/False
BYTE
Alias: Byte
INT64
Alias: Integer
Whole number
SHORT
Alias: Short
INT64
Alias: Integer
Whole number
INT
Alias: Integer
INT64
Alias: Integer
Whole number
LONG
Alias: Long
INT64
Alias: Integer
Whole number
FLOAT
Alias: Float
FLOAT64
Alias: Float
Decimal number
DOUBLE
Alias: Double
FLOAT64
Alias: Float
Decimal number
DECIMAL(p,s)
Alias: Decimal
NUMERIC/DECIMAL
Alias: Numeric/Decimal
Decimal number
DATE
Alias: Date
DATE
Alias: Date
Date/Time
TIMESTAMP
Alias: Timestamp
TIMESTAMP
Alias: Timestamp
Date/Time
BINARY
Alias: Binary
BYTES
Alias: Bytes
Text (Base64)
ARRAY
Alias: Array
REPEATED
Alias: Repeated
Text
MAP<K,V>
Alias: Map
RECORD
Alias: Record
Text
STRUCT
Alias: Struct
RECORD
Alias: Record
Text
NULLTYPE
Alias: Nulltype
NULL
Alias: Null
Blank

Sharing connections within teams

Power BI connections are stored within fabrics, which are assigned to specific teams in Prophecy. Once a Power BI connection is added to a fabric, anyone on that team can use it to send data to Power BI from their pipelines. Everyone will inherit the permissions of the Microsoft Entra app used for connection setup.