重要
この機能は パブリック プレビュー段階です。
このページでは、クリーン ルームでカスタム 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 タスク | Clean Room 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 については、「 ユーザー定義スカラー関数 - Scala」を参照してください。
JAR が期待どおりに動作したら、Unity カタログ ボリュームにアップロードします。 共有する JAR のみを保持するボリュームを作成できます。 ボリューム全体がクリーン ルームと共有されるため、共有するファイルのみを含めます。
JAR 分析を実行する
クリーン ルームで JAR 分析を実行するには、次の操作を行います。
JAR を Unity カタログ ボリュームにアップロードします。
データ資産として、ボリュームをクリーン ルームに追加します。 手順 3 を参照してください。データ資産とノートブックをクリーン ルームに追加します。
Azure Databricks ワークスペースで、
Catalog をクリックします。
[ クリーン ルーム] > ボタンをクリックします。
一覧からクリーン ルームを選択します。
[ 分析の追加] をクリックします。
[ 分析の追加] ページで、[ JAR 分析] を選択します。
JAR 分析の詳細 (エントリ ポイントとして使用するメイン クラス、共有ボリューム内の JAR へのパスなど) を入力します。
[ JAR の追加] をクリックして、分析をクリーン ルームに追加します。
すべてのコラボレーターが JAR 分析を承認していることを確認します。
JAR 分析は、クリーン ルーム ノートブックと同じ方法で承認されます。すべてのコラボレーターは分析を確認し、承認レビューを追加する必要があります。 自動承認ルールを構成することもできます。 「クリーン ルームでノートブックを承認する」と「自動承認ルール」を参照してください。
JAR 分析を選択し、[ 実行] をクリックします。
main メソッドに渡すパラメーターを指定します。
Clean Rooms では、クリーン ルーム ノートブックに渡されるパラメーターと同様に、
--<key> <value>形式で追加のコンテキスト パラメーターが自動的に挿入されます。 Notebook パラメーターを参照してください。
ノートブックで JAR UDF を使用する
クリーン ルーム ノートブックで JAR UDF を使用するには、次の操作を行います。
JAR を Unity カタログ ボリュームにアップロードします。
データ資産として、ボリュームをクリーン ルームに追加します。 手順 3 を参照してください。データ資産とノートブックをクリーン ルームに追加します。
クリーン ルーム ノートブックで、
CREATE TEMPORARY FUNCTIONを使用して、共有 JAR によってサポートされる関数を登録し、他の関数と同様に呼び出します。Java JAR には
LANGUAGE JAVAを使用し、Scala JAR にはLANGUAGE SCALAを使用します。ENVIRONMENT_VERSIONは、4である必要があります。DEPENDENCIESパスで、元のカタログ名ではなく、クリーン ルームの作成時に割り当てられたクリーン ルーム カタログエイリアスを使用します。次の例では、JAR から電子メール正規化関数を登録します。
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"次に、クエリで関数を呼び出します。
SELECT email_address, normalize_email(email_address) AS normalized_email FROM my_tableノートブックをクリーン ルームに追加し、コラボレーターに承認して実行してもらう。 「クリーン ルームでノートブックを実行する」を参照してください。
制限事項
- JAR 分析の実行では、
clean_room_eventsシステム テーブルにイベントは出力されません。 「クリーン ルーム イベントシステムテーブルリファレンスを参照してください。