Opérateurs personnalisés dans Lakeflow Designer
Lakeflow Designer vous permet de créer des opérateurs personnalisés qui apparaissent directement sur le canevas aux côtés des opérateurs intégrés. Utilisez-les pour étendre Lakeflow Designer avec votre propre logique métier, vos propres calculs ou vos propres intégrations. Les opérateurs personnalisés étaient auparavant appelés opérateurs définis par l’utilisateur (UDO).
Les opérateurs personnalisés sont de deux types :
- Local : L'opérateur appartient à un fichier de préparation de données visuel. Décrivez la transformation et Genie Code génère l'opérateur. Voir Créer un opérateur personnalisé local avec Genie Code.
- Partagé : l'opérateur est enregistré dans le workspace ; vous et les autres utilisateurs pouvez donc l'ajouter à n'importe quel fichier de préparation des données visuelles. Sa logique est une fonction Python ou une fonction Unity Catalog, décrite en YAML. Écrivez-la vous-même ou demandez à Genie Code de la créer. Consultez Fonctionnement des opérateurs personnalisés.
Créez un opérateur personnalisé local avec Genie Code
Lorsque Genie Code est disponible dans votre workspace, vous pouvez créer un opérateur personnalisé local à partir du canevas Lakeflow Designer :
-
Dans le volet Opérateurs , sélectionnez Créer un opérateur personnalisé .
-
Saisissez une description et, facultativement, un nom. Sélectionnez Generate preview .
Par exemple, entrez la description suivante :
Count the business days between two date columns, excluding weekends. Let me choose the start and end date columns and name the output column.
- Examinez la configuration générée et la fonction Python, puis sélectionnez Approve and create .
Designer stocke la définition de l'opérateur local dans le fichier actuel et l'ajoute au volet Opérateurs . Utilisez le menu des actions de l'opérateur pour modifier ou supprimer la définition. Vous devez supprimer chaque instance de l'opérateur du canevas avant de pouvoir supprimer sa définition.
Choisissez un type d’opérateur partagé
Les opérateurs personnalisés partagés peuvent être de trois types :
python-run-function: Un fichier YAML autonome avec du Python intégré stocké dans le Workspace. Idéal pour les transformations au niveau du DataFrame et les intégrations externes. Les autorisations sont gérées au niveau des fichiers du Workspace.uc-udf: Encapsule une fonction scalaire Unity Catalog. Idéal pour les transformations au niveau des colonnes. L'accès est régi par les autorisations d'Unity Catalog.uc-udtf: Encapsule une fonction table Unity Catalog. Idéal pour les transformations au niveau de la table comme le clustering ML et l'agrégation. L'accès est régi par les autorisations d'Unity Catalog.
Fonctionnalité |
|
|
|
|---|---|---|---|
Exemple de cas d'usage | Transformations de DataFrame, intégrations d'API, notifications e-mail | Calculs au niveau des colonnes (IMC, taux d'intérêt) | Clustering ML, agrégation de lignes |
Entrée | DataFrames | Valeurs uniques | Table entière, ligne par ligne |
Résultat | DataFrames | Valeur unique | Table (plusieurs lignes) |
Requiert la fonction Unity Catalog | Non | Oui | Oui |
Gouvernance de l'accès | Permissions des fichiers Workspace | Autorisations Unity Catalog ( | Autorisations Unity Catalog ( |
Langues prises en charge | Python uniquement | SQL ou Python dans un wrapper SQL. | SQL ou Python dans un wrapper SQL. |
Comment fonctionnent les opérateurs personnalisés
Un opérateur personnalisé partagé se compose de :
- Logique de l'opérateur : Le code qui s'exécute lorsque l'opérateur est exécuté. Il s'agit d'une fonction Python
run()en ligne pour les opérateurspython-run-function, ou d'une fonction Unity Catalog pour les opérateursuc-udfetuc-udtf. Consultez Écrire la logique pour les opérateurs personnalisés de Lakeflow Designer. - Configuration YAML : indique à Lakeflow Designer comment présenter l’opérateur dans l’interface utilisateur, notamment le nom de l’opérateur, sa description, les parameters d’entrée, les widgets d’interface utilisateur et les ports. Tous les types d'opérateurs utilisent le schéma
custom-operator-v0.1.0. Pour un opérateurpython-run-function, le YAML est un fichier de workspace autonome qui contient également le code en ligne. Pour une fonction Unity Catalog, le YAML est intégré dans le corps de la fonction. Voir la référence YAML des opérateurs personnalisés. - Fichier d'enregistrement : Une entrée dans
.custom_operators.yamlqui permet à Lakeflow Designer de détecter l'opérateur. Voir Enregistrer et déployer votre opérateur dans Lakeflow Designer.
Créer un opérateur partagé
Pour créer un opérateur personnalisé partagé de start à Z :
- Choisissez un type d’opérateur. Consultez Choisir un type d’opérateur partagé.
- Écrivez et testez la logique de l'opérateur. Voir Écrire la logique pour les opérateurs personnalisés Lakeflow Designer.
- Décrivez l'opérateur en YAML : son nom, ses propriétés de configuration, ses widgets d'interface utilisateur et ses ports. Voir la référence YAML des opérateurs personnalisés.
- Enregistrer l'opérateur : ajoutez-le à
.custom_operators.yaml. Consultez Enregistrer et déployer votre opérateur sur Lakeflow Designer. - Accorder des autorisations pour que d'autres utilisateurs puissent découvrir et exécuter l'opérateur. Voir Autorisations.
- Utilisez l'opérateur. Il s'affiche dans le panneau Opérateurs de Lakeflow Designer, aux côtés des opérateurs intégrés.
Chaque tutoriel parcourt ces étapes pour un opérateur complet.
Pour créer un opérateur python-run-function partagé sans l’écrire vous-même, décrivez-le à Genie Code dans le panneau latéral. Genie Code vous demande s’il doit enregistrer l’opérateur pour vous ou pour l’ensemble du workspace, puis écrit le fichier YAML et l’enregistre. Vous devez encore accorder des autorisations aux autres utilisateurs.
Enregistrer et déployer votre opérateur dans Lakeflow Designer
Pour que votre opérateur apparaisse dans Lakeflow Designer, enregistrez-le dans un fichier .custom_operators.yaml :
- Niveau Workspace : Placez le fichier à la racine de votre Workspace pour rendre l'opérateur visible à tous les utilisateurs.
- Niveau utilisateur : Placez le fichier dans votre dossier personnel (
/Workspace/Users/<user-name>/.custom_operators.yaml) pour que les opérateurs ne soient visibles que pour vous.
Lakeflow Designer continue de lire les fichiers d'enregistrement nommés .user_defined_operators.yaml, de sorte que les enregistrements existants continuent de fonctionner.
Enregistrez de nouveaux opérateurs dans .custom_operators.yaml. Si le même dossier contient déjà un fichier .user_defined_operators.yaml, déplacez ses entrées vers .custom_operators.yaml. Lorsque les deux fichiers existent dans un dossier, Lakeflow Designer ne lit que .custom_operators.yaml.
La section operators: prend en charge les chemins de fichiers, les références de fonction Unity Catalog et les modèles glob. Vous pouvez mélanger les types d'entrée :
operators:
# File path (python-run-function operators)
- /Workspace/Users/me/operators/my_operator.yaml
# Glob pattern (registers all matching files)
- /Workspace/Users/me/operators/transforms/*.yaml
# UC function reference (uc-udf and uc-udtf operators)
- catalog: my_catalog
schema: my_schema
functionName: my_function
Mettre à jour ou supprimer un opérateur
Lorsque vous modifiez le code d'un opérateur, refresh vos opérateurs personnalisés pour charger la modification. Dans le tab Opérateurs du menu, cliquez sur .
- Si l'opérateur conserve le même
version, l'actualisation charge le code mis à jour. - Si l’opérateur possède un nouveau
version, l’opérateur sur la toile vous invite à le mettre à niveau (ou à conserver la version actuelle) après le refresh.
Pour supprimer un opérateur de Lakeflow Designer, supprimez son entrée de .custom_operators.yaml. Pour les opérateurs uc-udf et uc-udtf, vous pouvez également supprimer la fonction Unity Catalog sous-jacente avec DROP FUNCTION si vous n'en avez plus besoin.
Autorisations
Autorisation | Objectif |
|---|---|
Accès en lecture | Découvrir l'opérateur. |
**Accès en lecture** au fichier YAML ( | Chargez la définition de l'opérateur. |
EXÉCUTER sur la fonction Unity Catalog (opérateurs basés uniquement sur les fonctions Unity Catalog). | Exécutez l'opérateur. |
USE SCHEMA sur le schéma (opérateurs basés uniquement sur les fonctions Unity Catalog). | Accédez au schéma où la fonction est créée. |
Autres autorisations | Selon votre opérateur, les utilisateurs peuvent nécessiter d'autres autorisations. Par exemple, |
Dépannage
Problème | Solutions |
|---|---|
L'opérateur n'apparaît pas dans Lakeflow Designer. | Vérifiez que |
La validation du schéma échoue. | Vérifiez votre YAML par rapport au schéma officiel à |
Autorisation refusée. | Pour les opérateurs basés sur les fonctions Unity Catalog, vérifiez que les utilisateurs disposent de |
| Vérifiez que la signature de la fonction |
UDTF renvoie des types incorrects. | Les types de retour UDTF doivent être explicites ; vous ne pouvez pas référencer les types de colonne d'entrée. |
Ressources supplémentaires
Explorez les tutoriels suivants :
Exemple | Type | Description |
|---|---|---|
| Envoyer les données d'un DataFrame en tant que pièce jointe CSV par e-mail via Gmail. | |
| Calculez les futures valeurs d'investissement à l'aide de la formule des intérêts composés. | |
| Segmenter les données en clusters à l'aide de scikit-learn. | |
| Envoyez des notifications aux Canaux de distribution Slack via l’API Slack. | |
| Opérateur de référence présentant tous les widgets d'interface utilisateur disponibles. |
Pour écrire la logique de l'opérateur, voir Écrire la logique pour les opérateurs personnalisés Lakeflow Designer. Pour obtenir une référence complète sur le schéma YAML, voir Référence YAML de l'opérateur personnalisé.