Microsoft Power Platform上でDatabricksデータを活用する
プレビュー
この機能は パブリック プレビュー段階です。
このページでは、接続を作成した後、次のプラットフォームからDatabricksのデータを使用する方法を説明します。
- Power Apps: Databricks のガバナンス制御を維持しながら、Databricks への読み書きが可能なアプリケーションを構築できます。
- Power Automate :フローを作成し、カスタムSQLまたは既存のジョブを実行できるようにするアクションを追加して、結果を取得します。
- Copilot Studio :Databricksのデータをナレッジソースとして使用してカスタムエージェントを構築するか、Genie Spacesをツールとして接続します。Microsoft Copilot Studio で Databricks データを活用するを参照してください。
前提条件
Power Platform から Databricks に接続する前に、Microsoft Power Platform で Databricks への接続を作成する必要があります。
Databricks のデータを使用して、Power Canvas アプリを構築できます
アプリケーションにDatabricksデータを追加するには、次を実行します。
- Power Apps の左端のナビゲーション バーから、[作成]をクリックします。
- 新しいキャンバスアプリを作成するには、 空白のキャンバスから開始 をクリックして、ご希望のキャンバスサイズを選択します。
- アプリケーションから、 データの追加 > コネクタ > Databricks をクリックします。作成した Databricks 接続をクリックします。
- サイドバーの データセットを選択 からカタログを選択します。
- **データセットの選択** サイドバーから、キャンバスアプリに接続したいすべてのテーブルを選択してください。
- 接続 をクリックします。
Power Apps でのデータ操作:
コネクタは、作成、更新、削除の操作に対応しています。ただし、主キーが定義されているテーブルに限ります。作成操作を行う場合は、常にプライマリキーを指定する必要があります。
Databricks は 生成されたID列をサポートしています。この場合、プライマリキーは行の作成中にサーバーで自動的に生成され、手動で指定することはできません。
Databricks データを利用して Power Automate フローを構築する
Databricks Statement Execution API と Jobs API は Power Automate 内で利用でき、これにより、SQL ステートメントを作成し、既存のジョブを実行できるようになります。Databricks をアクションとして使用して Power Automate フローを作成するには、次の手順を実行します。
-
Power Automate の左端のナビゲーションバーから、 Create をクリックします。
-
フローを作成し、任意のトリガータイプを追加します。
-
新しいフローから、**+**をクリックし、「Databricks」を検索して、利用可能なアクションを確認してください。
-
SQL クエリを記述するには、以下のいずれかのアクションを選択してください。
-
Execute a SQL Statement : Write and run a SQL statement.次の項目を入力します。
- Body/warehouse_id には、SQLステートメントを実行するウェアハウスのIDを入力してください。
- Body/statement_id には、実行する SQL ステートメントの ID を入力してください。
高度なパラメーターの詳細については、APIドキュメントを参照してください。
-
ステータスを確認し、結果を取得する :SQLステートメントのステータスを確認し、結果を取得します。次の項目を入力します。
- **ステートメントID**には、SQLステートメントの実行時に返されたIDを入力してください。
パラメーターの詳細については、APIドキュメントを参照してください。
-
ステートメントの実行をキャンセル: SQL ステートメントの実行を終了します。次の項目を入力します。
- ステートメントIDについては、終了するSQL ステートメントのIDを入力してください。
パラメーターの詳細については、APIドキュメントを参照してください。
-
チャンクインデックスで結果を取得: チャンクインデックスで結果を取得します。これは、大規模な結果セットに適しています。次の項目を入力します。
- 「 ステートメントID 」には、結果を取得したいSQLステートメントのIDを入力してください。
- **チャンクインデックス**には、対象のチャンクインデックスを入力してください。
パラメーターの詳細については、APIドキュメントを参照してください。
-
-
既存のDatabricksジョブを操作するには、次のいずれかのアクションを選択します。
- ジョブリスト: ジョブの一覧を取得します。詳細については、APIドキュメントを参照してください。
- 新しいジョブ実行をトリガーします: ジョブを実行し、トリガーされたジョブ実行の
run_idを返します。詳細については、API のドキュメントを参照してください。 - 単一のジョブ実行を取得: 実行に関するメタデータ(実行ステータス(例:
RUNNING、SUCCESS、FAILED)、開始時刻と終了時刻、実行期間、クラスター情報など)を返します。詳細については、APIドキュメントを参照してください。 - 実行をキャンセル: ジョブの実行またはタスクの実行をキャンセルします。詳細については、APIドキュメントを参照してください。
- 単一の実行の出力を取得する: 単一のジョブまたはタスクの実行の出力とメタデータを取得します。詳細については、APIドキュメントを参照してください。
バッチ更新を実行
Power Appsの入力に応じて一括作成、更新、または削除の操作を実行する必要がある場合、DatabricksではPower Automateフローを実装することをお勧めします。これを達成するには、以下を実行します。
-
Power AppsでDatabricks接続を使用してキャンバスアプリを作成します。
-
Databricks接続を使用してPower Automateフローを作成し、Power Appsをトリガーとして使用してください。
-
Power Automateトリガーで、Power AppsからPower Automateに渡したい入力フィールドを追加します。
-
Power Apps内で、すべての変更を収集するコレクションオブジェクトを作成してください。
-
Power Automate フローをキャンバスアプリに追加します。
-
キャンバス アプリから Power Automate フローを呼び出し、
ForAllコマンドを使用してコレクションを反復処理します。SQLForAll(collectionName, FlowName.Run(input field 1, input field 2, input field 3, …)
並列書き込み
行レベルの同時実行性は、行レベルで変更を検出することで、並列書き込み操作間の競合を減らし、また、並列書き込みによって同じデータファイル内の異なる行が更新または削除される場合に発生する競合を自動的に解決します。
行レベルのコンカレンシーは Databricks Runtime 14.2 以降に含まれます。行レベルの同時実行性は、以下の種類のテーブルでデフォルトでサポートされています:
- 削除ベクトルが有効でパーティション分割されていないテーブル
- リキッドクラスタリングを持つテーブル (削除ベクトルが無効になっている場合を除く)。
削除ベクトルを有効にするには、次のSQLコマンドを実行します。
ALTER TABLE table_name SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
Databricks の並列書き込み競合の詳細については、「分離レベルと書き込みの競合」を参照してください。
制限事項:
Power Apps の制限事項
次の PowerFx 数式は、ローカルで取得されたデータのみを使用して値を計算します。
カテゴリー | 公式 |
|---|---|
テーブル関数 |
|
集計 |
|