ジョブ用Power BIタスク
プレビュー
Power BIタスク機能はパブリックプレビューです。
DatabricksワークスペースからMicrosoft Power BI onlineに手動で公開できますが、Power BIタスクを使用してPower BIセマンティックモデルを自動的に調整できます。
Databricks UI で Power BI に公開することについて詳しくは、DatabricksからPower BIサービスに公開するを参照してください。
要件
- Power BIに手動で公開する場合と同様の要件に従う必要があります。詳細については、DatabricksからPower BI Onlineに公開するを参照してください。
- Power BI 接続を持っているか、作成しておく必要があります。オーケストレーションのために Unity Catalog で Power BI 接続を作成するを参照してください。
- その接続の Unity Catalog
USE CONNECTION権限と、使用するテーブルとウェアハウスにアクセスするための権限SQL持っている必要があります。「Lakeflowジョブの ID、アクセス許可、および特権の管理」を参照してください。
Power BIタスクを構成する
Power BI接続が設定済みであれば、その接続を使用して公開を自動化するタスクを作成できます。
ジョブUIは、その他の設定に基づいてオプションを動的に表示します。
Power BIタスクを構成するフローを開始するには:
- タスクを追加したいジョブのジョブUIで、**タスク**タブに移動します。
- タスクを追加
をクリックします。
- 「**タスク名**」を入力してください。
- 種類 ドロップダウン メニューで、 Power BI を選択します。
- タスクのプロパティを構成します(プロパティとその使用方法については、以下の表を参照してください)。
- (オプション)リトライ、実行時間またはストリーミングバックログのしきい値、あるいは通知を構成するには、詳細タスク設定を参照してください。
- タスクの保存 をクリックします。
Databricks では、 Databricks サービスプリンシパルをタスクを 実行するIDとして 設定することをお勧めします。 ベスト・プラクティスについては、 ジョブ・ガバナンスのベスト・プラクティスを参照してください。サービスプリンシパルは、タスクで使用される Databricks テーブル、スキーマ、 Power BI 接続、および SQLウェアハウスにアクセスするために必要な権限を必要とします。
タスクを編集するときは、現在のユーザーの資格情報が使用されますが、タスクが実行されるときは、 IDとしての実行 が使用されます。 ID には、タスクを実行するための適切な権限が必要です。
Power BIタスクプロパティ | 説明 |
|---|---|
SQLウェアハウス | セマンティックモデルの**インポート**モードでの更新、または**DirectQuery**モードでのクエリを処理するSQLウェアハウス。 Power BI タスクにはSQLウェアハウスが必要です。汎用コンピュートはサポートされていません。 |
Power BI接続 | このタスクのPower BI接続。タスクはこの接続を使用してPower BIワークスペースとセマンティックモデルを取得し、Power BIに発行します。詳細については、オーケストレーションのためにUnity CatalogでPower BI接続を作成するを参照してください。 |
Power BIワークスペース | セマンティックモデルが公開されているPower BIワークスペース。 |
Power BIセマンティックモデル | 公開するPower BIセマンティックモデル既存のモデルを選択するか、新しいモデル名を入力して [ 新しいセマンティック モデル <name> を公開 ] をクリックします。 |
既存のモデルを上書き | デフォルトでは、メタデータの更新は既存のモデルにのみ追加されます。このチェックボックスをオンにすると、タスクが実行されたときに、すべてのメタデータとデータの更新がPower BIセマンティックモデルに伝播されます。 |
Power BIクエリーモード | 公開されるテーブルのデフォルトのクエリ モード DirectQuery が選択されている場合、 テーブルクエリモードの構成 プロパティを使用して個々のテーブルでクエリモードを設定することもできます。次のいずれかの値:
Power BIのクエリモードは、Power BIのストレージモードとも呼ばれます。クエリモードに関する詳細情報については、Power BIサービスにおけるセマンティックモデルモードを参照してください。 |
更新するテーブル | セマンティックモデルのソーステーブルとスキーマ。このプロパティのスキーマを選択すると、タスクを実行したときに、その時点でのスキーマ配下のすべてのテーブルが更新に使用されます。タスクは、新しいテーブル、カラム、コメント、主キー/外部キー関係を更新します。 |
認証方法 | セマンティックモデルが選択したSQLウェアハウスに対して認証する方法を定義します。OAuthを使用する場合、最初のタスクの実行後にPower BIで認証情報を設定する必要がある場合があります。構成のためにPower BI UIでService Principalの資格情報を設定できない場合は、「REST APIを使用した資格情報の構成」を参照してください。PATを使用する場合、 IDとしてラン するためのPATが生成されて埋め込まれます。 |
テーブルクエリーモードを設定する | Power BI クエリ モード として DirectQuery が選択されている場合は、必要に応じて、 デュアル ストレージ モードを使用するように個々のテーブルを設定できます。 デュアル ストレージ モードに設定されたテーブルは、クエリのコンテキストに応じて、 Import モードまたは DirectQuery モードとして機能できます。 詳細については、Power BIサービスにおけるセマンティックモデルモードを参照してください。 |
更新後にリフレッシュしてください。 | このオプションは、クエリ モードとして Import が選択されている場合に使用できます。デフォルトでは、モデルのメタデータのみが更新されますが、このチェックボックスをオンにすると、データ更新もトリガーされます(これにより、 SQLウェアハウスがクエリされます)。この更新は、Power BI の更新履歴で確認できます。 |
このタスクを編集、複製、無効化、または削除するには、「Lakeflowジョブでタスクを構成および編集する」を参照してください。
REST APIを使用して資格情報を構成する
Power BI UI ではなく REST API を使用してセマンティックモデルの Service Principal 資格情報を設定するには、Microsoft Fabric Connections API または Power BI REST API のいずれかを使用します。
- Microsoft Fabric Connections API は接続の認証情報を設定し、クラウド、オンプレミス データ ゲートウェイ、VNet データ ゲートウェイなど、すべての接続タイプで機能します。
- Microsoft Power BI REST API は、データソースの認証情報を設定します。これは、オンプレミス データ ゲートウェイ接続およびクラウド データソースで機能します。
Databricks Service Principalで認証を行うには、Basic 資格情報タイプを使用し、Service PrincipalのアプリケーションIDをユーザー名として、そのシークレットをパスワードとして使用します。
Microsoft Fabric Connections API
Microsoft Fabric Connections APIを使用して、セマンティックモデルが使用する接続の資格情報を更新します。Fabric APIにはMicrosoft Entra IDアクセストークンが必要です。また、使用するIDには接続に対する権限(またはゲートウェイ接続の場合はPower BIゲートウェイ管理者権限)が必要です。トークンの取得方法については、「Microsoft Fabric REST API documentation」を参照してください。
ステップは、Power BI がクラウド接続経由で接続するか、オンプレミスのデータゲートウェイ経由で接続するかによって異なります。
クラウド接続
-
IDがアクセスできる接続を一覧表示し、Databricks SQL warehouse用の
ShareableCloud接続を見つけます。そのidをメモしておいてください。HTTPGET https://api.fabric.microsoft.com/v1/connections詳細については、「List Connections」に関するMicrosoftのドキュメントを参照してください。
-
接続
idを使用して、接続の認証情報を更新します。Service Principalの認証情報を直接渡します:HTTPPATCH https://api.fabric.microsoft.com/v1/connections/{connectionId}JSON{
"connectivityType": "ShareableCloud",
"credentialDetails": {
"credentials": {
"credentialType": "Basic",
"username": "<service-principal-application-id>",
"password": "<service-principal-secret>"
}
}
}詳細については、接続の更新に関する Microsoft のドキュメントを参照してください。
オンプレミスデータゲートウェイ
-
IDがアクセスできる接続を一覧表示し、Databricks SQL warehouse用の
OnPremisesGateway接続を見つけます。そのidとgatewayIdをメモしておいてください。HTTPGET https://api.fabric.microsoft.com/v1/connections詳細については、「List Connections」に関するMicrosoftのドキュメントを参照してください。
-
接続の
gatewayIdを使用して、ゲートウェイの公開鍵を取得します:HTTPGET https://api.fabric.microsoft.com/v1/gateways/{gatewayId}詳細については、Get Gateway に関する Microsoft のドキュメントを参照してください。
-
ゲートウェイの公開鍵を使用して、Service Principalの資格情報を暗号化します。詳細については、プログラムによる資格情報の設定に関するMicrosoftのドキュメントを参照してください。
-
最初のステップの接続
idを使用して、接続を更新します。ゲートウェイメンバーごとにvaluesエントリを 1 つ送信します:HTTPPATCH https://api.fabric.microsoft.com/v1/connections/{connectionId}JSON{
"connectivityType": "OnPremisesGateway",
"credentialDetails": {
"credentials": {
"credentialType": "Basic",
"values": [
{
"gatewayId": "<gateway-id>",
"encryptedCredentials": "<encrypted credential data>"
}
]
}
}
}詳細については、接続の更新に関する Microsoft のドキュメントを参照してください。
VNet データゲートウェイ (VirtualNetworkGateway) などの他の接続タイプでは、そのタイプの資格情報ペイロードとともに同じ Endpoint を使用します。完全なリクエストスキーマについては、Update Connection に関する Microsoft のドキュメントを参照してください。
Power BI REST API
Power BI REST APIを使用して、データソースの認証情報を更新することもできます。Power BI REST APIには、Microsoft Entra IDアクセストークンが必要です。Power BIがクラウドデータソース経由で接続する場合でも、オンプレミスのデータゲートウェイ経由で接続する場合でもステップは同じですが、要件は異なります:
- クラウドデータソース(ゲートウェイなし) : セマンティックモデルの所有者である必要があります。資格情報を直接送信し、
encryptionAlgorithmをNoneに設定します。 - オンプレミスデータゲートウェイ : ゲートウェイ管理者権限が必要です。ゲートウェイの公開鍵で資格情報を暗号化し、
encryptionAlgorithmをRSA-OAEPに設定します。
-
セマンティックモデルのデータソースを取得し、Databricksデータソースを見つけます。
datasourceIdとgatewayIdに注意してください。Power BIはクラウドデータソースを自動的にプロビジョニングされたクラウドゲートウェイにバインドするため、オンプレミスゲートウェイがない場合でもgatewayIdが存在します。HTTPGET https://api.powerbi.com/v1.0/myorg/datasets/{datasetId}/datasources詳細については、データソースの取得に関するMicrosoftのドキュメントを参照してください。
-
そのデータソースの認証情報を更新し、接続タイプに
encryptionAlgorithmを設定します。次の例はクラウドデータソース用で、encryptionAlgorithmがNoneに設定されています:HTTPPATCH https://api.powerbi.com/v1.0/myorg/gateways/{gatewayId}/datasources/{datasourceId}JSON{
"credentialDetails": {
"credentialType": "Basic",
"credentials": "{\"credentialData\":[{\"name\":\"username\",\"value\":\"<service-principal-application-id>\"},{\"name\":\"password\",\"value\":\"<service-principal-secret>\"}]}",
"encryptedConnection": "Encrypted",
"encryptionAlgorithm": "None",
"privacyLevel": "None"
}
}オンプレミス データ ゲートウェイの場合は、ゲートウェイの公開キーで認証情報を暗号化し、
credentialsの値を暗号化されたデータに置き換えて、encryptionAlgorithmをRSA-OAEPに設定します。詳細については、データソースの更新に関するMicrosoftのドキュメントを参照してください。ゲートウェイの公開鍵を取得して資格情報を暗号化するPowerShellの例については、Databricks M2M OAuth資格情報管理サンプルを参照してください。資格情報の暗号化に関する詳細については、プログラムによる資格情報の設定に関するMicrosoftのドキュメントを参照してください。
トラブルシューティング
Power BI タスクがセマンティックモデルを更新している間は、Power BI サービスでセマンティックモデルを編集しないでください。そうすると、モデルが**保留中の変更**のままになる可能性があります。
Power BIへの公開のトラブルシューティングに関する情報については、Troubleshoot publishing to Power BIを参照してください。それでも問題が解決しない場合は、製品フィードバックを送信できます。製品フィードバックを送信を参照してください。
その他のリソース
- Power BIタスク:Declarative Automation Bundlesを使用して、Power BIタスクをコードとして定義します。
- Databricks から Power BI サービスに発行する:Unity Catalog を使用して Power BI をセットアップします。
- 「ジョブ・ガバナンスのベスト・プラクティス」: ジョブ・ガバナンスのベスト・プラクティスに従ってください。