Transcript
00:00:00votre code utilise git, mais vos données ont quoi exactement ? C'est ça le problème : un mauvais CSV, une ligne de configuration,
00:00:07une modification dans un tableur, et voilà votre application en panne. Pas de diff propre, pas de branche, pas de pull request,
00:00:13pas de retour en arrière évident. Voici Dolt : c'est une base de données SQL qui fonctionne comme git. Vous pouvez créer des branches de tables,
00:00:20modifier des lignes, comparer les changements, les valider et les fusionner. Un vrai contrôle de version pour de vraies données. Je vais
00:00:26vous montrer comment mettre ça en place en quelques minutes.
00:00:35On sait que la plupart du temps, les bases de données sont excellentes dans leur rôle : elles stockent des données, elles vous permettent
00:00:41d'interroger avec SQL. Mais elles ne sont pas géniales pour les flux de travail que nous utilisons au quotidien, comme la création de branches,
00:00:47la révision, la comparaison, la fusion, le retour en arrière, savoir exactement qui a modifié quoi. Alors, souvent, on choisit
00:00:54l'une des deux mauvaises options. La première : vous gardez les données dans une vraie base de données, vous avez les index SQL,
00:01:00les contraintes et la structure, mais quand les données changent, le processus de révision n'est généralement pas au point.
00:01:07L'option deux : on met les données dans un CSV, un JSON ou un YAML pour que git puisse les suivre. Maintenant, vous avez
00:01:13des commits et des pull requests, mais vous perdez ce qui fait la force des bases de données : pas de vrai SQL, des contraintes
00:01:20faibles, des diffs et des fusions pénibles. Et quand quelqu'un demande qui a changé cet enregistrement, la réponse
00:01:27est essentiellement : quelqu'un avec un accès à la base de données. Ce n'est pas un vrai
00:01:32flux de travail. Mais imaginez plutôt ceci : et si vous pouviez exécuter une commande de branche, "dolt branch fix this data",
00:01:39dolt diff, dolt commit, dolt merge ? Ce sont des commandes que nous utilisons déjà, mais nous les utilisons
00:01:46sur vos vraies tables de base de données. C'est ce que fait Dolt : c'est du contrôle de version pour nos bases de données.
00:01:52Si vous aimez les outils de développement pour accélérer votre travail, abonnez-vous, nous publions des vidéos
00:01:57constamment. Assez parlé, nous avons des options. Il y a Dolt pour SQLite, Postgres, et bien d'autres. Faisons la
00:02:04version rapide. Je vais naviguer ici et cloner la base "dolt hub" de démarrage depuis GitHub.
00:02:10Je vais dans le dossier. D'abord, cloner une base de données Dolt publique et exécuter "dolt sql". Maintenant, nous sommes
00:02:18dans le SQL, donc je peux exécuter des commandes SQL ici dans le terminal. OK, cool, je vais faire un petit changement
00:02:27et nous allons exécuter "dolt diff". C'est le moment de se dire : "Attends, que vient-il de se passer ici ?"
00:02:34Dolt ne dit pas juste qu'un fichier a changé, il montre la différence réelle dans la table : quelle ligne a changé, quelle colonne
00:02:43a changé, l'ancienne valeur et la nouvelle valeur. Je peux voir ça ici. Maintenant, on peut valider ça avec "dolt add",
00:02:50puis je peux exécuter "dolt commit -m" et ajouter un commentaire. Je peux créer une branche entière de ceci en utilisant
00:02:56"checkout -b" suivi du nom de votre branche. Si je fais un autre changement par-dessus, je peux
00:03:03le comparer avec "dolt diff", je peux le valider à nouveau, puis l'ajouter. Maintenant, si je reviens et
00:03:10que je fusionne, je peux repasser sur "main" et exécuter "dolt merge". Toutes ces commandes que nous connaissons déjà, nous les appliquons
00:03:17maintenant avec SQL. À la fin, vous pouvez exécuter "dolt log". Désormais, votre base de données a un historique de commits, pas une sauvegarde,
00:03:24pas un fichier dump, ni un simple log de modifications de tableur. Une vraie base de données de version, c'est toute l'idée.
00:03:31Des flux de travail git, mais pour des tables. Maintenant, prenons du recul et voyons comment tout cela fonctionne.
00:03:37Au début, Dolt semble familier, et c'est voulu. Vous avez des commandes comme "dolt status", "diff", "add", "commit", "branch",
00:03:44et "checkout". Si vous connaissez git, votre cerveau comprend déjà la forme de tout ce flux de travail.
00:03:48L'objectif de Dolt n'est pas de suivre des fichiers, mais des tables relationnelles. Vous pouvez l'utiliser en
00:03:55ligne de commande ou exécuter "dolt sql-server". En faisant cela, vous pouvez vous y connecter en utilisant des clients compatibles MySQL,
00:04:01des ORM, des outils BI ou du code applicatif. Ainsi, votre application peut traiter Dolt comme une base de données SQL normale, mais vous
00:04:09obtenez le contrôle de version pour les données. C'est la partie importante : vous ne choisissez pas entre une vraie
00:04:14base de données et un flux de travail git, vous obtenez les deux au même endroit. Dolt utilise quelque chose appelé "crawly tree".
00:04:22La version simple de "crawly tree" ici est qu'une base de données normale utilise des structures en arbre pour rendre les lectures et les écritures
00:04:29rapides. Dolt utilise une structure en arbre qui est également douée pour le versionnage. Donc, au lieu de copier toute la
00:04:36base de données à chaque commit, Dolt peut partager les parties qui sont restées les mêmes et suivre celles qui
00:04:42ont réellement changé. Maintenant, nous ne demandons pas seulement : "Quelle est la valeur actuelle ?" Nous pouvons demander
00:04:47des choses comme : "À quoi ressemblait cette ligne avant que quelque chose n'arrive ?" C'est le point majeur.
00:04:52Parce que quand quelque chose casse, on ne veut pas avoir à deviner. Vous voulez inspecter l'historique.
00:04:56Je peux maintenant passer en revue le diff, voir le changement, et si nécessaire, annuler. C'est du contrôle de version
00:05:02pour des données structurées. Vos branches, commits, diffs, fusions, historiques pour les lignes et colonnes. Alors, où Dolt
00:05:10s'intègre-t-il réellement dans le flux de travail ? Parce que tout cela semble génial, mais c'est là que ça peut devenir
00:05:15confus. Vous pouvez entendre "git pour les données" et vous pensez probablement : "D'accord, mais nous avons déjà
00:05:21des outils pour ça." Oui, nous avons des outils, mais ils résolvent des problèmes différents. Vous pouvez mettre des CSV
00:05:28et des fichiers JSON dans git, ça marche quand les données sont petites et simples. Mais git ne comprend pas votre schéma,
00:05:35il ne connaît pas votre clé primaire et n'appliquera pas de contraintes. Il ne peut pas exécuter de jointures sur vos CSV
00:05:41sauf si vous ajoutez d'autres outils. Git vous donne du contrôle de version, mais ce n'est pas vraiment pour une base de données.
00:05:47Ensuite, il y a DVC. DVC est excellent pour les flux de travail ML, en particulier les grands ensembles de données et les artefacts de modèle, mais
00:05:53il n'essaie pas d'être votre base de données relationnelle en direct. Oui, vous avez LakeFS qui apporte des idées de type git au
00:06:00stockage objet et aux lacs de données, très utile à l'échelle du lac, mais c'est encore une couche différente. Ce n'est
00:06:07pas la même chose que de dire : "Crée une branche de la table SQL, change quelques lignes, exécute un diff et fusionne le tout."
00:06:13Les bases de données traditionnelles ont aussi des outils d'historique : tables temporelles, journaux d'audit, CDC, mais la plupart d'entre eux
00:06:20ne semblent pas être un flux de travail normal. Ils ne vous donnent pas cette boucle propre : branche, modification, diff, fusion, annulation.
00:06:27Je ne suggérerais pas d'intégrer aveuglément Dolt dans chaque système de production, ce n'est pas le but. Le but est le suivant :
00:06:33si votre travail implique des données structurées qui changent avec le temps et que ces changements peuvent casser des choses,
00:06:40je pense que Dolt mérite d'être essayé. La première fois qu'il vous sauve d'un mauvais changement de données silencieux, le flux de travail
00:06:46commence à sembler plus évident. Nous avons git, pourquoi n'avons-nous pas quelque chose pour les données ? Maintenant, c'est un peu le cas. Si
00:06:52vous appréciez les outils comme celui-ci, assurez-vous de vous abonner à la chaîne "better stack". On se voit dans une autre
00:06:57vidéo.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video