JAR-Workloads in Azure Databricks Clean Rooms ausführen

Important

Dieses Feature befindet sich in der Public Preview.

Auf dieser Seite wird beschrieben, wie benutzerdefinierte JAR-Workloads in einem Reinraum ausgeführt werden. Mit JAR-Unterstützung können Sie kompilierten Java- oder Scala-Code in einen Clean Room einbringen und mit den Daten ausführen, die Beteiligte freigeben, ohne dass Beteiligte direkten Zugriff auf die Daten oder den Code anderer Beteiligter erhalten.

Sie können einen JAR in einem Reinraum auf zwei Arten verwenden:

  • JAR-Analysen: Führen Sie eine eigenständige JAR-Workload als Reinraumanalyse aus, ähnlich wie ein Notizbuch. Sie geben eine Hauptklasse als Einstiegspunkt an, und alle Mitarbeiter genehmigen die Analyse, bevor sie ausgeführt wird.
  • Benutzerdefinierte JAR-Funktionen (UDFs): Registrieren Sie eine benutzerdefinierte Java- oder Scala-Funktion aus einem JAR und rufen Sie sie in einem Clean-Room-Notebook mit CREATE TEMPORARY FUNCTION auf.

In der folgenden Tabelle werden die beiden Ansätze verglichen:

Fähigkeit JAR-Analyse JAR UDF
Was ausgeführt wird Eine eigenständige JAR-Workload, die als eigene Analyse registriert ist Eine Funktion aus einem JAR, die aus einem Reinraumnotizbuch aufgerufen wird
Einstiegspunkt Eine Hauptklasse, die Sie angeben Eine Handler-Methode, auf die Sie in CREATE TEMPORARY FUNCTION verweisen
Vorschau zum Aktivieren Clean Room JAR-Aufgabe Clean Room Jar UDF
Serverlose Umgebung 4-scala-preview Umgebungsversion 4
So wird's ausgeführt Wie ein Notebook genehmigt, läuft es dann eigenständig. Wird als Teil des Notebooks ausgeführt, das ihn aufruft.

Bevor Sie anfangen

  • Sie müssen einen neuen Reinraum erstellen, nachdem alle Mitarbeiter die Vorschau aktiviert haben. Die Vorschau gilt nicht für Saubere Räume, die erstellt wurden, bevor sie aktiviert wurden, und das Deaktivieren der Vorschau zu einem späteren Zeitpunkt wirkt sich nicht auf Saubere Räume aus, die das Feature bereits verwenden.

  • Ein neu erstellter Reinraum kann bis zu 24 Stunden benötigen, bevor er JAR-Workloads ausführen kann.

  • Das JAR muss mit Java 17 oder höher oder Scala 2.13 oder höher kompiliert werden.

  • Serverlose Berechnung ist erforderlich. JAR-Analysen werden in der 4-scala-preview serverlosen Umgebung ausgeführt. JAR UDFs erfordern serverlose Umgebungsversion 4.

JAR erstellen und testen

  • Sie müssen einen neuen Reinraum erstellen, nachdem alle Mitarbeiter die Vorschau aktiviert haben. Die Vorschau gilt nicht für Saubere Räume, die erstellt wurden, bevor sie aktiviert wurden, und das Deaktivieren der Vorschau zu einem späteren Zeitpunkt wirkt sich nicht auf Saubere Räume aus, die das Feature bereits verwenden.

  • Informationen zu JAR-Analysen finden Sie unter JAR-Aufgaben für Aufträge.

  • Informationen zu JAR-UDFs finden Sie unter Benutzerdefinierte Skalarfunktionen – Scala.

Wenn der JAR erwartungsgemäß funktioniert, laden Sie ihn in ein Unity Catalog-Volume hoch. Sie können ein Volume erstellen, das nur die JARs enthält, die Sie freigeben möchten. Das gesamte Volume wird für den Clean Room freigegeben. Schließen Sie also nur die Dateien ein, die Sie freigeben möchten.

Ausführen einer JAR-Analyse

Gehen Sie wie folgt vor, um eine JAR-Analyse in einem Reinraum auszuführen:

  1. Laden Sie Ihr JAR in ein Unity-Katalogvolume hoch.

  2. Fügen Sie das Volume dem Clean Room als Datenressource hinzu. Siehe Schritt 3. Fügen Sie dem Reinraum Datenressourcen und Notizbücher hinzu.

  3. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.

  4. Klicken Sie auf die Schaltfläche "Räume >bereinigen".

  5. Wählen Sie den Reinraum in der Liste aus.

  6. Klicken Sie auf "Analyse hinzufügen".

  7. Wählen Sie auf der Seite " Analyse hinzufügen " die Option JAR-Analyse aus.

  8. Geben Sie die Details für die JAR-Analyse ein, einschließlich der Hauptklasse, die als Startpunkt verwendet werden soll, sowie des Pfads zum JAR im freigegebenen Volume.

  9. Klicken Sie auf JAR hinzufügen, um dem Clean Room die Analyse hinzuzufügen.

  10. Stellen Sie sicher, dass alle Mitarbeiter die JAR-Analyse genehmigt haben.

    JAR-Analysen werden auf die gleiche Weise wie Reinraumnotizbücher genehmigt: Jeder Mitarbeiter muss die Analyse überprüfen und eine genehmigende Überprüfung hinzufügen. Sie können auch Regeln für die automatische Genehmigung konfigurieren. Siehe Genehmigen eines Notizbuchs in einem Reinraum und Regeln für die automatische Genehmigung.

  11. Wählen Sie die JAR-Analyse aus, und klicken Sie auf "Ausführen".

  12. Geben Sie die Parameter an, die an die Hauptmethode übergeben werden sollen.

    Clean Rooms fügt automatisch zusätzliche Kontextparameter in das --<key> <value> Format ein, ähnlich wie die Parameter, die an Reinraumnotizbücher übergeben werden. Siehe Notizbuchparameter.

Verwenden einer JAR-UDF in einem Notizbuch

Gehen Sie wie folgt vor, um eine JAR-UDF in einem Clean-Room-Notebook zu verwenden:

  1. Laden Sie Ihr JAR in ein Unity-Katalogvolume hoch.

  2. Fügen Sie das Volume dem Clean Room als Datenressource hinzu. Siehe Schritt 3. Fügen Sie dem Reinraum Datenressourcen und Notizbücher hinzu.

  3. Verwenden Sie in einem Clean-Room-Notebook CREATE TEMPORARY FUNCTION, um eine Funktion zu registrieren, die durch das gemeinsam genutzte JAR bereitgestellt wird, und rufen Sie sie dann wie jede andere Funktion auf.

    Verwenden Sie LANGUAGE JAVA für eine Java-JAR-Datei oder LANGUAGE SCALA für eine Scala-JAR-Datei. ENVIRONMENT_VERSION muss den Wert 4 haben. Verwenden Sie im Pfad DEPENDENCIES den Alias für den Clean Room-Katalog, der beim Erstellen des Clean Room zugewiesen wurde, nicht den ursprünglichen Katalognamen.

    Im folgenden Beispiel wird eine E-Mail-Normalisierungsfunktion aus einem JAR registriert:

    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"
    

    Rufen Sie dann die Funktion in einer Abfrage auf:

    SELECT email_address, normalize_email(email_address) AS normalized_email
    FROM my_table
    
  4. Fügen Sie das Notebook dem Clean Room hinzu, lassen Sie es von Mitwirkenden genehmigen und führen Sie es aus. Weitere Informationen finden Sie unter Ausführen von Notebooks in Reinräumen.

Einschränkungen