ТиДБ

Реляционная распределенная база данных NewSQL

ТиДБ
Разработчик(и)PingCAP Inc.
Первоначальный выпуск15 октября 2017 г. ; 7 лет назад [1] ( 2017-10-15 )
Стабильный релиз
8.3.0 [2]  / 22 августа 2024 г. ; 2 месяца назад ( 22 августа 2024 )
Репозиторий
  • github.com/pingcap/tidb
Написано вGo (TiDB), Rust (TiKV)
Доступно вАнглийский, китайский
ТипNewSQL
ЛицензияАпач 2.0
Веб-сайтru.pingcap.com/tidb/ 

TiDB (/'taɪdiːbi:/, "Ti" означает Titanium) — это база данных NewSQL с открытым исходным кодом, которая поддерживает рабочие нагрузки гибридной транзакционной и аналитической обработки ( HTAP ). [3] Разработанная для совместимости с MySQL , она разрабатывается и поддерживается в первую очередь PingCAP и лицензируется по Apache 2.0. Она также доступна как платный продукт. Первоначальный дизайн TiDB был вдохновлен документами Google Spanner и F1. [4] [5] [6]

История релизов

Просмотреть все заметки о выпуске TiDB.

  • 24 мая 2024 года состоялся релиз TiDB 8.1 GA.
  • 1 декабря 2023 года был выпущен TiDB 7.5 GA.
  • 31 мая 2023 года был выпущен TiDB 7.1 GA.
  • 7 апреля 2022 года был выпущен TiDB 6.0 GA.
  • 7 апреля 2021 года состоялся релиз TiDB 5.0 GA.
  • 28 мая 2020 года был выпущен TiDB 4.0 GA.
  • 28 июня 2019 года был выпущен TiDB 3.0 GA.
  • 27 апреля 2018 года был выпущен TiDB 2.0 GA.
  • 16 октября 2017 года был выпущен TiDB 1.0 GA.

Основные характеристики

Горизонтальная масштабируемость

TiDB может расширять как обработку SQL, так и емкость хранилища путем добавления новых узлов.

Совместимость с MySQL

TiDB действует как сервер MySQL 8.0 для приложений. Пользователь может продолжать использовать все существующие клиентские библиотеки MySQL. [7] Потому что уровень обработки SQL TiDB создан с нуля, а не является ответвлением MySQL. [8]

Распределенные транзакции с высокой степенью согласованности

TiDB внутренне разбивает таблицу на небольшие фрагменты на основе диапазонов, которые называются «регионами». [9] Каждый регион по умолчанию имеет размер около 100 МБ, и TiDB использует двухфазную фиксацию внутри, чтобы гарантировать, что регионы поддерживаются транзакционно согласованным образом.

Облачный родной

TiDB предназначен для работы в облаке. Уровень хранения TiDB, называемый TiKV, стал проектом-участником Cloud Native Computing Foundation (CNCF) в августе 2018 года как проект уровня Sandbox [10] и стал проектом уровня инкубации в мае 2019 года. [11] TiKV вышел из CNCF в сентябре 2020 года. [12]

HTAP в реальном времени

TiDB может поддерживать как онлайн-обработку транзакций ( OLTP ), так и онлайн-аналитическую обработку ( OLAP ). TiDB имеет два механизма хранения: TiKV, rowstore, и TiFlash, columnstore.

Высокая доступность

TiDB использует алгоритм консенсуса Raft [13] для обеспечения доступности и репликации данных по всему хранилищу в группах Raft. В случае сбоя группа Raft автоматически выберет нового лидера для вышедшего из строя участника и самостоятельно восстановит кластер TiDB.

Методы развертывания

Kubernetes с оператором

TiDB можно развернуть в облачной среде с поддержкой Kubernetes с помощью TiDB Operator. [14] Оператор — это метод упаковки, развертывания и управления приложением Kubernetes. Он предназначен для запуска рабочих нагрузок с отслеживанием состояния и впервые был представлен CoreOS в 2016 году. [15] TiDB Operator [16] изначально был разработан PingCAP и открыт в августе 2018 года. [17] TiDB Operator можно использовать для развертывания TiDB на ноутбуке, [18] Google Kubernetes Engine от Google Cloud Platform , [19] и Amazon Web Services Elastic Container Service для Kubernetes. [20]

ТиУП

TiDB 4.0 представляет TiUP, инструмент для работы и обслуживания кластера. Он помогает пользователям быстро устанавливать и настраивать кластер TiDB с помощью нескольких команд. [21]

TiDB Ansible

TiDB можно развернуть с помощью Ansible , используя TiDB Ansible playbook (не рекомендуется). [22]

Докер

Docker можно использовать для развертывания TiDB в контейнерной среде на нескольких узлах и нескольких машинах, а Docker Compose можно использовать для развертывания TiDB с помощью одной команды в целях тестирования. [23]

Инструменты

TiDB имеет ряд инструментов с открытым исходным кодом, созданных на его основе, которые помогают существующим пользователям MySQL и MariaDB выполнять репликацию и миграцию данных .

Миграция данных TiDB (DM)

Миграция данных TiDB (DM) подходит для репликации данных из уже сегментированных таблиц MySQL или MariaDB в TiDB. [24] Обычным вариантом использования DM является подключение таблиц MySQL или MariaDB к TiDB, при котором TiDB рассматривается практически как подчиненное устройство, а затем прямой запуск аналитических рабочих нагрузок на этом кластере TiDB практически в режиме реального времени.

Резервное копирование и восстановление

Backup & Restore (BR) — это распределенный инструмент резервного копирования и восстановления данных кластера TiDB. [25]

Пельмени

Dumpling — это инструмент экспорта данных, который экспортирует данные, хранящиеся в TiDB или MySQL. Он позволяет пользователям делать логические полные резервные копии или полные дампы из TiDB или MySQL. [26]

ТиДБ Молния

TiDB Lightning — это инструмент, который поддерживает высокоскоростной полный импорт большого дампа MySQL в новый кластер TiDB. Этот инструмент используется для заполнения изначально пустого кластера TiDB большим количеством данных, чтобы ускорить тестирование или производственную миграцию. Улучшение скорости импорта достигается путем разбора операторов SQL на пары ключ-значение, а затем прямой генерации файлов Sorted String Table (SST) в RocksDB . [27] [28]

TiCDC

TiCDC — это инструмент сбора данных об изменениях , который передает данные из TiDB в другие системы, такие как Apache Kafka .

TiDB Бинлог

TiDB Binlog — это инструмент, используемый для сбора логических изменений, внесенных в кластер TiDB. Он используется для обеспечения инкрементального резервного копирования и репликации, либо между двумя кластерами TiDB, либо из кластера TiDB на другую платформу нижестоящего уровня. [29] [30]

Смотрите также

Ссылки

  1. ^ "Заметки о выпуске 1.0 GA". GitHub .
  2. ^ "Release 8.3.0". 22 августа 2024 г. Получено 27 августа 2024 г.
  3. ^ Сюй, Кевин (17 октября 2018 г.). «Как TiDB объединяет OLTP и OLAP в распределенной базе данных». InfoWorld .
  4. ^ «F1: Распределенная база данных SQL, которая масштабируется». 2013.
  5. ^ «Spanner: глобально распределенная база данных Google». 2012.
  6. ^ Холл, Сьюзен (17 апреля 2017 г.). «TiDB обеспечивает распределенную масштабируемость SQL». Новый стек .
  7. ^ Токер, Морган (14 ноября 2018 г.). «Знакомьтесь, TiDB: база данных NewSQL с открытым исходным кодом». Opensource.com .
  8. ^ "Совместимость с MySQL". PingCAP .
  9. ^ "Архитектура TiKV". TiKV .
  10. ^ Эванс, Кристен (28 августа 2018 г.). «CNCF разместит TiKV в песочнице». Cloud Native Computing Foundation .
  11. ^ CNCF (21 мая 2019 г.). «TOC голосует за перемещение TiKV в инкубатор CNCF». Cloud Native Computing Foundation . Получено 19 августа 2020 г.
  12. ^ TiKV Authors (2 сентября 2020 г.). «Празднование окончания CNCF TiKV». TiKV .
  13. ^ «Алгоритм консенсуса Raft».
  14. ^ Джексон, Джоаб (22 января 2019 г.). «Операторы баз данных привносят рабочие нагрузки с отслеживанием состояния в Kubernetes». Новый стек .
  15. ^ Филипс, Брэндон (3 ноября 2016 г.). «Введение в операторы: внедрение операционных знаний в программное обеспечение». CoreOS .
  16. ^ "Репозиторий оператора TiDB на GitHub" . Гитхаб .
  17. ^ "Представляем оператор Kubernetes для TiDB". InfoWorld . 16 августа 2018 г.
  18. ^ «Разверните TiDB в Kubernetes на своем ноутбуке».
  19. ^ «Развертывание TiDB, распределенной базы данных, совместимой с MySQL, в Kubernetes в Google Cloud».
  20. ^ «Развертывание TiDB, распределенной базы данных, совместимой с MySQL, в Kubernetes с помощью AWS EKS». GitHub .
  21. ^ Лонг, Хэн (19 апреля 2020 г.). «Get a TiDB Cluster Up всего за одну минуту». PinCAP . Получено 19 августа 2020 г.
  22. ^ "Ansible Playbook для TiDB". GitHub .
  23. ^ «Как развернуть базу данных HTAP за 5 минут с помощью TiDB + TiSpark».
  24. ^ "DM GitHub Repo". GitHub .
  25. ^ Шен, Тайнинг (13 апреля 2020 г.). «Как выполнить резервное копирование и восстановление кластера объемом 10 ТБ со скоростью 1+ ГБ/с». PingCAP .
  26. ^ "Обзор пельменей". PingCAP .
  27. ^ Чан, Кенни (30 января 2019 г.). «Представляем TiDB Lightning». PingCAP .
  28. ^ "Обзор TiDB Lightning". PingCAP .
  29. ^ "Обзор кластера TiDB Binlog". PingCAP .
  30. ^ Ван, Сян (29 января 2019 г.). «Эволюция архитектуры TiDB-Binlog и принципы ее реализации». PingCAP .
Взято с "https://en.wikipedia.org/w/index.php?title=TiDB&oldid=1237869856"