メインコンテンツまでスキップ

DatabricksクリーンルームでのJARワークロードの実行

備考

プレビュー

この機能は パブリック プレビュー段階です。

このページでは、クリーンルームでカスタムJARワークロードを実行する方法について説明します。JARサポートにより、コンパイル済みのJavaまたはScalaコードをクリーンルームに持ち込み、コラボレーターが共有するデータに対して実行できます。その際、どのコラボレーターも他のコラボレーターのデータやコードに直接アクセスすることはありません。

クリーンルームでJARを使う方法は2通りです。

  • JAR分析 :スタンドアロンのJARワークロードを、ノートブックと同様に、クリーンルーム分析として実行します。エントリポイントとしてメインクラスを指定し、分析が実行される前にすべてのコラボレーターが分析を承認します。
  • JARユーザー定義関数(UDF): JARからカスタムJavaまたはScala関数を登録し、クリーンルームノートブックから CREATE TEMPORARY FUNCTIONを用いて呼び出します。

以下の表は、2つのアプローチを比較したものです。

機能

JAR分析

JAR UDF

何が実行されますか

独自の分析として登録されたスタンドアロンJARワークロード

クリーンルームノートブックから呼び出されたJARの関数

エントリーポイント

指定するメインクラス

参照するハンドラーメソッド CREATE TEMPORARY FUNCTION

プレビューを有効にする

クリーンルームJARタスク

クリーンルームJAR UDF

サーバレス環境

4-scala-preview

環境バージョン 4

どのように実行されますか

ノートブックのように承認され、それ自体で実行される

それを呼び出したノートの一部として実行されます

始める前に

  • すべてのコラボレーターがプレビューを有効にした後、新しいクリーンルームを作成する必要があります。プレビューは、有効になる前に作成されたクリーンルームには適用されず、後でプレビューを無効にしても、すでにこの機能を使用しているクリーンルームには影響しません。

  • 新しく作成されたクリーンルームは、JARワークロードを実行できるようになるまで最大24時間かかる場合があります。

  • JARは、Java 17以降、またはScala 2.13以降でコンパイルされている必要があります。

  • サーバレスコンピュートが必要です。JAR分析は、4-scala-previewサーバレス環境で実行されます。JAR UDFにはサーバレス環境バージョン4が必要です。

JARの構築とテスト

  • すべてのコラボレーターがプレビューを有効にした後、新しいクリーンルームを作成する必要があります。プレビューは、有効になる前に作成されたクリーンルームには適用されず、後でプレビューを無効にしても、すでにこの機能を使用しているクリーンルームには影響しません。

  • JAR解析については、 ジョブに関するJARタスクを参照してください。

  • JARのUDFについては、 User-Defined scalar functions - Scalaを参照してください。

JARが正常に動作したら、Unityカタログのボリュームにアップロードしてください。共有したいJARファイルだけを格納するボリュームを作成できます。ボリューム全体はクリーンルームと共有されているので、共有したいファイルだけを含めてください。

JAR解析を実行してください

クリーンルームでJAR分析を**実行**するには、以下の手順を行います。

  1. JARをUnityカタログのボリュームにアップロードしてください。

  2. そのボリュームをクリーンルームのデータ資産として追加してください。ステップ 3を参照してください。クリーンルームにデータ資産やノートを追加しましょう。

  3. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  4. クリーン ルーム> ボタンをクリックしてください。

  5. リストからクリーンルームを選択します。

  6. 「分析を追加」 をクリックします。

  7. 分析を追加」 ページで「 JAR分析 」を選択してください。

  8. JAR解析の詳細、エントリーとして使用するメインクラス、共有ボリューム内のJARへの経路を入力します。

  9. Add JAR 」をクリックして、分析結果をクリーンルームに追加してください。

  10. すべての協力者がJAR分析を承認していることを確認してください。

    JAR分析はクリーンルームノートと同様に承認されます。すべての協力者は分析を確認し、承認レビューを追加しなければなりません。自動承認ルールを設定することもできます。クリーン ルームでのノートブックの承認自動承認ルールを参照してください。

  11. JAR分析を選択し、「 実行 」をクリックします。

  12. メインメソッドに渡すパラメータを指定します。

    クリーンルームは、クリーンルームのノートブックに渡されるパラメーターと同様に、--<key> <value> 形式で追加のコンテキスト パラメーターを自動的に挿入します。「ノートブックのパラメーター」を参照してください。

ノートでJARのUDFを使う

クリーンルームノートでJARのUDFを使用するには、以下の手順を行ってください。

  1. JARをUnityカタログのボリュームにアップロードしてください。

  2. そのボリュームをクリーンルームのデータ資産として追加してください。ステップ 3を参照してください。クリーンルームにデータ資産やノートを追加しましょう。

  3. クリーンルームのノートブックで、CREATE TEMPORARY FUNCTION を使用して共有 JAR に基づく関数を登録し、他の関数と同様にそれを呼び出します。

    Java JAR には LANGUAGE JAVA を、Scala JAR には LANGUAGE SCALA を使用します。ENVIRONMENT_VERSION 4でなければならない。DEPENDENCIESパスでは、クリーンルーム作成時に割り当てられたクリーンルームカタログの別名を使い、元のカタログ名を使いません。

    以下の例はJARからのEメール正規化関数を登録しています:

    SQL
    CREATE TEMPORARY FUNCTION normalize_email(email STRING)
    RETURNS STRING
    LANGUAGE JAVA
    ENVIRONMENT (
    DEPENDENCIES = '["/Volumes/<catalog-alias>/<schema>/<volume>/<path>/<file-name>.jar"]',
    ENVIRONMENT_VERSION = 4
    )
    HANDLER "com.mycompany.utils.EmailNormalizer.normalize"

    次に、クエリ内でその関数を呼び出します。

    SQL
    SELECT email_address, normalize_email(email_address) AS normalized_email
    FROM my_table
  4. ノートブックをクリーンルームに追加し、協力者の承認をもらい、実行してください。クリーン ルームでのノートブックの実行を参照してください。

制限事項: