TiDB - TiDB - Wikipedia
Vývojáři | PingCAP Inc. |
---|---|
První vydání | 15. října 2017[1] |
Stabilní uvolnění | 4.0[2] / 31. července 2020 |
Úložiště | ![]() |
Napsáno | Jít (TiDB), Rez (TiKV) |
K dispozici v | Angličtina, čínština |
Typ | NewSQL |
Licence | Apache 2.0 |
webová stránka | https://pingcap.com |
TiDB (/ ‘Taɪdiːbi: /,„ Ti “znamená Titanium) je open-source NewSQL databáze, která podporuje hybridní transakční a analytické zpracování (HTAP ) pracovní vytížení.[3] to je MySQL kompatibilní a může poskytovat horizontální škálovatelnost, silnou konzistenci a vysokou dostupnost. Je vyvinut a podporován primárně PingCAP, Inc. a licencován pod Apache 2.0. TiDB čerpal svou počáteční designovou inspiraci od společnosti Google Spanner[4] a F1[5] doklady.[6]
TiDB byl oceněn InfoWorld 2018 Bossie Award jako jeden z nejlepších open source softwaru pro ukládání a analýzu dat.[7]
Dějiny
Historie společnosti
PingCAP Inc., softwarová společnost založená v dubnu 2015, začala vyvíjet TiDB po svém založení. Společnost je primárním vývojářem, správcem a ovladačem TiDB a jejích přidružených open-source komunit. PingCAP je společnost s podporou podnikání; v září 2018 oznámila své kolo financování ve výši 50 milionů USD série C.[8]
Historie vydání
Vidět vše Poznámky k vydání TiDB.
- 28. května 2020 TiDB 4.0 GA byl vydán. Mezi jeho klíčové vlastnosti patří: TiFlash, Řídicí panel TiDB (experimentální), TiUP, pesimistické transakce, pravidla kaskádového umístění (experimentální), pružné plánování (experimentální), velké transakce, nové funkce SQL, rozlišování písmen „utf8mb4_general_ci“ a „utf8_general_ci“ bez rozlišování velkých a malých písmen, vylepšená šifrovaná komunikace, transparentní šifrování dat (TDE), Obnovení zálohy, Koprocesorová mezipaměť (experimentální), Čtení následovníka, a TiCDC (experimentální).
- 28. června 2019 TiDB 3.0 GA byl vydán.
- 27. dubna 2018 TiDB 2.0 GA byl vydán.
- 16. října 2017 TiDB 1,0 GA byl vydán.
Hlavní rysy
Horizontální škálovatelnost
TiDB může rozšířit jak zpracování SQL, tak kapacitu úložiště přidáním nových uzlů. Díky tomu je škálování kapacity infrastruktury snazší a flexibilnější ve srovnání s tradičními relační databáze které se mění pouze svisle.
Kompatibilita s MySQL
TiDB se chová, jako by byl MySQL 5.7 server k aplikacím. Uživatel může nadále používat všechny existující klientské knihovny MySQL.[9] Protože vrstva zpracování SQL TiDB je postavena od nuly, nikoli na vidličku MySQL, její kompatibilita není 100% a existují známé rozdíly v chování mezi MySQL a TiDB.[10]
Distribuované transakce se silnou konzistencí
TiDB interně dělí tabulku na malé bloky založené na dosahu, které se označují jako „Regiony“.[11] Výchozí velikost každé oblasti je přibližně 100 MB a TiDB používá a dvoufázové potvrzení interně zajistit, aby regiony byly udržovány transakčně konzistentním způsobem.
Cloud nativní
TiDB je navržen pro práci v cloudu, aby bylo nasazení, zajišťování, provoz a údržba flexibilní. Skladovací vrstva TiDB, zvaná TiKV, se stala a Cloud Native Computing Foundation (CNCF) member project in August 2018, as a Sandbox level project,[12] a v květnu 2019 se stal projektem hostovaným na inkubační úrovni.[13] TiKV absolvoval CNCF v září 2020.[14] Architektura platformy TiDB také umožňuje škálování zpracování a ukládání SQL nezávisle na sobě.
HTAP v reálném čase
TiDB může podporovat jak online zpracování transakcí (OLTP ) a online analytické zpracování (OLAP ) pracovní vytížení. TiDB má dva úložné moduly: TiKV, úložiště řádků a TiFlash, úložiště sloupců. Data lze replikovat z TiKV na TiFlash v reálném čase, aby bylo zajištěno, že TiFlash zpracuje nejnovější data.
Vysoká dostupnost
TiDB používá Raftový konsenzuální algoritmus[15] zajistit, aby data byla vysoce dostupná a bezpečně replikovaná v celém úložišti ve skupinách Raft. V případě selhání skupina Raft automaticky zvolí nového vůdce pro vadného člena a sama uzdraví klastr TiDB bez jakéhokoli požadovaného ručního zásahu. Operace selhání a samoléčení jsou pro aplikace transparentní.
Metody nasazení
Kubernetes s operátorem
TiDB lze nasadit v Kubernetes - povolené cloudové prostředí pomocí TiDB Operator.[16] Operátor je metoda balení, nasazení a správy aplikace Kubernetes. Je navržen pro běh stavových úloh a byl poprvé představen CoreOS v roce 2016.[17] Provozovatel TiDB[18] byl původně vyvinut společností PingCAP a open-source v srpnu 2018.[19] TiDB Operator lze použít k nasazení TiDB na notebooku[20], Google Cloud Platform Google Kubernetes Engine,[21], a Webové služby Amazon „Elastická kontejnerová služba pro Kubernetes.[22]
TiUP
TiDB 4.0 představuje TiUP, nástroj pro provoz a údržbu klastru. Pomáhá uživatelům rychle nainstalovat a konfigurovat cluster TiDB pomocí několika příkazů.[23]
TiDB Ansible
TiDB lze nasadit pomocí Možné pomocí scénáře TiDB Ansible (nedoporučuje se).[24]
Přístavní dělník
Přístavní dělník lze použít k nasazení TiDB v kontejnerovém prostředí na více uzlech a více strojích a Docker Compose lze použít k nasazení TiDB pomocí jediného příkazu pro účely testování.[25]
Nástroje
TiDB má kolem sebe postavenou řadu nástrojů open-source, které pomáhají s replikací a migrací dat pro stávající MySQL a MariaDB uživatelů.
TiDB migrace dat (DM)
TiDB Data Migration (DM) is suited for replicating data from already sharded MySQL or MariaDB tables to TiDB.[26] Běžným případem použití DM je připojení tabulek MySQL nebo MariaDB k TiDB, zpracování TiDB téměř jako s otrokem, pak přímé spuštění analytických úloh na tomto klastru TiDB téměř v reálném čase.
Obnovení zálohy
Backup & Restore (BR) je distribuovaný nástroj pro zálohování a obnovení dat klastru TiDB. Nabízí vysoké rychlosti zálohování a obnovy pro velké klastry TiDB.[27]
Knedlík
Dumpling je nástroj pro export dat, který exportuje data uložená v TiDB nebo MySQL. Umožňuje uživatelům logické úplné zálohy nebo úplné výpisy z TiDB nebo MySQL.[28]
TiDB Lightning
TiDB Lightning je nástroj, který podporuje vysokorychlostní plný import velkého výpisu MySQL do nového klastru TiDB a poskytuje rychlejší zážitek z importu než provádění jednotlivých příkazů SQL. Tento nástroj se používá k rychlému naplnění původně prázdného klastru TiDB velkým množstvím dat, aby se urychlilo testování nebo migrace výroby. Zlepšení rychlosti importu je dosaženo analýzou příkazů SQL do párů klíč – hodnota a následným generováním souborů SST (Sorted String Table) přímo do RocksDB.[29][30]
TiDB Binlog
TiDB Binlog je nástroj používaný ke shromažďování logických změn provedených v klastru TiDB. Používá se k zajištění přírůstkové zálohy a replikace buď mezi dvěma klastry TiDB, nebo z klastru TiDB na jinou následnou platformu.[31]
Funkcí se podobá primární-sekundární replikaci MySQL. Hlavní rozdíl spočívá v tom, že protože TiDB je distribuovaná databáze, je třeba binlog generovaný každou instancí TiDB sloučit a setřídit podle času potvrzení transakce, než bude spotřebován po proudu. [32]
Případové studie
V současné době používá TiDB téměř 1 000 společností, včetně PayPay, Shopee, BookMyShow, Xiaomi, Zhihu, Meituan-Dianping, iQiyi, Zhuan Zhuan, Mobike, Yiguo.com, VNG, JD Cloud a AI, Hry NetEase, a Yuanfudao.com.
Reference
- ^ „Poznámky k verzi 1.0 GA“.
- ^ „Poznámky k verzi TiDB“.
- ^ Xu, Kevin (17. října 2018). „Jak TiDB kombinuje OLTP a OLAP v distribuované databázi“. InfoWorld.
- ^ „Spanner: Globálně distribuovaná databáze Google“.
- ^ „F1: Distribuovaná databáze SQL, která se rozšiřuje“.
- ^ Hall, Susan (17. dubna 2017). „TiDB přináší distribuovanou škálovatelnost na SQL“. The New Stack.
- ^ „Nejlepší open source software pro ukládání a analýzu dat“.
- ^ Shu, Catherine (11. září 2018). „Vývojář TiDB PingCAP chce expandovat v Severní Americe poté, co získal C $ 50M Series“. TechCrunch.
- ^ Tocker, Morgan (14. listopadu 2018). „Meet TiDB: An open source NewSQL database“. Opensource.com.
- ^ "Kompatibilita s MySQL". PingCAP.
- ^ „TiKV Architecture“. TiKV.
- ^ Evans, Kristen (28. srpna 2018). „CNCF hostit TiKV v karanténě“. Cloud Native Computing Foundation.
- ^ CNCF (21. května 2019). „Hlasy TOC pro přesun TiKV do inkubátoru CNCF“. Cloud Native Computing Foundation. Citováno 19. srpna 2020.
- ^ Autoři TiKV (2. září 2020). „Oslava absolvování TiFK CNCF“. TiKV.
- ^ „Raftový konsenzuální algoritmus“.
- ^ Jackson, Joab (22. ledna 2019). „Provozovatelé databází přinášejí do Kubernetes stavové úlohy“. The New Stack.
- ^ Philips, Brandon (3. listopadu 2016). „Představujeme operátory: Uvádění operačních znalostí do softwaru“. CoreOS.
- ^ „TiDB Operator GitHub repo“. GitHub.
- ^ „Představujeme operátora Kubernetes pro TiDB“. InfoWorld. 16. srpna 2018.
- ^ „Nasazení TiDB do Kubernetes na vašem notebooku“.
- ^ „Nasazení TiDB, distribuované databáze kompatibilní s MySQL, do Kubernetes na Google Cloud“.
- ^ „Nasadit TiDB, distribuovanou databázi kompatibilní s MySQL, na Kubernetes přes AWS EKS“.
- ^ Long, Heng (19. dubna 2020). „Získejte shluk TiDB za pouhou minutu“. PinCAP. Citováno 19. srpna 2020.
- ^ „Ansible Playbook for TiDB“.
- ^ „Jak roztočit databázi HTAP za 5 minut pomocí TiDB + TiSpark“.
- ^ „DM GitHub Repo“. GitHub.
- ^ Shen, Taining (13. dubna 2020). „Jak zálohovat a obnovit klastr 10 TB při rychlosti 1+ GB / s“. PingCAP.
- ^ "Přehled knedlíků". PingCAP.
- ^ Chan, Kenny (30. ledna 2019). „Představujeme TiDB Lightning“. PingCAP.
- ^ "TiDB Lightning Overview". PingCAP.
- ^ "TiDB Binlog Cluster Overview". PingCAP.
- ^ Wang, Xiang (29. ledna 2019). „Vývoj a implementace architektury TiDB-Binlog“. PingCAP.