Aller au contenu principal

Gérer les Branch

Créez et gérez des branches pour prendre en charge différents flux de travail de développement, scénarios de test et environnements de production. Les branches vous permettent de travailler avec des environnements de base de données isolés sans affecter la production.

remarque

À propos des autorisations de gestion des Branch :

  • Pour créer, supprimer ou mettre à jour des branches, vous avez besoin de l'autorisation CAN MANAGE sur le projet. Consultez Gérer les autorisations du projet.
  • Pour créer des bases de données ou des rôles au sein d'une Branch, ou pour afficher et lister les Branch et les Ressources de Branch, vous avez besoin de la permission CAN USE ou CAN MANAGE sur le projet.
  • Pour en savoir plus sur le fonctionnement du Branch, y compris les relations parent-enfant, le stockage en copie sur écriture et les stratégies de Branch, consultez Branch de base de données.

Comprendre les Branch

Branch overview

Une Branch dans Lakebase Postgres est un environnement de base de données indépendant qui partage le stockage avec sa Branch parente via la copie à l'écriture. Les Branch vous permettent de :

  • Créez des environnements de développement et de test isolés
  • Tester des applications avec des jeux de données réalistes
  • Mettre en œuvre les workflows de développement de base de données

Branch types et stratégies

Lors de la création d'une branch, vous pouvez choisir parmi plusieurs options en fonction de vos besoins spécifiques. Chaque option crée une branch avec des caractéristiques de données et des cas d'utilisation différents.

Option

Description

Données et schéma de la Branch

Crée une Branch à partir du dernier état de votre Branch parente. Idéal pour le développement, les tests avec des données actuelles et les branches de fonctionnalités.

Données et schéma de la Branch à partir d'un point antérieur dans le temps

Crée une branch à partir d'un moment précis dans votre fenêtre de restauration. Utile pour la récupération à un moment précis, l'analyse historique et l'interrogation de données à un moment précis. Utilisez le sélecteur de date pour sélectionner le moment précis désiré.

Option

Description

Données et schéma de la Branch

Crée une Branch à partir du dernier état de votre Branch parente. Idéal pour le développement, les tests avec des données actuelles et les branches de fonctionnalités.

Données et schéma de la Branch à partir d'un point antérieur dans le temps

Crée une branch à partir d'un moment précis dans votre fenêtre de restauration. Utile pour la récupération à un moment précis, l'analyse historique et l'interrogation de données à un moment précis. Utilisez le sélecteur de date pour sélectionner le moment précis désiré.

Branch expiration

L’expiration des Branch vous permet de définir des Timestamp de suppression automatique sur les Branch. Lorsqu’une Branch atteint sa date d’expiration, elle est automatiquement supprimée. Cette fonctionnalité permet de gérer les Branch temporaires et de réduire les coûts de stockage.

Pourquoi utiliser l'expiration de Branch

L'expiration de Branch est idéale pour les branches temporaires qui ont des durées de vie prévisibles :

  • Environnements CI/CD : Testez les branches qui doivent être nettoyées après l'achèvement du pipeline.
  • **Développement de fonctionnalités :** Branch de fonctionnalités à durée limitée avec des échéances connues.
  • Tests automatisés : environnements de test éphémères créés par des scripts.
  • Workflows de développement : environnements temporaires qui n'ont pas besoin de persister indéfiniment.

Sans expiration automatique, ces Branch s'accumulent au fil du temps, augmentant les coûts de stockage et le désordre du projet.

astuce

Exemples de durées d'expiration : pipelines CI/CD (de 2 à 4 heures), démos (de 24 à 48 heures), développement de fonctionnalités (de 1 à 7 jours), tests à long terme (30 jours).

Fonctionnement de l'expiration de la branch

L'expiration de Branch utilise un modèle de durée de vie (TTL). Lorsque vous définissez une expiration sur une Branch, vous déterminez combien de temps la Branch doit exister avant sa suppression automatique.

Lorsque vous définissez un Timestamp d'expiration sur une Branch :

  1. Le système stocke à la fois le timestamp d'expiration (la date et l'heure prévues où la branch sera supprimée) et l'intervalle TTL (la durée entre la création ou la mise à jour et l'expiration)
  2. Un processus en arrière-plan surveille les branches et les supprime une fois leur délai d'expiration atteint.
  3. Si vous Reset une Branch à partir de son parent, le compte à rebours TTL redémarre en utilisant l’intervalle d’origine
important

La suppression de la Branch est permanente et ne peut pas être récupérée. Toutes les données associées et les ressources de compute sont également supprimées. Vérifiez attentivement les délais d'expiration avant de les définir.

Branch expiration restrictions

Pour maintenir l'intégrité du système, les Timestamp d'expiration ne peuvent pas être ajoutés à :

  • Branches protégées : impossible d'expirer les branches protégées ou de protéger les branches avec expiration.
  • Branch default : impossible de faire expirer les Branch default ou de définir les Branch expirantes comme default.
  • Branches parentes : impossible d'expirer les branches qui ont des enfants ou de créer des enfants à partir de branches en cours d'expiration.
remarque

Lorsqu'une branch expire et est supprimée, toutes les ressources compute associées sont également supprimées. Assurez-vous que toutes les charges de travail critiques sont migrées avant l'expiration.

Période d'expiration maximale

La période d'expiration maximale est de 30 jours à partir de l'heure actuelle. Si vous avez besoin qu'une Branch persiste plus de 30 jours, vous pouvez mettre à jour le Timestamp d'expiration avant qu'elle n'expire pour prolonger sa durée de vie.

Créer et gérer des Branch

Créer une Branch

Pour créer une Branch :

  1. Accédez à la page Branches de votre projet dans l'application Lakebase.

  2. Cliquez sur Créer une branch et configurez les options de votre branch :

    • Saisissez un nom de Branch (obligatoire)
    • Sélectionnez une option de branche ( Branch data and schema ou Branch data and schema from a past point in time ).
    • En option, définissez une expiration à l'aide de la liste déroulante Suppression automatique : choisissez un préréglage ( Après 1 heure , Après 1 jour ou Après 7 jours ), une valeur personnalisée (jusqu'à 30 jours) ou Jamais pour aucune expiration. Veuillez consulter l'expiration de Branch pour plus de détails.
  3. Cliquez sur **Créer** pour créer la Branch.

Boîte de dialogue Créer une Branch

Afficher les Branches

Afficher dans l'interface utilisateur

Pour afficher toutes les branches de votre projet Lakebase, sélectionnez votre projet dans l'application Lakebase et accédez à Branches dans la navigation de gauche.

Le tableau des Branches affiche des informations clés sur chaque Branch :

Tableau des Branch

La page des branches affiche un tableau complet avec des informations sur chaque branch de votre projet :

Colonne

Description

Branche

Le nom de la Branch. La Branch default montre un libellé "DEFAULT".

Parent

Indique la Branch parente à partir de laquelle cette Branch a été créée, ce qui vous aide à suivre votre hiérarchie de Branches.

Temps actif

Nombre d'heures d'activité du compute de la branch.

Compute principal

Affiche la taille et l'état actuels du compute (tel que IDLE ou ACTIVE) pour le compute de la Branch.

Taille des données

La taille des données de la branch. N'inclut pas l'historique.

Créé par

L'utilisateur ou le service qui a créé la Branch.

Dernière activité

Indique quand le compute de la Branch a été actif pour la dernière fois.

Colonne

Description

Branche

Le nom de la Branch. La Branch default montre un libellé "DEFAULT".

Parent

Indique la Branch parente à partir de laquelle cette Branch a été créée, ce qui vous aide à suivre votre hiérarchie de Branches.

Temps actif

Nombre d'heures d'activité du compute de la branch.

Compute principal

Affiche la taille et l'état actuels du compute (tel que IDLE ou ACTIVE) pour le compute de la Branch.

Taille des données

La taille des données de la branch. N'inclut pas l'historique.

Créé par

L'utilisateur ou le service qui a créé la Branch.

Dernière activité

Indique quand le compute de la Branch a été actif pour la dernière fois.

Cliquez sur n'importe quelle Branch dans le tableau pour afficher la page d'aperçu de la Branch, qui affiche des informations détaillées sur la Branch sélectionnée :

Page d'aperçu de la Branch

La page d'aperçu de la Branch affiche des informations détaillées en haut, y compris les métriques clés et les métadonnées :

Champ

Description

ID

L'identifiant unique de la Branch (avec le préfixe br-)

Date de création :

La date et l'heure de création de la Branch.

Heures de compute

Total d'heures de compute utilisées par la branch

Heures actives

Heures de compute utilisées depuis une date spécifique

Taille des données

La taille des données de la Branch (n'inclut pas l'historique)

Créé par

L'utilisateur qui a créé la Branch

Champ

Description

ID

L'identifiant unique de la Branch (avec le préfixe br-)

Date de création :

La date et l'heure de création de la Branch.

Heures de compute

Total d'heures de compute utilisées par la branch

Heures actives

Heures de compute utilisées depuis une date spécifique

Taille des données

La taille des données de la Branch (n'inclut pas l'historique)

Créé par

L'utilisateur qui a créé la Branch

La page de présentation de la Branch comprend plusieurs tabs pour gérer différents aspects de la Branch :

Tab

Description

compute

Visualisez et gérez le compute principal de la Branch. Consultez Gérer les computes.

Rôles & Bases de données

Gérez les rôles de base de données et les bases de données associées à la Branch. Voir Gérer les bases de données et Gérer les rôles.

Branch enfants

Affichez toutes les Branches qui ont été créées à partir de cette Branch

Tab

Description

compute

Visualisez et gérez le compute principal de la Branch. Consultez Gérer les computes.

Rôles & Bases de données

Gérez les rôles de base de données et les bases de données associées à la Branch. Voir Gérer les bases de données et Gérer les rôles.

Branch enfants

Affichez toutes les Branches qui ont été créées à partir de cette Branch

Obtenir une Branch par programmation

Pour obtenir des détails sur une Branch spécifique à l'aide de l'API Postgres :

Python
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

# Get branch details
branch = w.postgres.get_branch(
name="projects/my-project/branches/development"
)

print(f"Branch: {branch.name}")
print(f"Protected: {branch.status.is_protected}")
print(f"Default: {branch.status.default}")
print(f"State: {branch.status.current_state}")
print(f"Size: {branch.status.logical_size_bytes} bytes")

Lister par programme

Pour lister toutes les branches dans un projet à l’aide de l’API PostgreSQL :

Python
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

# List all branches in a project
project_name = "projects/my-project"
branches = list(w.postgres.list_branches(parent=project_name))

for branch in branches:
print(f"Branch: {branch.name}")
print(f" Default: {branch.status.default}")
print(f" Protected: {branch.status.is_protected}")

Comparer les schémas de Branch

Examinez les différences de schéma entre une Child Branch et sa Parent Branch avant de fusionner les modifications. Le diff de schéma affiche une comparaison SQL DDL côte à côte qui met en évidence les objets de base de données ajoutés, supprimés ou modifiés tels que les tables, les colonnes, les index et les contraintes.

Pour comparer les schémas entre les Branch :

  1. Accédez à une page de présentation de Branch enfant dans l'application Lakebase.

  2. Dans la section **Branch parente**, cliquez sur **Diff de schéma**.

  3. Dans la boîte de dialogue Schema Diff :

    • Base : sélectionnez la Branch de base pour la comparaison (par default, la Branch parente).
    • Base de données : Sélectionnez la base de données à comparer.
    • Comparer : Sélectionnez la branch à comparer avec la base (default à la branch enfant actuelle).
  4. Cliquez sur Comparer .

Comprenez les résultats de la différence

Lorsque les schémas diffèrent, la vue de comparaison affiche une comparaison côte à côte des instructions DDL SQL :

Différence de schéma montrant les différences entre les Branch avec des changements DDL SQL à code couleur

Les lignes rouges indiquent ce qui a été supprimé ou modifié de la Branch de base, les lignes vertes indiquent ce qui a été ajouté ou modifié dans la Branch de comparaison. Le différentiel capture les modifications apportées aux définitions de table, aux colonnes, aux contraintes, aux index et aux autres objets de base de données.

S'il n'y a pas de différences entre les {glossary:Branch}es sélectionnées, vous voyez un message de succès confirmant que les schémas sont synchronisés :

Diff de schéma montrant que les schémas sont synchronisés

Utilisez la différence de schéma pour la validation avant la Merge, le suivi du développement, la détection de la drift et la documentation des changements. Pour voir la différence de schéma dans un workflow de développement complet, consultez le Tutoriel : Branch-based development workflow.

remarque

La différence de schéma compare uniquement le schéma de la base de données (DDL), et non le contenu des données. La comparaison utilise les dernières données disponibles (tête) des deux branches.

Mettre à jour les paramètres de la Branch

Renommer une branch

Le renommage d'une branch n'est actuellement pas pris en charge par l'interface utilisateur ou l'API. L'option Renommer la Branch apparaît dans le menu Icône du menu kebab. de la Branch dans l'interface utilisateur, mais est désactivée.

Définir comme default

Chaque projet Lakebase est créé avec une branch appelée production, mais vous pouvez désigner n'importe quelle branch comme default. La Branch default est exempte de la limite de compute actifs simultanément, garantissant ainsi qu'elle reste disponible à tout moment.

remarque

La définition d'une Branch par default n'est pas prise en charge via l'API.

Pour définir une branch par default :

  1. Accédez à la page Branches de votre projet dans l'application Lakebase.
  2. Cliquez sur le menu Icône du menu kebab. à côté de la branch que vous souhaitez définir par default.
  3. Sélectionnez Set as default et confirmez l'opération.

Définir comme protégé

Les branches protégées vous aident à protéger les branches critiques contre les modifications ou les suppressions accidentelles. Les Branch protégées ne peuvent pas être supprimées, Reset ou archivées en raison de l'inactivité. Les projets avec des Branch protégées et leurs computes associés ne peuvent pas non plus être supprimés.

Pour définir une Branch comme protégée :

  1. Accédez à **Branches** dans l'application Lakebase et sélectionnez la branche que vous souhaitez protéger.
  2. Cliquez sur « Protect » et confirmez votre sélection.

Protéger la Branch

Votre Branch est maintenant désignée comme protégée, comme l'indique l'icône de bouclier qui apparaît à côté du nom de la Branch.

Pour plus de détails sur les branches protégées, y compris la gestion des mots de passe pour les branches enfants, consultez Protected Branch.

Mettre à jour l'expiration

Vous pouvez définir un timestamp d'expiration lors de la création d'une branch ou le mettre à jour ultérieurement.

Lors de la création d'une Branch
  1. Accédez à la page Branches de votre projet dans l'application Lakebase.
  2. Cliquez sur Créer une Branch , saisissez un nom de Branch (obligatoire), configurez les options de votre Branch et sélectionnez une option Suppression automatique (un préréglage, une valeur personnalisée jusqu'à 30 jours, ou Jamais pour aucune expiration).
  3. Cliquez sur Créer .
Mise à jour de l'expiration de la branch

Pour mettre à jour ou supprimer un Timestamp d'expiration sur une Branch existante :

  1. Accédez à la page Branches de votre projet dans l'application Lakebase.
  2. Cliquez sur le Icône du menu kebab. menu à côté de la Branch et sélectionnez **Mettre à jour l'expiration**.
  3. Sélectionnez une nouvelle date et heure ou décochez Expiration de la Branch le pour supprimer l'expiration, puis cliquez sur Enregistrer .

Mise à jour de l'expiration de la Branch

Afficher l'expiration de la Branch

Pour vérifier si une Branch a une date d'expiration définie, accédez à la page Branches de votre projet et cliquez sur la Branch souhaitée. Les informations d'expiration sont affichées dans les détails de la Branch.

Reset de la Branch à partir du parent

Vous pouvez Reset une Branch pour la mettre à jour instantanément avec le schéma et les données les plus récents de sa Branch parente. Cela vous aide à récupérer des problèmes, à start le développement de nouvelles fonctionnalités, ou à maintenir les différentes Branches de votre environnement synchronisées.

Exemple de scénario

Lorsque vous travaillez avec des Branches, vous pourriez vous retrouver dans une situation où vous devez mettre à jour votre Branch de travail avec les dernières données de votre Branch parente.

Par exemple, disons que vous avez deux branches enfants staging et development bifurquées de votre Branch production. Vous avez travaillé sur la Branch development et constatez qu'elle est maintenant trop obsolète par rapport à production.

Vous n'avez aucune modification de schéma dans development à prendre en compte ou à conserver ; vous voulez juste un refresh rapide des données. Vous pouvez effectuer un Reset propre et instantané aux dernières données du parent en une seule Opération, ce qui vous évite la complication de créer et de restaurer manuellement des Branches.

Comment fonctionne le Reset à partir du parent

Lorsque vous Reset une branch vers son parent, les données et le schéma sont entièrement remplacés par les données et le schéma les plus récents de son parent.

Points clés :

  • Vous ne pouvez Reset une Branch qu'avec les données les plus récentes de son parent. Les Reset à un point dans le temps basés sur le Timestamp sont possibles en utilisant la restauration à un point dans le temps, une fonctionnalité similaire avec quelques différences : la restauration à un point dans le temps crée une nouvelle Branch et est davantage destinée à la récupération de données qu'au workflow de développement.
  • Ce Reset est un écrasement complet, pas un refresh ou un Merge. Toutes les modifications locales apportées à la Branch enfant sont perdues lors de cette Reset.
  • Les connexions existantes sont temporairement interrompues pendant le Reset. Cependant, vos détails de connexion ne changent pas. Toutes les connexions sont rétablies dès que le Reset est effectué.
  • Les Branches racines (comme la Branch production de votre projet) ne peuvent pas être Resets car elles n'ont pas de Branch parente vers laquelle se Reset.

Reset une Branch à partir de son parent

To Reset a Branch to its parent:

  1. Accédez à la page Branches de votre projet dans l'application Lakebase.
  2. Cliquez sur le menu Icône du menu kebab. à côté de la Branch que vous souhaitez Reset et sélectionnez Reset à partir du parent .
  3. Confirmez l'opération de Reset.

Branch Reset from parent

remarque

Si la Branch a ses propres Branches enfants, le Reset est bloqué. Vous devez d'abord supprimer les Branch enfants avant de pouvoir Reset la Branch parente.

Supprimer une Branch

important

La suppression d'une Branch est une action permanente qui ne peut pas être annulée. La suppression d'une Branch supprime également :

  • Toutes les bases de données qui appartiennent à la branch
  • Tous les rôles associés à la Branch
  • Les Ressources de compute associées à la Branch
  • Toutes les données et les modifications spécifiques à cette Branch

Vous ne pouvez pas supprimer une Branch qui contient des Branches enfants. Les branches enfants doivent être supprimées en premier.

Pour supprimer une Branch :

  1. Accédez à la page Branches de votre projet dans l'application Lakebase.
  2. Cliquez sur le menu Icône du menu kebab. à côté de la Branch que vous souhaitez supprimer et sélectionnez Supprimer la Branch .
  3. Saisissez le nom de la Branch pour confirmer la suppression et cliquez sur Supprimer .

Limite des branches désarchivées

La limite des Branches non archivées plafonne le nombre de Branches pouvant rester simultanément dans un état actif (non archivé). Lorsque les Branches sont inactives pendant une période prolongée, elles peuvent être automatiquement archivées afin d'optimiser l'utilisation des Ressources. La limite est de 10 Branch non archivées par projet.

Les Branches archivées peuvent être désarchivées si nécessaire, mais le nombre total de Branches actives non archivées ne peut pas dépasser cette limite.

Important : Les branches protégées et la branche default sont exemptes d'archivage automatique et restent disponibles en permanence.