TiDB (/'taɪdiːbi:/, « Ti » signifie Titanium) est une base de données NewSQL open source qui prend en charge les charges de travail HTAP (Hybrid Transactional and Analytical Processing ). Conçue pour être compatible avec MySQL , elle est développée et supportée principalement par PingCAP et sous licence Apache 2.0. Elle est également disponible en tant que produit payant. TiDB s'est inspirée des documents Spanner et F1 de Google pour sa conception initiale.
Historique des versions
Voir toutes les notes de version de TiDB.
- Le 24 mai 2024, TiDB 8.1 GA est sorti.
- Le 1er décembre 2023, TiDB 7.5 GA est sorti.
- Le 31 mai 2023, TiDB 7.1 GA est sorti.
- Le 7 avril 2022, TiDB 6.0 GA est sorti.
- Le 7 avril 2021, TiDB 5.0 GA est sorti.
- Le 28 mai 2020, TiDB 4.0 GA est sorti.
- Le 28 juin 2019, TiDB 3.0 GA est sorti.
- Le 27 avril 2018, TiDB 2.0 GA est sorti.
- Le 16 octobre 2017, TiDB 1.0 GA est sorti.
Caractéristiques principales
Évolutivité horizontale
TiDB peut étendre la capacité de traitement et de stockage SQL en ajoutant de nouveaux nœuds.
Compatibilité MySQL
TiDB agit comme s'il s'agissait d'un serveur MySQL 8.0 pour les applications. Un utilisateur peut continuer à utiliser toutes les bibliothèques clientes MySQL existantes. Parce que la couche de traitement SQL de TiDB est construite à partir de zéro, et non à partir d'un fork de MySQL.
Transactions distribuées avec une forte cohérence
TiDB fragmente en interne une table en petits morceaux basés sur des plages, appelés « régions ». Chaque région a une taille par défaut d'environ 100 Mo, et TiDB utilise une validation en deux phases en interne pour garantir que les régions sont maintenues de manière cohérente sur le plan transactionnel.
Natif du cloud
TiDB est conçu pour fonctionner dans le cloud. La couche de stockage de TiDB, appelée TiKV, est devenue un projet membre de la Cloud Native Computing Foundation (CNCF) en août 2018, en tant que projet de niveau Sandbox, et est devenue un projet hébergé de niveau incubation en mai 2019. TiKV a obtenu son diplôme de la CNCF en septembre 2020.
HTAP en temps réel
TiDB peut prendre en charge les charges de travail de traitement des transactions en ligne ( OLTP ) et de traitement analytique en ligne ( OLAP ). TiDB dispose de deux moteurs de stockage : TiKV, un rowstore, et TiFlash, un columnstore.
Haute disponibilité
TiDB utilise l' algorithme de consensus Raft pour garantir que les données sont disponibles et répliquées dans tout le stockage dans les groupes Raft. En cas de défaillance, un groupe Raft élira automatiquement un nouveau leader pour le membre défaillant et auto-réparera le cluster TiDB.
Méthodes de déploiement
Kubernetes avec opérateur
TiDB peut être déployé dans un environnement cloud compatible Kubernetes à l'aide de TiDB Operator. Un opérateur est une méthode de packaging, de déploiement et de gestion d'une application Kubernetes. Il est conçu pour exécuter des charges de travail avec état et a été introduit pour la première fois par CoreOS en 2016. TiDB Operator a été développé à l'origine par PingCAP et open source en août 2018. TiDB Operator peut être utilisé pour déployer TiDB sur un ordinateur portable, Google Cloud Platform 's Google Kubernetes Engine, et Amazon Web Services ' Elastic Container Service for Kubernetes.
TiUP
TiDB 4.0 introduit TiUP, un outil d'exploitation et de maintenance de cluster. Il aide les utilisateurs à installer et à configurer rapidement un cluster TiDB avec quelques commandes.
TiDB Ansible
TiDB peut être déployé à l'aide d'Ansible en utilisant un playbook TiDB Ansible (non recommandé).
Docker
Docker peut être utilisé pour déployer TiDB dans un environnement conteneurisé sur plusieurs nœuds et plusieurs machines, et Docker Compose peut être utilisé pour déployer TiDB avec une seule commande à des fins de test.
Outils
TiDB dispose d'une série d'outils open source construits autour de lui pour aider à la réplication et à la migration des données pour les utilisateurs MySQL et MariaDB existants .
Migration de données TiDB (DM)
TiDB Data Migration (DM) est adapté à la réplication de données à partir de tables MySQL ou MariaDB déjà fragmentées vers TiDB. Un cas d'utilisation courant de DM consiste à connecter des tables MySQL ou MariaDB à TiDB, en traitant TiDB presque comme un esclave, puis à exécuter directement des charges de travail analytiques sur ce cluster TiDB en temps quasi réel.
Sauvegarde et restauration
Backup & Restore (BR) est un outil de sauvegarde et de restauration distribué pour les données de cluster TiDB.
Boulettes
Dumpling est un outil d'exportation de données qui exporte les données stockées dans TiDB ou MySQL. Il permet aux utilisateurs de réaliser des sauvegardes complètes logiques ou des vidages complets à partir de TiDB ou MySQL.
TiDB Lightning
TiDB Lightning est un outil qui prend en charge l'importation complète à grande vitesse d'un grand dump MySQL dans un nouveau cluster TiDB. Cet outil est utilisé pour remplir un cluster TiDB initialement vide avec beaucoup de données, afin d'accélérer les tests ou la migration en production. L'amélioration de la vitesse d'importation est obtenue en analysant les instructions SQL en paires clé-valeur, puis en générant directement des fichiers SST (Sorted String Table) dans RocksDB .
TiCDC
TiCDC est un outil de capture de données modifiées qui diffuse les données de TiDB vers d'autres systèmes comme Apache Kafka .
Journal binaire TiDB
TiDB Binlog est un outil utilisé pour collecter les modifications logiques apportées à un cluster TiDB. Il est utilisé pour fournir une sauvegarde et une réplication incrémentielles, soit entre deux clusters TiDB, soit d'un cluster TiDB vers une autre plate-forme en aval.