Azure Databricks アクティビティを実行してデータを変換する

Fabric Data FactoryのAzure Databricksアクティビティでは、以下のAzure Databricksジョブをオーケストレーションできます:

  • Notebook
  • Jar
  • Python
  • Job

この記事では、Data Factory インターフェイスを使用して Azure Databricks アクティビティを作成するステップバイステップのチュートリアルを提供します。

前提条件

開始するには、次の前提条件を満たしている必要があります。

Azure Databricks アクティビティの構成

パイプライン内で Azure Databricks アクティビティを使用するには、次の手順を実行します。

  1. ワークスペースに新しいパイプラインを作成します。

  2. [ パイプライン アクティビティの追加] を選択し、Azure Databricks を検索します。

    Fabric パイプラインのランディング ページと Azure Databricks アクティビティが強調表示されているスクリーンショット。

  3. または、パイプラインの [アクティビティ] ペイン内で Azure Databricks を検索し、それを選択してパイプライン キャンバスに追加することもできます。

    [アクティビティ] ウィンドウと Azure Databricks アクティビティが強調表示されている Fabric UI のスクリーンショット。

  4. まだ選ばれていない場合は、キャンバスで新しい Azure Databricks アクティビティを選びます。

    Azure Databricks アクティビティの [全般] 設定タブを示すスクリーンショット。

[全般設定] タブを構成するには、全般設定のガイダンスを参照してください。

クラスターの構成

  1. [クラスター] タブを選択します。次に、既存の Azure Databricks 接続を選択するか新規作成し、新しいジョブ クラスター、既存の対話型クラスター、または既存のインスタンス プールを選択します。

  2. 選択したクラスターに応じて、対応するフィールドにご記入ください。

    • 新しいジョブ クラスターと既存のインスタンス プールの下に、worker の数を構成し、スポット インスタンスを有効にする機能もあります。
  3. 接続するクラスターに必要に応じて、 クラスター ポリシー、 Spark 構成、 Spark 環境変数、 カスタム タグなどの他のクラスター設定を指定することもできます。 Databricks の init スクリプトとクラスター ログの宛先パスもクラスターの追加設定で追加できます。

    注

    Azure Data Factory Azure Databricks のリンクされたサービスでサポートされているすべての高度なクラスター プロパティと動的式が、UI の [追加クラスター構成] セクションの下の Microsoft Fabric の Azure Databricks アクティビティでもサポートされるようになりました。 これらのプロパティはアクティビティ UI に含まれるようになったため、高度な JSON 仕様を必要とせずに式 (動的コンテンツ) と共に使用できます。

    Azure Databricks アクティビティの [クラスター設定] タブを示すスクリーンショット。

  4. Azure Databricks アクティビティでは、クラスター ポリシーと Unity カタログのサポートもサポートされるようになりました。

    • [詳細設定] で、 クラスター ポリシー を選択して、許可するクラスター構成を指定できます。
    • また、詳細設定では、セキュリティを強化するために Unity カタログ アクセス モード を構成できます。 使用可能な アクセス モードの種類 は次のとおりです:
      • シングル ユーザー アクセス モード このモードは、各クラスターが単独のユーザーによって使用されるシナリオ向けに設計されています。 これにより、クラスター内のデータ アクセスがそのユーザーのみに制限されます。 このモードは、分離と個々のデータ処理を必要とするタスクに役立ちます。
      • 共有アクセス モード このモードでは、複数のユーザーが同じクラスターにアクセスできます。 Unity Catalog のデータ ガバナンスと、レガシ テーブルのアクセス制御リスト (ACL) を組み合わせたものになります。 このモードでは、ガバナンスとセキュリティ プロトコルを維持しながら、共同作業によるデータ アクセスが可能になります。 特定の制限として、Databricks Runtime ML や Spark-submit ジョブ、特定の Spark API および UDF のサポートがないことが挙げられます。
      • アクセス モードなし このモードでは、Unity カタログとの対話が無効になります。つまり、クラスターは Unity カタログによって管理されるデータにアクセスできません。 このモードは、Unity カタログのガバナンス機能を必要としないワークロードに役立ちます。

    Azure Databricks アクティビティの [クラスター設定] タブのポリシー ID と Unity カタログのサポートを示すスクリーンショット。

設定の調整

設定タブを選択して接続を設定し、オーケストレーションしたいAzure Databricksタイプを選択します。

Azure Databricks アクティビティの [設定] タブを示すスクリーンショット。

接続の構成

接続を設定するには、設定タブの「接続」のドロップダウンを選択してください。

Azure Databricksアクティビティの設定タブにあるConnectionドロップダウンのスクリーンショットです。

既存の接続を選択するか、「 全て閲覧 」を選択して新しい接続を作成して「接続設定」ポップアップを開きます。 New sourcesのAzure Databricks workspaceを選択します。

「データの取得」ポップアップを通じて接続設定のプロセスを示すスクリーンショットです。

接続設定でURL、接続名、データゲートウェイ、認証種類、プライバシーレベルを設定します。

接続設定を入力するスクリーンショットです。

認証の種類については、以下から選択してください:

  • 個人用アクセス トークン (PAT)
  • 組織アカウント
  • サービス プリンシパル

接続設定プロセスの認証種類ドロップダウンのスクリーンショットです。

次の Azure Databricks アクティビティで Notebook の種類を調整します。

[設定] タブで [Notebook] ラジオ ボタンを選択して Notebook を実行できます。 Azure Databricks で実行するノートブック パス、ノートブックに渡す省略可能な基本パラメーター、およびジョブを実行するためにクラスターにインストールする追加のライブラリを指定する必要があります。

Azure Databricks アクティビティの Notebooks の種類を示すスクリーンショット。

Azure Databricks アクティビティで Jar タイプをオーケストレーションします。

[設定] タブで [Jar] ラジオ ボタンを選択して Jar を実行できます。 Azure Databricks で実行するクラス名、Jar に渡す省略可能な基本パラメーター、およびジョブを実行するためにクラスターにインストールする追加のライブラリを指定する必要があります。

Azure Databricks アクティビティの Jar の種類を示すスクリーンショット。

Azure Databricks のアクティビティで Python タイプをオーケストレーションします。

[設定] タブで [Python] ラジオ ボタンを選択して Python ファイルを実行できます。 実行する Python ファイルへの Azure Databricks 内のパス、渡す省略可能な基本パラメーター、およびジョブを実行するためにクラスターにインストールする追加のライブラリを指定する必要があります。

Azure Databricks アクティビティの Python の種類を示すスクリーンショット。

Azure Databricks アクティビティでジョブの種類を調整する:

設定タブで「ジョブ」ラジオボタンを選択してDatabricksジョブを実行できます。 Azure Databricksで実行するジョブをドロップダウンで指定し、任意のジョブパラメータを渡す必要があります。 このオプションを使用して、サーバーレス ジョブを実行できます。

Azure Databricksのアクティビティのジョブタイプを示すスクリーンショットです。

Azure Databricks アクティビティでサポートされるライブラリ

前述の Databricks アクティビティ定義では、jar、egg、whl、maven、pypi、cran というライブラリの種類を指定できます。

ライブラリの種類の詳細については、Databricks のドキュメントを参照してください。

Azure Databricks アクティビティとパイプラインの間のパラメーターの受け渡し

Databricks アクティビティの baseParameters プロパティを使用して、ノートブックにパラメーターを渡すことができます。

Azure Databricks アクティビティで基本パラメーターを渡す方法を示すスクリーンショット。

場合によっては、制御フローのためにノートブックからサービスに値を返したり、ダウンストリーム アクティビティで使用したりする必要があります (サイズ制限は 2 MB)。

  1. たとえば、ノートブックで dbutils.notebook.exit("returnValue") を呼び出すと、対応する "returnValue" がサービスに返されます。

  2. サービス内の出力は、 @{activity('databricks activity name').output.runOutput}のような式を使うことで消費できます。

パイプラインを保存して実行またはスケジュールする

パイプライン エディターの上部にある [ ホーム ] タブに切り替え、[保存] ボタンを選択してパイプラインを保存します。 [ 実行 ] を選択して直接実行するか、特定の時間または間隔で実行をスケジュールする スケジュール を設定します。 パイプラインの実行の詳細については、「パイプラインの実行 をスケジュールする」を参照してください。

パイプライン エディターの [ホーム] タブを示すスクリーンショット。タブ名、[保存]、[実行]、[スケジュール] ボタンが強調表示されています。

実行後、パイプラインの実行を監視し、キャンバスの下にある [出力 ] タブから実行履歴を表示できます。

パイプラインの実行を監視する方法