Разработчик(и) | PingCAP Inc. |
---|---|
Первоначальный выпуск | 15 октября 2017 г. ( 2017-10-15 ) | [1]
Стабильный релиз | 8.3.0 [2] / 22 августа 2024 г. ( 22 августа 2024 ) |
Репозиторий |
|
Написано в | 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.
TiDB может расширять как обработку SQL, так и емкость хранилища путем добавления новых узлов.
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]
TiDB может поддерживать как онлайн-обработку транзакций ( OLTP ), так и онлайн-аналитическую обработку ( OLAP ). TiDB имеет два механизма хранения: TiKV, rowstore, и TiFlash, columnstore.
TiDB использует алгоритм консенсуса Raft [13] для обеспечения доступности и репликации данных по всему хранилищу в группах Raft. В случае сбоя группа Raft автоматически выберет нового лидера для вышедшего из строя участника и самостоятельно восстановит кластер TiDB.
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 playbook (не рекомендуется). [22]
Docker можно использовать для развертывания TiDB в контейнерной среде на нескольких узлах и нескольких машинах, а Docker Compose можно использовать для развертывания TiDB с помощью одной команды в целях тестирования. [23]
TiDB имеет ряд инструментов с открытым исходным кодом, созданных на его основе, которые помогают существующим пользователям MySQL и MariaDB выполнять репликацию и миграцию данных .
Миграция данных 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 — это инструмент сбора данных об изменениях , который передает данные из TiDB в другие системы, такие как Apache Kafka .
TiDB Binlog — это инструмент, используемый для сбора логических изменений, внесенных в кластер TiDB. Он используется для обеспечения инкрементального резервного копирования и репликации, либо между двумя кластерами TiDB, либо из кластера TiDB на другую платформу нижестоящего уровня. [29] [30]