TiDB

TiDB
Deweloperzy PingCAP Inc.
Pierwsze wydanie 15 października 2017 ; 5 lat temu ( 15.10.2017 )
Wersja stabilna
Edit this on Wikidata 6.6.0 / 20 lutego 2023 ; 22 dni temu ( 20 lutego 2023 )
Magazyn
Napisane w Go (TiDB), Rust (TiKV)
Dostępne w angielski, chiński
Typ NewSQL
Licencja Apache 2.0
Strona internetowa pl .pingcap.com / tidb /  Edit this on Wikidata

TiDB (/'taɪdiːbi:/, „Ti” oznacza Titanium) to baza danych NewSQL typu open source , która obsługuje obciążenia hybrydowego przetwarzania transakcyjnego i analitycznego ( HTAP ). Jest kompatybilny z MySQL i może zapewnić skalowalność poziomą, silną spójność i wysoką dostępność. Jest rozwijany i wspierany głównie przez PingCAP , Inc. i licencjonowany w ramach Apache 2.0. TiDB czerpał swoją początkową inspirację projektową z dokumentów Google Spanner i F1.

Historia wydania

Zobacz wszystkie informacje o wersji TiDB .

Główne cechy

Skalowalność pozioma

TiDB może rozszerzyć zarówno przetwarzanie SQL, jak i pojemność pamięci masowej, dodając nowe węzły. Dzięki temu skalowanie pojemności infrastruktury jest łatwiejsze i bardziej elastyczne w porównaniu z tradycyjnymi relacyjnymi bazami danych , które skalują się tylko w pionie.

Zgodność z MySQL

TiDB działa tak, jakby był serwerem MySQL 5.7 dla aplikacji. Użytkownik może nadal korzystać ze wszystkich istniejących bibliotek klienta MySQL. Ponieważ warstwa przetwarzania SQL TiDB jest zbudowana od podstaw, a nie rozwidlenia MySQL, jej kompatybilność nie jest w 100% i znane są różnice w zachowaniu między MySQL i TiDB.

Rozproszone transakcje o dużej spójności

TiDB wewnętrznie dzieli tabelę na małe porcje oparte na zakresie, które są określane jako „Regiony”. Każdy region domyślnie ma rozmiar około 100 MB, a TiDB stosuje zatwierdzanie dwufazowe, aby zapewnić utrzymanie regionów w sposób spójny transakcyjnie.

Natywna chmura

TiDB zaprojektowano do pracy w chmurze, aby zapewnić elastyczność wdrażania, udostępniania, operacji i konserwacji. Warstwa pamięci masowej TiDB, zwana TiKV, stała się Cloud Native Computing Foundation (CNCF) w sierpniu 2018 r. jako projekt na poziomie piaskownicy, a w maju 2019 r. stała się projektem hostowanym na poziomie inkubacji. TiKV ukończył CNCF we wrześniu 2020 r. Architektura platformy TiDB umożliwia również niezależne od siebie skalowanie przetwarzania i przechowywania SQL.

HTAP w czasie rzeczywistym

obciążenia związane z przetwarzaniem transakcji online ( OLTP ), jak i przetwarzaniem analitycznym online ( OLAP ). TiDB ma dwa silniki pamięci masowej: TiKV, magazyn wierszy i TiFlash, magazyn kolumn. Dane mogą być replikowane z TiKV do TiFlash w czasie rzeczywistym, aby zapewnić, że TiFlash przetwarza najnowsze dane.

Duża dostępność

TiDB korzysta z algorytmu konsensusu Raft , aby zapewnić wysoką dostępność danych i bezpieczną replikację podczas przechowywania w grupach Raft. W przypadku niepowodzenia grupa Raft automatycznie wybierze nowego lidera dla uszkodzonego członka i samodzielnie naprawi klaster TiDB bez wymaganej ręcznej interwencji. Awarie i operacje samonaprawy są przezroczyste dla aplikacji.

Metody wdrażania

Kubernetes z Operatorem

TiDB można wdrożyć w środowisku chmurowym obsługującym Kubernetes za pomocą TiDB Operator. Operator to metoda pakowania, wdrażania i zarządzania aplikacją Kubernetes. Jest przeznaczony do uruchamiania obciążeń stanowych i został po raz pierwszy wprowadzony przez CoreOS w 2016 r. Operator TiDB został pierwotnie opracowany przez PingCAP i udostępniony jako open source w sierpniu 2018 r. Operator TiDB może być używany do wdrażania TiDB na laptopie, Google Cloud Platform Google Kubernetes Engine i usługa elastycznego kontenera Amazon Web Services dla Kubernetes.

TiUP

TiDB 4.0 wprowadza TiUP , narzędzie do obsługi i konserwacji klastra. Pomaga użytkownikom szybko zainstalować i skonfigurować klaster TiDB za pomocą kilku poleceń.

Ansible TiDB

TiDB można wdrożyć za pomocą rozwiązania Ansible przy użyciu podręcznika TiDB Ansible (niezalecane).

Doker

Docker może służyć do wdrażania TiDB w środowisku kontenerowym na wielu węzłach i wielu komputerach, a Docker Compose może służyć do wdrażania TiDB za pomocą jednego polecenia do celów testowych.

Narzędzia

TiDB ma zbudowaną wokół niego serię narzędzi typu open source, które pomagają w replikacji i migracji danych dla istniejących użytkowników MySQL i MariaDB .

Migracja danych TiDB (DM)

TiDB Data Migration (DM) nadaje się do replikacji danych z już podzielonych tabel MySQL lub MariaDB do TiDB. Typowym przypadkiem użycia DM jest łączenie tabel MySQL lub MariaDB z TiDB, traktowanie TiDB prawie jak niewolnika, a następnie bezpośrednie uruchamianie obciążeń analitycznych w tym klastrze TiDB w czasie zbliżonym do rzeczywistego.

Przywracania kopii zapasowej

Backup & Restore (BR) to rozproszone narzędzie do tworzenia kopii zapasowych i przywracania danych klastra TiDB. Oferuje wysokie prędkości tworzenia kopii zapasowych i przywracania dla klastrów TiDB na dużą skalę.

Kluska

Dumpling to narzędzie do eksportu danych, które eksportuje dane przechowywane w TiDB lub MySQL. Pozwala użytkownikom tworzyć logiczne pełne kopie zapasowe lub pełne zrzuty z TiDB lub MySQL.

Błyskawica TiDB

TiDB Lightning to narzędzie, które obsługuje szybki pełny import dużego zrzutu MySQL do nowego klastra TiDB, zapewniając szybsze importowanie niż wykonywanie każdej instrukcji SQL. To narzędzie służy do szybkiego wypełnienia początkowo pustego klastra TiDB dużą ilością danych, aby przyspieszyć testowanie lub migrację produkcyjną. Poprawę szybkości importu uzyskuje się poprzez analizowanie instrukcji SQL w parach klucz-wartość, a następnie bezpośrednie generowanie plików Sorted String Table (SST) w RocksDB .

Binlog TiDB

TiDB Binlog to narzędzie służące do zbierania logicznych zmian dokonanych w klastrze TiDB. Służy do tworzenia przyrostowych kopii zapasowych i replikacji między dwoma klastrami TiDB lub z klastra TiDB na inną platformę podrzędną.

Pod względem funkcjonalności jest podobny do replikacji pierwotnej i wtórnej MySQL. Główna różnica polega na tym, że ponieważ TiDB jest rozproszoną bazą danych, binlog generowany przez każdą instancję TiDB musi zostać scalony i posortowany zgodnie z czasem zatwierdzenia transakcji, zanim zostanie wykorzystany w dalszym ciągu.

Wydania

TiDB występuje w trzech wersjach: Enterprise, cloud on premise oraz open source na licencji Apache 2.0.

Zobacz też