適用対象:✅ Microsoft Fabric でのデータ エンジニアリングとデータ サイエンス
Lakehouse を作成して、Livy API for Fabric Data Engineering の使用を開始します。Microsoft Entra トークンを使用した認証。Livy API エンドポイントを検出する。リモート クライアントから Fabric Spark コンピューティングにバッチ ジョブまたはセッション ジョブを送信する。結果を監視します。
前提条件
Fabric Premium、またはレイクハウスを備えた試用版の容量
Livy API (プレビュー) のテナント管理者設定が有効であること
Jupyter Notebook サポート、PySpark、Microsoft Authentication Library (MSAL) for Python を備えた Visual Studio Code などのリモート クライアント
Microsoft Entra アプリ トークンのいずれか。 Microsoft ID プラットフォームにアプリケーションを登録する
または、Microsoft Entra SPN トークン。 Microsoft Entra ID でアプリケーション資格情報を追加および管理する
REST API クライアントの選択
さまざまなプログラミング言語または GUI クライアントを使用して、REST API エンドポイントを操作できます。 この記事では、Visual Studio Code 使用します。 Visual Studio Code は、Jupyter Notebooks、PySpark、および Microsoft Authentication Library (MSAL) for Python で構成する必要があります
Entra SPN トークンを使用して Livy API 要求を承認する方法
Livy API を含む Fabric API を操作するには、まず Microsoft Entra アプリケーションを作成し、シークレットを作成し、コードでそのシークレットを使用する必要があります。 Fabric に対して API 呼び出しを実行するには、アプリケーションを登録して適切に構成する必要があります。 詳細については、「Microsoft Entra ID でのアプリケーション資格情報の追加と管理」を参照してください。
アプリの登録を作成したら、クライアント シークレットを作成します。
クライアント シークレットを作成するときは、必ず値をコピーしてください。 これはコードの後半で必要になりますが、シークレットを再度表示することはできません。 コード内のシークレットに加えて、アプリケーション (クライアント) ID とディレクトリ (テナント ID) も必要です。
次に、クライアント シークレットをワークスペースに追加する必要があります。
Entra クライアント シークレットを検索し、そのシークレットをワークスペースに追加し、新しく追加されたシークレットに管理者アクセス許可があることを確認します。
Entra アプリ トークンを使用して Livy API 要求を承認する方法
Livy API を含む Fabric API を操作するには、まず Microsoft Entra アプリケーションを作成し、トークンを取得する必要があります。 Fabric に対して API 呼び出しを実行するには、アプリケーションを登録して適切に構成する必要があります。 詳細については、Microsoft ID プラットフォームにアプリケーションを登録する方法に関するページを参照してください。
Livy ジョブの実行に必要な Microsoft Entra スコープのアクセス許可は多数あります。 この例では、単純な Spark コード + ストレージ アクセス + SQL を使用します。
Code.AccessAzureDataExplorer.All
Code.AccessAzureDataLake.All
Code.AccessAzureKeyvault.All
Code.AccessFabric.All
Code.AccessStorage.All
Item.ReadWrite.All
Lakehouse.Execute.All
Workspace.ReadWrite.All
注
パブリック プレビュー中は、より細かいスコープがいくつか追加されるため、これらのスコープが変更される可能性があります。 これらのスコープの変更が発生すると、Livy アプリが壊れる可能性があります。 追加のスコープで更新されるので、この一覧を確認してください。
一部のお客様には、前のリストよりも詳細なアクセス許可が必要です。 Item.ReadWrite.All を削除し、より詳細なスコープのアクセス許可に置き換えることができます。
- Code.AccessAzureDataExplorer.All
- Code.AccessAzureDataLake.All
- Code.AccessAzureKeyvault.All
- Code.AccessFabric.All
- Code.AccessStorage.All
- Lakehouse.Execute.All
- Lakehouse.ReadWrite.All
- Workspace.ReadWrite.All
- Notebook.ReadWrite.All
- SparkJobDefinition.ReadWrite.All
- MLModel.ReadWrite.All
- MLExperiment.ReadWrite.All
- Dataset.ReadWrite.All
アプリケーションを登録するときは、アプリケーション (クライアント) ID とディレクトリ (テナント) ID の両方が必要です。
Livy API を呼び出す認証済みユーザーは、API とデータ ソース項目の両方が共同作成者ロールで配置されているワークスペース メンバーである必要があります。 詳しくは、ワークスペースへのアクセス権のユーザーへの付与に関する記事をご覧ください。
Fabric Livy API エンドポイントを検出する方法
Livy エンドポイントにアクセスするには、レイクハウス アーティファクトが必要です。 レイクハウスが作成されると、Livy API エンドポイントを設定パネル内に配置できます。
Livy API のエンドポイントは、次のパターンに従います。
https://api.fabric.microsoft.com/v1/workspaces/><ws_id>/lakehouses/<lakehouse_id>/livyapi/versions/2023-12-01/
URL には、選択した内容に応じて、<sessions> または <batches> が追加されます。
Livy API Swagger ファイルをダウンロードする
Livy API の完全な swagger ファイルは、ここで入手できます。
Livy API ジョブを送信する
Livy API のセットアップが完了したら、バッチ ジョブまたはセッション ジョブを送信できます。
Fabric 環境との統合
既定では、この Livy API セッションはワークスペースの既定のスターター プールに対して実行されます。 または、Microsoft Fabric の 環境を作成、構成、使用して、 Livy API セッションがこれらの Spark ジョブに使用する Spark プールをカスタマイズすることもできます。
Livy Spark セッションで Fabric Environment を使用するには、json を更新してこのペイロードを含めます。
create_livy_session = requests.post(livy_base_url, headers = headers, json={
"conf" : {
"spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID""}"}
}
)
Livy Spark バッチ セッションでファブリック環境を使用するには、次に示すように json ペイロードを更新するだけです。
payload_data = {
"name":"livybatchdemo_with"+ newlakehouseName,
"file":"abfss://YourABFSPathToYourPayload.py",
"conf": {
"spark.targetLakehouse": "Fabric_LakehouseID",
"spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID"\"}" # remove this line to use starter pools instead of an environment, replace "EnvironmentID" with your environment ID
}
}
要求履歴を監視する方法
監視ハブを使用して以前の Livy API の送信を確認し、送信エラーをデバッグできます。