Мышление при выборе технологий: компромиссы и выбор между подбазами данных, подтаблицами и распределенной базой данных (TiDB/OceanBase)
Мышление при выборе технологий: компромиссы и выбор между подбазами данных, подтаблицами и распределенной базой данных (TiDB/OceanBase)
1. Подбиблиотека и подтаблица
Сегментирование базы данных и таблиц — распространенный метод устранения узких мест в производительности базы данных. Разделив большие таблицы на маленькие и распределив данные по нескольким базам данных или серверам, можно повысить производительность запросов, уменьшить конкуренцию блокировок и улучшить возможности параллельной обработки системы. Общие стратегии сегментирования баз данных и таблиц включают горизонтальное и вертикальное разделение. Горизонтальное разделение заключается в распределении данных по разным таблицам или базам данных на основе значения определенного поля, тогда как вертикальное разделение заключается в разделении полей одной таблицы по разным таблицам или базам данных.
Преимущества
Улучшения производительности:Распределяя данные по несколькимбаза данные или таблица, сведенные к одной базе данные или загрузка таблицы,Улучшенный запросиобновленопроизводительность。
Улучшенная масштабируемость:может быть основано напотребности бизнеса Гибкая сплитбаза данные или таблицу, позволяющую горизонтальное расширение.
Технология зрелая:Технология подбаз данных и подтаблиц в традиционныхбаза Область данных относительно зрела и имеет богатый практический опыт и успешные примеры.
испытание
Повышенная сложность:Совместный запрос между базами данных、Такие проблемы, как обработка транзакций и согласованность данных, становятся более сложными.
Рост затрат на эксплуатацию и техническое обслуживание:нужен менеджменти Поддерживать несколькобаза данных, увеличивает сложность и стоимость эксплуатации и обслуживания.
Сложность миграции:По мере развития бизнесаи Рост объема данных,Стратегии разделения, возможно, придется пересмотреть,Перенос данных,Это сложный и трудоемкий процесс.
Применимые сценарии
Огромный объем данных, одна база данныхпроизводительность Очевидное узкое место。
Бизнес-логика относительно проста и не требует сложной обработки транзакций между базами данных.
Общие стратегии
Горизонтальное разделение (подбиблиотека):Распределяйте данные по разным физическим местам в соответствии с бизнес-логикой.база данныесередина. Например, присвоение другой базе по хешу идентификатора пользователя данных。
Вертикальное разделение (подтаблица):Разделить большую таблицу на несколько маленьких таблиц,Каждая таблица содержит только несколько полей. Это часто используется для разделения редко используемых данных или больших полей (например, текста, изображений) на отдельные таблицы.
Чтение и запись разделения:Чтобы улучшить запроспроизводительность,Операции чтения и операции записи могут быть распределены по разным экземплярам базы данных. Основная библиотека отвечает за операции записи,За операции чтения отвечает подчиненная библиотека.
Промежуточное программное обеспечение базы данных:Используйте лайкMyCAT、ShardingSphereждать Промежуточное программное обеспечение базы данные для управления подбазой данных и стратегией таблиц, а также для упрощения логики прикладного уровня.
На что следует обратить внимание
Стратегии разделения должны быть тщательно разработаны.,Избегайте искажения данных и проблем с горячими точками.
Обработка транзакций между базами данных и согласованность данных сложны, и вам необходимо использовать решения для распределенной передачи данных, такие как XA, TCC и т. д.
Эксплуатация и обслуживание высокая стоимость, необходимость управления и обслуживания нескольких баз данных Пример。
2. Распределенная БД
В системе распределенных баз данных данные обычно распределяются по нескольким узлам, и каждый узел может обрабатывать запросы данных независимо. Этот распределенный метод хранения и обработки данных может эффективно улучшить возможности параллельной обработки, масштабируемость и отказоустойчивость системы. В то же время, поскольку данные распределяются по нескольким узлам, можно также снизить нагрузку на один узел и повысить общую производительность системы.
В целом распределенная база данных представляет собой эффективную, масштабируемую и надежную архитектуру системы баз данных, подходящую для сценариев приложений, которым необходимо обрабатывать большие объемы данных и большое количество одновременных запросов. С постоянным развитием облачных вычислений, больших данных и других технологий перспективы применения распределенных баз данных становятся все более широкими.
Преимущества
Плавно расширяйте:распределенныйбаза данных Поддержка онлайн-расширения,Узлы можно легко добавлять или уменьшать.,Достичь линейного расширения.
Высокая доступностьиотказоустойчивость:через копирование данныхи Распределенные транзакцииждатьтехнология,Данные гарантированы Высокая доступностьиотказоустойчивость。
Упрощение логики уровня приложения:распределенныйбаза данных обеспечивает унифицированный интерфейс доступа и упрощает логику доступа к данным прикладного уровня.
испытание
Крутая кривая обучения:распределенныйбаза Данные включают в себя сложную теорию и технологию распределенных систем, что требует от команды наличия соответствующих знаний и опыта.
более высокая стоимость:коммерческийраспределенныйбаза Продукты данных могут облагаться дополнительными лицензионными сборами и платой за техническую поддержку.
ограничения экосистемы:Некоторыйраспределенныйбаза данным может не хватать богатой экосистемы и поддержки сообщества, что приводит к ограниченности решений для конкретных сценариев.
Применимые сценарии
Огромное количество данных и быстро растет,нуждаться Плавно расширяйте。
верно Высокая доступностьиотказоустойчивость Иметь более высокие требования。
Сложная бизнес-логика,Необходимость поддержки сложных запросов и обработки транзакций.
Общие стратегии
Шардинг:Разделить данные горизонтально по нескольким узлам,Каждый узел хранит только часть данных. Стратегии сегментирования могут основываться на хеше, диапазоне или каталоге и т. д.
Репликация:Чтобы поднять Высокая доступностьиотказоустойчивость,Копии данных могут храниться на нескольких узлах. Реплики могут быть синхронными и асинхронными.
Распределенные транзакции:Чтобы обеспечить согласованность данных,Необходимо использовать технологию Распределенные транзакции. Распространенные протоколы Распределенной передачи включают 2PC, 3PC, Paxos и т. д. Но у них больше накладные расходы на производительность.,Поэтому появились некоторые новые решения, такие как Google Spanner/TrueTime, протокол Raft и т. д.
агент базы данных:Используйте лайкVitess、ProxySQLждатьагент базы данныхуправлятьраспределенныйбаза Кластер данных обеспечивает единый интерфейс доступа и функцию балансировки нагрузки.
На что следует обратить внимание
Необходимо иметь глубокое понимание принципов и технологий распределенной системы.,Например, теорема CAP, протокол согласованности и т. д.
Распределенные транзакции, обработка и согласованность данных — это сложный вопрос, требующий тщательного проектирования и тестирования.
Коммерческие продукты могут иметь более высокую стоимость и зависимость от технической поддержки.
Экосистема относительно сложна,Необходимо оценить сторонние инструменты и поддержку сообщества.
3. Распределенная БД: многомерный анализ TiDB и OceanBase.
Распределенные базы данных TiDB и OceanBase предназначены для решения проблем, с которыми сталкиваются традиционные базы данных при работе с крупномасштабными данными и высокой степенью одновременного доступа.
Обзор Ти БД
TiDB — это распределенная база данных HTAP (гибридная транзакционная и аналитическая обработка) с открытым исходным кодом, разработанная PingCAP. Она сочетает в себе лучшие функции традиционных СУБД и NoSQL. TiDB совместим с MySQL, поддерживает неограниченное горизонтальное расширение, обладает высокой согласованностью и доступностью. Его цель — предоставить универсальные решения для сценариев OLTP (онлайн-обработка транзакций) и OLAP (онлайн-аналитическая обработка). TiDB основан на распределенной транзакционной базе данных TiKV (хранилище ключей) и PD (драйвер размещения, используемый для глобального планирования и управления метаданными) и использует архитектуру NewSQL.
Обзор OceanBase
OceanBase — это распределенная база данных, независимо разработанная Alibaba Group. Она использует архитектуру Share-Nothing и поддерживает мультитенантность, высокую согласованность и высокую доступность. OceanBase использует распределенные транзакции на основе протокола Paxos, а также такие технологии, как разделение чтения и записи и таблицы разделов, для достижения крупномасштабной обработки данных и высокого уровня одновременного доступа. Высокая доступность данных достигается за счет нескольких зон. В каждой зоне сохраняется полная копия данных, а наименьшей единицей синхронизации является раздел.
Сравнение TiDB и OceanBase
Обе базы данных предназначены для обработки крупномасштабных данных и высокого уровня одновременного доступа, но они различаются реализацией, архитектурными особенностями и сценариями использования. TiDB уделяет больше внимания совместимости с MySQL и подходит для пользователей, которые хотят поддерживать совместимость с экосистемой MySQL. OceanBase, с другой стороны, использует больше внутреннего практического опыта и накопленных технологий Alibaba Group и особенно подходит для таких сценариев, как облачные и финансовые технологии. При выборе следует уделять всестороннее внимание таким факторам, как конкретные потребности бизнеса, возможности технической команды и бюджет затрат. Ниже приводится сравнение по нескольким параметрам:
1. Масштабируемость и эластичность
TiDB:из-за егораспределенный Архитектура,TiDB можно легко масштабировать по горизонтали.,Просто добавьте больше узлов TiKV, чтобы увеличить хранилище и вычислительную мощность. Он поддерживает онлайн-расширение,Никаких простоев или перерывов в обслуживании не требуется.
OceanBase:Также имеет возможности линейного расширения.,Расширьте ресурсы, добавив больше серверных узлов. Конструкция общего хранилища OceanBase позволяет нескольким экземплярам базы данных использовать одно и то же хранилище данных.,Использование ресурсов дополнительно улучшено.
2. Высокая доступность и отказоустойчивость.
TiDB:проходитьRaftПротокол реализует синхронизацию нескольких копий данных.,Обеспечьте высокую доступность данных. Даже если некоторые узлы выйдут из строя,TiDB также может быстро восстанавливать сервисы.
OceanBase:использоватьPaxosПротокол синхронизации нескольких копий,Также обеспечивает высокую доступность и отказоустойчивость. OceanBase также предоставляет решение для развертывания нескольких машинных залов.,Возможности аварийного восстановления дополнительно расширены.
3. Производительность и задержка
TiDB:Оптимизированный Распределенные транзакциииметь дело с,Уменьшена задержка при межузловой связи. Для смешанных рабочих нагрузок OLTPиOLAP,TiDBобеспечил хорошийпроизводительность Производительность。
TiDB:совместимыйMySQLпротокол,Существующие приложения MySQL можно легко перенести. в то же время,TiDB предоставляет богатые функции SQL,Поддерживает сложные операции запроса и анализа.
OceanBase:совместимыйOracleиMySQLизSQLграмматикаипротокол,Пользователям удобно мигрировать существующие приложения. OceanBase также предоставляет функциональные возможности и возможности, аналогичные Oracle.,Например, хранимые процедуры, триггеры и т. д.
5. Эксплуатация, обслуживание и мониторинг.
TiDB:Обеспечивает богатыйиз Инструменты для эксплуатации и обслуживанияи Индикаторы мониторинга,Удобныйвернобаза данные для управления и мониторинга. TiDB также поддерживает интеграцию с различными сторонними системами мониторинга.
OceanBase:Он также обеспечивает идеальноеиз Эксплуатация и обслуживаниеи Функция мониторинга,Включая диагностику производительности, устранение неполадок, управление ресурсами и т. д. OceanBase также поддерживает автоматизированные операции по эксплуатации и техническому обслуживанию.,Например, автоматическое расширение, автоматическое резервное копирование и т. д.
6. Стоимость и инвестиции
TiDB:как проект с открытым исходным кодом,Стоимость приобретения и использования TiDB относительно невелика. но,Для крупномасштабного развертывания и сложных сценариев,Возможно, потребуется вложить больше ресурсов и рабочей силы в настройку и оптимизацию.
OceanBase:Хотя предоставляется коммерческая версия.и Корпоративная версияизвыбирать,Но по сравнению с TiDB,Затраты на его приобретение и использование могут быть выше. Однако,Для бизнес-сценариев, требующих высокой стабильности и надежности,Возможно, вложения того стоят.
7. Поддержка и развитие сообщества.
TiDB:Иметь активныйиз Сообщество открытого исходного кодаиширокоиз База пользователей,Получайте своевременную техническую поддержку и обновления. в то же время,TiDB все еще развивается и совершенствуется,Ожидается, что в будущем будет предоставлено больше функций и возможностей.
OceanBase:Хотяего сообществоверноменьше,Но как один из ключевых проектов Alibaba,OceanBase продолжает получать инвестиции и развитие. также,OceanBase также оптимизирован и настроен для конкретных отраслей.,Предоставляет функции и возможности, которые ближе к потребностям пользователя.
8. Безопасность
TiDB:TiDBПоддерживает безопасность транспортного уровня.(TLS)шифрование,Он может защитить безопасность данных во время передачи. также,TiDB также предоставляет такие функции, как контроль доступа и журналы аудита.,увеличить базу данныхизбезопасность。
OceanBase:OceanBaseТакже поддерживаетсяTLSшифрование,И обеспечивает детальный контроль разрешений и функции аудита доступа. Он также поддерживает расширенные функции безопасности, такие как снижение чувствительности данных и зашифрованное хранение.,для удовлетворения более строгих требований безопасности.
9. Возможность работы с несколькими арендаторами
TiDB:ХотяTiDBИзначально не поддерживает мультитенантность напрямую.,но окпроходитьлогическиизизоляция(нравитьсядругойизбаза данные или таблицу) для достижения аналогичного эффекта. Это требует соответствующего проектирования и реализации на уровне приложений.
OceanBase:OceanBaseиспользоватьроднойизмультиарендатор Архитектура,Может быть легко развернут на одном и том же наборе физических ресурсов.и Управляйте несколькими независимымиизбаза примеры данных. Это значительно повышает эффективность использования ресурсов и управления.
10. Миграция и синхронизация данных
TiDB:TiDBПредоставляет различные инструменты миграции данных.,нравитьсяDM(Data Миграция) и Lightning, вы можете легко перенести данные из другой базы. данные перенесены в TiDB. Эти инструменты поддерживают полную миграцию и инкрементную синхронизацию, а также предоставляют визуальные интерфейсы и подробные отчеты о миграции.
OceanBase:OceanBaseОн также обеспечивает идеальноеиз Миграция данныхи Решение для синхронизации,Включая полную миграцию данных, инкрементную синхронизацию данных, синхронизацию данных в реальном времени и т. д. Он также поддерживает миграцию нескольких источников данных и целевую базу данных.,Такие как Oracle, MySQL и т. д.
11. Техническая поддержка и обучение
TiDB:как проект с открытым исходным кодом,TiDB имеет обширную поддержку сообщества и богатые онлайн-ресурсы. в то же время,PingCAP (компания-разработчик TiDB) также предоставляет профессиональную техническую поддержку и услуги по обучению.,Чтобы помочь пользователям лучше использовать и поддерживать TiDB.
OceanBase:OceanBaseРазработано и поддерживается Alibaba.,Таким образом, вы можете получить профессиональную техническую поддержку и услуги Alibaba. также,OceanBase также предоставляет подробную официальную документацию и онлайн-ресурсы для обучения.,Чтобы помочь пользователям быстро начать работу и решить практические проблемы.
12. Направление будущего развития и стратегическое планирование.
TiDB:TiDBиз Общественная версияи Коммерческая версия постоянно развиваетсяи Полныйсередина,Ожидается, что в будущем будет предоставлено больше функций и возможностей. PingCAP также планирует дальнейшее расширение экосистемы TiDB.,Включая интеграцию и сотрудничество с большим количеством поставщиков облачных услуг и партнеров.
OceanBase:Как Алибабаиз Один из ключевых проектов,OceanBase продолжает получать инвестиции и развитие. будущее,OceanBase будет продолжать оптимизироваться и настраиваться для конкретных отраслей.,Предоставляйте функции и возможности, которые ближе к потребностям пользователя. в то же время,Alibaba также планирует продвигать OceanBase на более широкий международный рынок.
В итоге,TiDBиOceanBase в масштабируемости, Высота доступность、производительность、Совместимость с SQL、Мониторинг эксплуатации и технического обслуживания、затраты、поддержка сообщества ибезопасностьждатьнесколько измерений Производительность Друг от другаиз Преимуществаи Функции。в ходе выполнениябаза При выборе данных, помимо учета этих технических факторов, необходимо также учитывать особенности конкретного производителя. бизнеса、Командные способности、Бюджет, планы будущего развития и другие факторы будут всесторонне рассмотрены и оценены.
4. Рекомендации по выбору
При выборе подбаз данных, таблиц или распределенной БД рекомендуется учитывать следующие аспекты:
потребности бизнеса:Ясное делоиз Объем данных、растущая тенденцияирежим доступа,И особые требования к производительности, доступности и масштабируемости. Если объем данных огромен и быстро растет,распределенныйDB может быть более подходящим.
Возможности технической команды:Группа оценкивернораспределенныйсистема、Сетевая коммуникациябаза данные и другие аспекты резервов знаний и опыта. Если команда обладает глубокими знаниями и практическим опытом работы с распределенными технологиями, распределенная БД может оказаться лучшим выбором.
бюджет затрат:Рассмотрите возможность инвестиций в оборудование、软件许可费用以及Эксплуатация и обслуживание成本ждатьаспектизбюджетные ограничения。Решение с подбазой данных и подтаблицей может иметь более низкие первоначальные затраты.,Но с развитием бизнеса и увеличением объема данных,,Затраты на эксплуатацию и техническое обслуживание могут постепенно увеличиваться.
Экосистема и совместимость:考虑选型方案与现有технология栈изсовместимыйсексиэкологиясистема Статус поддержки。нравиться Если компания уже использует конкретныйизбаза данных и имеет богатый практический опыт и поддержку сообщества, то может быть более целесообразным создать подбазу данных и подтаблицу в рамках этого стека технологий.
Подводя итог, подбаза данных и подтаблица, TiDB и OceanBase У каждого свои преимущества Применимые сюжеты. Делая выбор, следует всесторонне подойти к выбору бренда. бизнеса、Возможности технической команды、бюджет затраты экосистемы и другие факторы, выберите наиболее подходящее техническое решение для развития вашего бизнеса.
Навыки обновляются благодаря обмену ими, и каждый раз, когда я получаю новые знания, мое сердце переполняется радостью.
Искренне приглашаем вас подписаться на публичный аккаунт 『 код тридцать пять 』 , для получения дополнительной технической информации.