TiDB
Utvecklare | PingCAP Inc. |
---|---|
Initial release | 15 oktober 2017 |
Stabil frisättning | |
Förvar | |
Skrivet i | Go (TiDB), Rust (TiKV) |
Tillgänglig i | engelska, kinesiska |
Typ | NewSQL |
Licens | Apache 2.0 |
Hemsida |
|
TiDB (/'taɪdiːbi:/, "Ti" står för Titanium) är en NewSQL- databas med öppen källkod som stöder HTAP -arbetsbelastningar (Hybrid Transactional and Analytical Processing). Den är MySQL- kompatibel och kan ge horisontell skalbarhet, stark konsekvens och hög tillgänglighet. Det utvecklas och stöds främst av PingCAP , Inc. och licensieras under Apache 2.0. TiDB hämtade sin första designinspiration från Googles Spanner- och F1-papper.
Releasehistorik
Se alla TiDB release notes .
- Den 7 april 2022 släpptes TiDB 6.0 GA .
- Den 7 april 2021 släpptes TiDB 5.0 GA .
- Den 28 maj 2020 släpptes TiDB 4.0 GA . Dess nyckelfunktioner inkluderar: TiFlash , TiDB Dashboard (experimentell), TiUP , pessimistiska transaktioner , kaskadplaceringsregler (experimentell), elastisk schemaläggning (experimentell), stora transaktioner, nya SQL-funktioner , skiftlägesokänslig och accentokänslig `utf8mb4_general_ci` och `utf8mb4_general_ci` utf8_general_ci`-kollationer, förbättrad krypterad kommunikation, Transparent Data Encryption (TDE), Backup & Restore , Coprocessor Cache (experimentell), Follower Read och TiCDC (experimentell).
- Den 28 juni 2019 släpptes TiDB 3.0 GA .
- Den 27 april 2018 släpptes TiDB 2.0 GA .
- Den 16 oktober 2017 släpptes TiDB 1.0 GA .
Huvuddrag
Horisontell skalbarhet
TiDB kan utöka både SQL-bearbetnings- och lagringskapacitet genom att lägga till nya noder. Detta gör skalning av infrastrukturkapacitet enklare och mer flexibel jämfört med traditionella relationsdatabaser som endast skalas vertikalt.
MySQL-kompatibilitet
TiDB fungerar som om det är en MySQL 5.7-server för applikationer. En användare kan fortsätta att använda alla befintliga MySQL-klientbibliotek. Eftersom TiDBs SQL-bearbetningslager är byggt från grunden, inte en MySQL-gaffel, är dess kompatibilitet inte 100 %, och det finns kända beteendeskillnader mellan MySQL och TiDB.
Distribuerade transaktioner med stark konsekvens
TiDB skär internt en tabell i små intervallbaserade bitar som kallas "Regioner". Varje region har som standard cirka 100 MB i storlek, och TiDB använder en tvåfasig commit internt för att säkerställa att regioner upprätthålls på ett transaktionellt konsekvent sätt.
Molninfödd
TiDB är designat för att fungera i molnet för att göra distribution, provisionering, drift och underhåll flexibelt. Lagringsskiktet i TiDB, kallat TiKV, blev ett Cloud Native Computing Foundation (CNCF)-medlemsprojekt i augusti 2018, som ett projekt på sandlådenivå, och blev ett värdprojekt på inkubationsnivå i maj 2019. TiKV tog examen från CNCF i september 2020. Arkitekturen för TiDB-plattformen tillåter också att SQL-bearbetning och lagring skalas oberoende av varandra.
HTAP i realtid
TiDB kan stödja både online transaktionsbearbetning ( OLTP ) och online analytisk bearbetning ( OLAP ) arbetsbelastningar. TiDB har två lagringsmotorer: TiKV, en radbutik och TiFlash, en kolumnbutik. Data kan replikeras från TiKV till TiFlash i realtid för att säkerställa att TiFlash bearbetar den senaste datan.
Hög tillgänglighet
TiDB använder Raft-konsensusalgoritmen för att säkerställa att data är högst tillgänglig och säkert replikeras genom hela lagringen i Raft-grupper. I händelse av misslyckande kommer en flottgrupp automatiskt att välja en ny ledare för den misslyckade medlemmen och självläka TiDB-klustret utan någon manuell inblandning. Misslyckande och självläkande operationer är transparenta för applikationerna.
Implementeringsmetoder
Kubernetes med operatör
TiDB kan distribueras i en Kubernetes -aktiverad molnmiljö genom att använda TiDB Operator. En operatör är en metod för att paketera, distribuera och hantera en Kubernetes-applikation. Den är designad för att köra tillståndsfulla arbetsbelastningar och introducerades först av CoreOS 2016. TiDB Operator utvecklades ursprungligen av PingCAP och öppnades i augusti 2018. TiDB Operator kan användas för att distribuera TiDB på en bärbar dator, Google Cloud Platforms Google Kubernetes Engine och Amazon Web Services Elastic Container Service för Kubernetes.
TiUP
TiDB 4.0 introducerar TiUP , ett klusterdrift- och underhållsverktyg. Det hjälper användare att snabbt installera och konfigurera ett TiDB-kluster med några få kommandon.
TiDB Ansible
TiDB kan distribueras med Ansible genom att använda en TiDB Ansible-spelbok (rekommenderas inte).
Hamnarbetare
Docker kan användas för att distribuera TiDB i en containermiljö på flera noder och flera maskiner, och Docker Compose kan användas för att distribuera TiDB med ett enda kommando för teständamål.
Verktyg
TiDB har en serie öppen källkodsverktyg byggda runt det för att hjälpa till med datareplikering och migrering för befintliga MySQL- och MariaDB- användare.
TiDB Data Migration (DM)
TiDB Data Migration (DM) lämpar sig för att replikera data från redan fragmenterade MySQL- eller MariaDB-tabeller till TiDB. Ett vanligt användningsfall för DM är att ansluta MySQL- eller MariaDB-tabeller till TiDB, behandla TiDB nästan som en slav, och sedan köra analytiska arbetsbelastningar direkt på detta TiDB-kluster i nästan realtid.
Säkerhetskopiera och återställa
Backup & Restore (BR) är ett distribuerat verktyg för säkerhetskopiering och återställning för TiDB-klusterdata. Det erbjuder höga säkerhets- och återställningshastigheter för storskaliga TiDB-kluster.
Klimp
Dumpling är ett dataexportverktyg som exporterar data lagrad i TiDB eller MySQL. Det låter användare göra logiska fullständiga säkerhetskopior eller fullständiga dumpningar från TiDB eller MySQL.
TiDB Lightning
TiDB Lightning är ett verktyg som stöder höghastighets-fullimport av en stor MySQL-dump till ett nytt TiDB-kluster, vilket ger en snabbare importupplevelse än att köra varje SQL-sats. Detta verktyg används för att snabbt fylla ett initialt tomt TiDB-kluster med mycket data, för att påskynda testning eller produktionsmigrering. Förbättringen av importhastigheten uppnås genom att analysera SQL-satser till nyckel-värdepar och sedan generera sorterade strängtabeller (SST) direkt till RocksDB .
TiDB Binlog
TiDB Binlog är ett verktyg som används för att samla in de logiska ändringar som gjorts i ett TiDB-kluster. Den används för att tillhandahålla inkrementell säkerhetskopiering och replikering, antingen mellan två TiDB-kluster, eller från ett TiDB-kluster till en annan nedströmsplattform.
Den liknar funktionaliteten till MySQL primär-sekundär replikering. Den huvudsakliga skillnaden är att eftersom TiDB är en distribuerad databas, måste binloggen som genereras av varje TiDB-instans slås samman och sorteras efter tidpunkten för transaktionsbekräftelsen innan den konsumeras nedströms.
Upplagor
TiDB finns i tre versioner: Enterprise, cloud on premise och open source-versionen licensierad under Apache 2.0-licensen.