Exécuter des workloads JAR dans des clean rooms Databricks
Aperçu
Cette fonctionnalité est en aperçu public.
Cette page explique comment exécuter des charges de travail JAR personnalisées dans une salle blanche. Grâce à la prise en charge des JAR, vous pouvez intégrer du code Java ou Scala compilé dans une salle blanche et l'exécuter sur les données partagées par les collaborateurs, sans qu'aucun collaborateur n'obtienne un accès direct aux données ou au code d'un autre collaborateur.
Vous pouvez utiliser un JAR dans une salle blanche de deux manières :
- Analyses JAR : exécutez une charge de travail JAR autonome en tant qu'analyse de salle blanche, un peu comme un Notebook. Vous spécifiez une classe principale comme point d'entrée, et tous les collaborateurs approuvent l'analyse avant son exécution.
- **Fonctions définies par l'utilisateur (UDF) JAR** : Enregistrez une fonction Java ou Scala personnalisée à partir d'un JAR et appelez-la à partir d'un Notebook de salle blanche
CREATE TEMPORARY FUNCTIONà l'aide de.
Le tableau suivant compare les deux approches :
Compétence | Analyse JAR. | JAR UDF |
|---|---|---|
Ce qu'il exécute | Une charge de travail JAR autonome, enregistrée comme sa propre analyse. | Une fonction d'un JAR, appelée depuis un notebook de la salle blanche |
Point d'entrée | Une classe principale que vous spécifiez | Une méthode de gestionnaire à laquelle vous faites référence dans |
Aperçu à activer | Tâche JAR de Clean Room | UDF JAR de salle blanche |
Environnement Serverless |
| Version de l'environnement |
Comment ça marche | Approuvé comme un Notebook, puis exécuté seul. | S'exécute dans le cadre du notebook qui l'appelle. |
Avant de commencer
-
Il faut créer une nouvelle salle blanche une fois que tous les collaborateurs ont activé l'accès anticipé. La préversion ne s'applique pas aux salles blanches qui ont été créées avant son activation, et la désactivation ultérieure de la préversion n'affecte pas les salles blanches qui utilisent déjà la fonctionnalité.
-
Une salle blanche nouvellement créée peut prendre jusqu'à 24 heures avant de pouvoir exécuter des charges de travail JAR.
-
Le JAR doit être compilé avec Java 17 ou supérieur, ou Scala 2.13 ou supérieur.
-
Le compute serverless est requis. Les analyses JAR s'exécutent sur l'environnement serverless
4-scala-preview. Les UDF JAR nécessitent la version4de l'environnement serverless.
Créer et tester votre JAR
-
Il faut créer une nouvelle salle blanche une fois que tous les collaborateurs ont activé l'accès anticipé. La préversion ne s'applique pas aux salles blanches qui ont été créées avant son activation, et la désactivation ultérieure de la préversion n'affecte pas les salles blanches qui utilisent déjà la fonctionnalité.
-
Pour les analyses JAR, consultez la tâche JAR pour les jobs.
-
Pour les UDF JAR, consultez les UDF Scala et Java à l’étendue de la session.
Lorsque le JAR fonctionne comme prévu, upload-le vers un volume Unity Catalog. Vous pouvez créer un volume qui contient uniquement les JAR que vous souhaitez partager. L'intégralité du volume est partagée avec la salle blanche, veuillez donc n'inclure que les fichiers que vous avez l'intention de partager.
Exécuter une analyse JAR
Pour exécuter une analyse JAR dans une salle blanche, procédez comme suit :
-
upload votre JAR vers un volume Unity Catalog.
-
Ajoutez le volume à la salle blanche en tant qu'asset de données. Voir Étape 3. Ajouter des assets de données et des notebooks à la salle blanche.
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
Cliquez sur le bouton Salles blanches > .
-
Sélectionnez la salle blanche dans la liste.
-
Cliquez sur Ajouter une analyse .
-
Sur la page Ajouter une analyse , sélectionnez Analyse JAR .
-
Saisissez les détails de l’analyse JAR, notamment la classe principale à utiliser comme point d’entrée et le chemin d’accès au JAR dans le volume partagé.
-
Cliquez sur **Ajouter un JAR** pour ajouter l'analyse à la salle blanche.
-
Assurez-vous que tous les collaborateurs ont approuvé l'analyse JAR.
Les analyses JAR sont approuvées de la même manière que les Notebooks de salle blanche : chaque collaborateur doit examiner l'analyse et ajouter une approbation. Vous pouvez également configurer les règles d’approbation automatique. Voir Approuver un notebook dans une salle blanche et règles d’approbation automatique.
-
Sélectionnez l'analyse JAR et cliquez sur Exécuter .
-
Spécifiez les paramètres à passer à la méthode principale.
Clean Rooms injecte automatiquement des paramètres de contexte supplémentaires au format
--<key> <value>, similaires aux paramètres qui sont passés aux notebooks Clean Rooms. Consulter les paramètres de Notebook.
Utilisez une UDF JAR dans un notebook
Pour utiliser une UDF JAR dans un Notebook de salle blanche, procédez comme suit :
-
upload votre JAR vers un volume Unity Catalog.
-
Ajoutez le volume à la salle blanche en tant qu'asset de données. Voir Étape 3. Ajouter des assets de données et des notebooks à la salle blanche.
-
Dans un Notebook de salle blanche, utilisez
CREATE TEMPORARY FUNCTIONpour enregistrer une fonction prise en charge par le JAR partagé, puis appelez-la comme n'importe quelle autre fonction.Utilisez
LANGUAGE JAVApour un JAR Java ouLANGUAGE SCALApour un JAR Scala.ENVIRONMENT_VERSIONdoit être4. Dans le cheminDEPENDENCIES, utilisez l'alias du catalogue de salle blanche qui a été attribué lors de la création de la salle blanche, et non le nom du catalogue d'origine.L'exemple suivant enregistre une fonction de normalisation d'e-mail à partir d'un JAR :
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"Ensuite, appelez la fonction dans une query :
SQLSELECT email_address, normalize_email(email_address) AS normalized_email
FROM my_table -
Ajoutez le Notebook à la salle blanche, faites-le approuver par les collaborateurs, puis exécutez-le. Consultez Exécuter des notebooks dans des salles blanches.
Limitations
- Les exécutions d'analyse JAR n'émettent pas d'événements dans la table système
clean_room_events. Consultez la référence de la table système des événements en salle blanche.