Beaucoup de livres traitent des bases de données. Lorsque vous travaillez avec les bases de données il est important de se répéter qu’une base de données c’est aussi agile que du code ! Et il y a un livre pour ça “Refactoring Database” de Pramod Sadalage, consultant chez ThoughtWorks.
Pour gérer l’évolution des bases de données on retrouve les outils comme Flyway ou Liquidbase dans l’environnement Java. Aujourd’hui des solutions qui couvrent l’évolution des bases de données existent et ce avec d’autres langages de programmation que Java. Ici, nous nous arrêtons sur Bytebase.
Bytebase
Bytebase est une plateforme de gestion de base de données collaborative open source conçue pour simplifier le processus de développement et d’administration de bases de données. Vous pouvez utiliser Bytebase en tant que développeur, administrateur de base de données ou membre d’une équipe métier. Il fournit un hub centralisé pour une collaboration efficace, facilitant la conception, la documentation et le suivi de l’évolution de vos bases de données.
Base de données supportées
Bytebase supporte toutes ces bases de données :
- Base de données
- MySQL, MariaDB, Aurora MySQL,
- PostgreSQL, Aurora PostgreSQL, AlloyDB
- Oracle
- Microsoft SQL Server
- TiDB
- OceanBase
- CockroachDB
- Spanner
- NoSQL
- MongoDB
- Redis
- DocumentDB
- DynamoDB
- Cosmos DB
- Data Warehouse
- Snowflake
- BigQuery
- Redshift
- Hive
- ClickHouse
- Databricks
- StarRocks
- Autres
- Elasticsearch
- RisingWave
Les fonctionnalités clés de Bytebase
CI/CD pour les bases de données, gestion des évolutions et automatisation des modifications
Comme la révision de code, Bytebase rationalise le processus des évolutions bases de données. Il prend en charge les modifications de base de données avec un cycle de vie qui suit les étapes :
- demandée,
- révisée,
- approuvée,
- déployée depuis l’environnement de développement jusqu’à l’environnement de production.
Il prend également en charge la révision SQL automatisée et GitOps (base de données en tant que code).
Éditeur SQL
Un éditeur SQL Web pour interroger et exporter des données. Les administrateurs de bases de données n’ont plus besoin de divulguer des informations d’identification de base de données sensibles lorsque les développeurs doivent accéder aux données.
Autorisation de base de données
Bytebase fournit une suite de fonctionnalités permettant aux organisations d’appliquer des politiques de sécurité des données, d’éviter les fuites de données et de se conformer à la conformité.
Bien noter qu’un seul outil pour accéder à l’ensemble des données organisées en projet.
Masquage dynamique des données
Bytebase fournit une politique de masquage à plusieurs niveaux basée sur les rôles avec un flux de travail d’approbation pour accorder un accès aux données non masquées.
Restauration en 1 clic
Bytebase fournit une restauration des données simplifiée en 1 clic.
Modification et requête par lots
Bytebase vous permet d’appliquer des changements sur une collection de bases de données en une fois. Il vous permet également d’émettre une seule requête sur plusieurs bases de données.
API
L’interface graphique Bytebase est basée sur l’API REST. On peut exploiter cette API pour automatiser des tâches Bytebase.
Cet article a pour but d’expliquer comment gérer l’évolution des modifications des bases de données.
Gérer les évolutions des bases de données avec Bytebase
Il ne s’agit pas ici de revenir sur la création d’un projet, ou les premiers paramétrages de Bytebase.
Pour mettre en œuvre le processus DataOps (GitOps ici), il faut tout d’abord connecter un référentiel Git. Par la suite un flux de collaboration entre les développeurs et les administrateurs est mis en place. Le suivi des versions de la base de données devient ainsi réalité. Chaque évolution est suivie telle des demandes de support.
Connecter Bytebase et Git
Bytebase vous permet de vous connecter à votre gestionnaire de sources. Il pourra ainsi aller lire les sources SQL qui viennent gérer l’évolution de votre base de données.
Sur vos projets vous devez aussi positionner spécifiquement le référentiel, la branche, le dossier à monitorer.
Notez qu’il faut que vous ayez au moins deux branches. En effet, Bytebase capte uniquement les “Merges Request”.
La demande est créée dans Bytebase
La demande permet aux administrateurs de vérifier la demande d’évolution et d’appliquer ou non les changements. Bien sûr, les administrateurs dans Bytebase ont aussi une vision fonctionnelle des bases de données. Ils ont alors un dialogue juste, éclairé et équilibré avec les développeurs.
Suivis de changements
Avec l’ensemble des changements poussés via votre gestionnaire de sources vous aurez au fur et à mesure toutes ces évolutions dans Bytebase.
Suivis des versions
Tout comme dans Liquidbase et Flyway vous devez respecter un nommage de vos fichiers de commandes SQL.
Le nommage par défaut prend la forme suivante <<version>>_<<description>> par exemple 202401010000_create_hello_table.sql.
Cas d’usage
Gestion des évolutions de bases de données, développement d’applications
L’intégration de Bytebase avec les gestionnaires de sources, Git, facilite la communication entre les développeurs, les administrateurs, les administrateurs des bases de données et ce dans la philosophie DevOPS.
Par rapport à Liquidbase ou Flyway on a aussi bien la traçabilité que l’aspect visuel. Avec une gestion rigoureuse des évolutions il est vraiment possible de gérer tout le cycle de vie de la base de données.
Gestion de la qualité de données
Les bases de données opérationnelles ne sont malheureusement pas d’une qualité irréprochable. Il convient, par contre, d’améliorer cette qualité de données en continu. Cela passe par exemple par une série de traitements, ici, en SQL. Ainsi, l’ensemble des corrections s’organisent en tant que fichiers SQL. Leur suivi est réalisé via Git. Le référentiel de code est lui monitoré par Bytebase qui récupère ces fichiers qui améliorent la base de données et sa qualité.
Les différentes demandes d’amélioration de qualité de données s’articulent au sein de Bytebase. Les administrateurs de données valident au fur et à mesure ces traitements.
Perspectives
Refactoring Database de Pramod Sadalage est un ouvrage très important pour qui s’intéresse aux base de données et à une vision agile de leur évolution et de leur maintenance. Il y a la pratique d’une méthologie et sa mise en œuvre. Ce qu’il faut bien noter ici c’est que toutes les organisations, toute maintenance d’une application métier, toute gestion d’un data warehouse, et même aujourd’hui avec les data lakehouse, il est nécessaire de suivre les évolutions des tables, l’évolution de leurs schémas. Et c’est là que Bytebase prend toute sa place. Il faut sans doute le coup de main. Mais compte-tenu de la profondeur de l’historique des suivis que l’on peut y retrouver sur les changements dans les bases de données, Bytebase est un outil unique. Contactez-nous ! Toute l’équipe de Synaltic sera ravi de discuter avec vous de Bytebase et de data lakehouse.
Bytebase constitue très clairement une solution qui peut être un bonne manière de commencer à adresser la gouvernance de données au sein des organisations et ce quelque soit leur taille.
En matière de gouvernance de données et de gestion de l’évolution des schéma de données Apache Iceberg connaît un vrai essor. Bytebase modernise la gestion des bases de données relationnelles en automatisant et sécurisant l’évolution des schémas, tandis qu’Apache Iceberg révolutionne la gestion de données analytiques grâce à son support des transactions, du time travel et de l’évolution de schéma. En résumé, Bytebase répond aux besoins opérationnels (fiabilité et conformité), Iceberg s’impose pour l’analyse à grande échelle. Ensemble, ils illustrent l’évolution des bases vers plus d’agilité et de gouvernance, que ce soit pour les transactions ou l’analytique.