DatabricksクリーンルームでのJARワークロードの実行
プレビュー
この機能は パブリック プレビュー段階です。
このページでは、クリーンルームでカスタムJARワークロードを実行する方法について説明します。JARサポートにより、コンパイル済みのJavaまたはScalaコードをクリーンルームに持ち込み、コラボレーターが共有するデータに対して実行できます。その際、どのコラボレーターも他のコラボレーターのデータやコードに直接アクセスすることはありません。
クリーンルームでJARを使う方法は2通りです。
- JAR分析 :スタンドアロンのJARワークロードを、ノートブックと同様に、クリーンルーム分析として実行します。エントリポイントとしてメインクラスを指定し、分析が実行される前にすべてのコラボレーターが分析を承認します。
- JARユーザー定義関数(UDF): JARからカスタムJavaまたはScala関数を登録し、クリーンルームノートブックから
CREATE TEMPORARY FUNCTIONを用いて呼び出します。
以下の表は、2つのアプローチを比較したものです。
機能 | JAR分析 | JAR UDF |
|---|---|---|
何が実行されますか | 独自の分析として登録されたスタンドアロンJARワークロード | クリーンルームノートブックから呼び出されたJARの関数 |
エントリーポイント | 指定するメインクラス | 参照するハンドラーメソッド |
プレビューを有効にする | クリーンルームJARタスク | クリーンルームJAR UDF |
サーバレス環境 |
| 環境バージョン |
どのように実行されますか | ノートブックのように承認され、それ自体で実行される | それを呼び出したノートの一部として実行されます |
始める前に
-
すべてのコラボレーターがプレビューを有効にした後、新しいクリーンルームを作成する必要があります。プレビューは、有効になる前に作成されたクリーンルームには適用されず、後でプレビューを無効にしても、すでにこの機能を使用しているクリーンルームには影響しません。
-
新しく作成されたクリーンルームは、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分析を**実行**するには、以下の手順を行います。
-
JARをUnityカタログのボリュームにアップロードしてください。
-
そのボリュームをクリーンルームのデータ資産として追加してください。ステップ 3を参照してください。クリーンルームにデータ資産やノートを追加しましょう。
-
Databricks ワークスペースで、
カタログ をクリックします。
-
クリーン ルーム> ボタンをクリックしてください。
-
リストからクリーンルームを選択します。
-
「分析を追加」 をクリックします。
-
「 分析を追加」 ページで「 JAR分析 」を選択してください。
-
JAR解析の詳細、エントリーとして使用するメインクラス、共有ボリューム内のJARへの経路を入力します。
-
「 Add JAR 」をクリックして、分析結果をクリーンルームに追加してください。
-
すべての協力者がJAR分析を承認していることを確認してください。
JAR分析はクリーンルームノートと同様に承認されます。すべての協力者は分析を確認し、承認レビューを追加しなければなりません。自動承認ルールを設定することもできます。クリーン ルームでのノートブックの承認 と 自動承認ルールを参照してください。
-
JAR分析を選択し、「 実行 」をクリックします。
-
メインメソッドに渡すパラメータを指定します。
クリーンルームは、クリーンルームのノートブックに渡されるパラメーターと同様に、
--<key> <value>形式で追加のコンテキスト パラメーターを自動的に挿入します。「ノートブックのパラメーター」を参照してください。
ノートでJARのUDFを使う
クリーンルームノートでJARのUDFを使用するには、以下の手順を行ってください。
-
JARをUnityカタログのボリュームにアップロードしてください。
-
そのボリュームをクリーンルームのデータ資産として追加してください。ステップ 3を参照してください。クリーンルームにデータ資産やノートを追加しましょう。
-
クリーンルームのノートブックで、
CREATE TEMPORARY FUNCTIONを使用して共有 JAR に基づく関数を登録し、他の関数と同様にそれを呼び出します。Java JAR には
LANGUAGE JAVAを、Scala JAR にはLANGUAGE SCALAを使用します。ENVIRONMENT_VERSION4でなければならない。DEPENDENCIESパスでは、クリーンルーム作成時に割り当てられたクリーンルームカタログの別名を使い、元のカタログ名を使いません。以下の例はJARからのEメール正規化関数を登録しています:
SQLCREATE 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"次に、クエリ内でその関数を呼び出します。
SQLSELECT email_address, normalize_email(email_address) AS normalized_email
FROM my_table -
ノートブックをクリーンルームに追加し、協力者の承認をもらい、実行してください。クリーン ルームでのノートブックの実行を参照してください。
制限事項:
- JAR解析を実行しても、
clean_room_eventsシステムテーブルにイベントが発生します。クリーンルームイベントシステムテーブルを参照。