Activer le mode de publication « default » dans un pipeline
Migrez les pipelines qui utilisent le schéma virtuel LIVE (le mode de publication hérité) vers le mode de publication default.
Le mode de publication default permet à un seul pipeline d'inclure des données dans plusieurs catalogues et schémas, et inclut une syntaxe simplifiée pour travailler avec des tables et des vues au sein du pipeline. Le mode de publication hérité est considéré comme obsolète, et Databricks recommande de migrer tous les pipelines vers le mode de publication default.
La migration affecte les métadonnées du pipeline, mais ne lit, ne déplace ni n'écrit dans aucun jeu de données.
Vérifier si votre pipeline utilise le mode de publication hérité
Les pipelines en mode de publication hérités sont indiqués de la manière suivante :
- Champ Résumé de l'interface utilisateur des paramètres du Lakeflow pipeline.
- Le dernier
create_updatedu Logs d'événements de pipeline LakeFlow contienteffective_publishing_mode. - La réponse
GET /api/2.0/pipelines/{pipeline_id}de l’API pipelines contienteffectivePublishingMode
Considérations pour la migration vers le mode de publication default
Les remarques suivantes sont utiles à garder à l'esprit pendant la migration :
- La migration vers le mode de publication default n'est pas prise en charge à l'aide des Declarative Automation Bundles.
- Une fois qu'un pipeline est migré vers le mode de publication default, il ne peut pas être migré à nouveau pour utiliser le schéma virtuel
LIVE. - Vous devrez peut-être préparer votre pipeline pour la migration en traitant les modifications de syntaxe entre les modes de publication hérités et par default. La plupart des pipelines ne nécessitent pas de modifications. Pour plus de détails, consultez Préparer les pipelines pour la migration.
- La migration affecte uniquement les métadonnées. Il ne lit pas, ne déplace pas et n'écrit dans aucun dataset.
- Dans le mode de publication default, les vues matérialisées et les tables de streaming ne peuvent pas être déplacées entre les schémas après leur création.
- Le mode de publication default nécessite Databricks CLI version v0.230.0 ou une version ultérieure. Consultez Installer ou mettre à jour la Databricks CLI.
Migrer vers le mode de publication par default
Utilisez les étapes suivantes pour migrer vers le mode de publication default.
-
Cliquez sur **Jobs & Pipelines** dans la barre latérale gauche de votre workspace.
-
Cliquez sur le nom du pipeline que vous souhaitez migrer dans la liste.
-
Mettez les mises à jour en pause et laissez tout pipeline en cours d'exécution s'arrêter.
Au moins une mise à jour doit avoir été exécutée au cours des 60 derniers jours avant de terminer la migration. Si le pipeline est déclenché ou était déjà en pause, exécutez manuellement une mise à jour unique. Si le pipeline est continu, assurez-vous qu'il passe à l'état
RUNNING(ou qu'il y est déjà), puis mettez-le en pause. -
En option, préparez tout code qui pourrait avoir besoin d'être migré.
Le mode de publication default est généralement rétrocompatible avec le mode de publication hérité, mais assurez-vous de préparer votre pipeline pour la migration afin que votre code de pipeline s'exécute correctement après la mise à niveau. La plupart des pipelines n'ont pas besoin de modifications.
-
Ajoutez une configuration dans les Paramètres du pipeline :
pipelines.enableDPMForExistingPipeline, défini surtrue. -
start a manual update, and let the update complete.
-
En option, dans les Paramètres du pipeline, supprimez la configuration du pipeline pour
pipelines.enableDPMForExistingPipeline. Ce paramètre est utilisé pour la migration et n'est plus nécessaire une fois la migration terminée. -
Si nécessaire, mettez à jour la planification et activez les mises à jour du pipeline.
Le mode de publication default est maintenant activé sur le pipeline. Si vous rencontrez des problèmes, utilisez la section suivante pour vous aider à les résoudre. Si les problèmes persistent, veuillez contacter votre responsable de compte Databricks.
Préparez les pipelines pour la migration
Le mode de publication default est généralement rétrocompatible avec le mode de publication hérité, mais certains pipelines pourraient nécessiter des modifications pour fonctionner. Les notes suivantes peuvent vous aider à préparer vos pipelines pour la migration.
Le mot-clé LIVE
Le mot-clé LIVE en mode de publication hérité qualifie le catalogue et le schéma de l'objet avec les default du pipeline. Le mode de publication par default n’utilise plus le mot-clé LIVE pour qualifier les tables ou les vues. Le mot-clé LIVE est ignoré et remplacé par le catalogue et le schéma default du pipeline. Généralement, cela utilise le même catalogue et schéma par default que le mot-clé LIVE en mode de publication hérité, à moins que vous n'ajoutiez ultérieurement des commandes USE CATALOG ou USE SCHEMA à votre pipeline.
En mode de publication hérité, les références de table et de vue partiellement qualifiées sans le mot-clé LIVE (tel que table1) utilisent les default de Spark. En mode de publication par default, les références partiellement qualifiées utilisent les valeurs par default du pipeline. Si vos defaults Spark et vos pipelines sont différents, vous devez qualifier entièrement le nom de toute table ou vue partiellement qualifiée avant la migration.
Après la migration, vous pouvez supprimer le mot-clé LIVE de votre code. Vous pouvez éventuellement remplacer le mot-clé LIVE par des noms de table ou de vue entièrement qualifiés.
Références de colonne avec le mot-clé LIVE
Vous ne pouvez pas utiliser le mot-clé LIVE pour définir les colonnes en mode de publication default. Par exemple, ce code :
CREATE OR REPLACE MATERIALIZED VIEW target AS SELECT LIVE.source.id FROM LIVE.source;
devrait être remplacé par ce qui suit avant la migration :
CREATE OR REPLACE MATERIALIZED VIEW target AS SELECT source.id FROM LIVE.source;
Cette version fonctionne dans les deux modes de publication.
Modifications apportées à l'événement flow_progress
La migration de votre pipeline modifie le nom du dataset pour l'événement flow_progress dans le log des événements. Si vous avez des queries sur le log des événements de ce pipeline, vous pourriez avoir besoin de mettre à jour votre query.
En mode de publication hérité, le nom du dataset est le nom table. Dans le mode de publication par défaut, le nom du jeu de données est le nom complet catalog.schema.table.
Pour plus de détails sur l'utilisation du log d'événements, consultez Log d'événements du pipeline.
Avertissements vs erreurs
Certains avertissements du mode de publication hérité ont été remplacés par des erreurs dans le mode de publication default.
Références automatiques Une référence automatique (ou référence circulaire) n'est pas autorisée en mode de publication default (et avait des résultats indéfinis en mode de publication hérité). Par exemple :
CREATE OR REPLACE MATERIALIZED VIEW table1 AS SELECT * FROM target_catalog.target_schema.table1;
générerait un avertissement en mode de publication hérité (et aurait des résultats non définis). En mode de publication default, cela génère une erreur.
Noms en plusieurs parties Vous ne pouvez pas utiliser de points dans les noms en mode de publication default (noms en plusieurs parties). Par exemple, le code Python suivant est valide en mode hérité, mais pas en mode default :
@dlt.view(name=”a.b.c”)
def transform():
return …
Avant la migration, renommez la table avec un nom qui ne contient pas de caractère point.
Cet exemple utilise également une syntaxe plus ancienne, @dlt.view. Databricks recommande d'utiliser @dp.temporary_view() pour les pipelines. Pour plus d'information, consultez la référence du langage Python pour les LakeFlow Pipelines.
Dépannage
Le tableau suivant décrit les erreurs pouvant survenir lors de la migration depuis le mode de publication hérité.
Erreur | Description |
|---|---|
| La migration n'est pas prise en charge pour les pipelines Hive metastore. Comme alternative, vous pourriez être en mesure de cloner le pipeline de Hive metastore vers Unity Catalog avant la migration. Voir Créer un pipeline Unity Catalog en clonant un pipeline Hive metastore. |
| Cette erreur indique que vous n'avez pas exécuté de mise à jour récente avant d'ajouter la configuration |
| Cette erreur indique que votre code de pipeline n'est pas entièrement compatible avec le mode de publication default. Consultez Préparer les pipelines pour la migration. |