Адрес личного блога https://www.texixi.com/2019/0…
программа
Предыстория проекта
При нынешней структуре банка вопросов интеграция многоканальных данных мощностью 1300 Вт, приобретенных для новых целей, не влияет на существующие функции. Из-за большого объема данных необходима сегментация данных.
Целевой сценарий
- Совместимость со старыми функциями
- Суб-база данных и подтаблица данных объемом более 1300 Вт
- Старые данные необходимо консолидировать
- Учителя могут выбирать вопросы и составлять статьи в соответствии с разделом исследования, предметом, уровнем знаний, сложностью и типом.
- Учащиеся получают соответствующие темы в соответствии с темами, выбранными преподавателями.
- Зарезервируйте количественное пространство для расширенных дополнительных данных в течение трех лет
Образец данных
| 1285336 | Начальная школа |
| 6655780 | Младшая средняя школа |
| 6144072 | старшая школа |
| 1869524 | Математика в младших классах средней школы |
| 1356224 | Химия в младших классах средней школы |
| 288440 | Младшая средняя школа Английский язык |
Схема сегментации I
- Разделенные на три библиотеки, они представляют собой начальную школу, среднюю школу и старшую среднюю школу, данные о которых учтены выше.
- Каждая база данных разделена на 10 таблиц в соответствии с (дисциплина + первичные знания)% 10
- Сводная таблица для каждой библиотеки
Недостаток: Пример: Когда используются разные точки знаний, для получения данных требуется несколько таблиц.
Преимущества: Распределение данных более среднее
Схема разделения II (Принятие)
- Разделенные на три библиотеки, они представляют собой начальную школу, среднюю школу и старшую среднюю школу, данные о которых учтены выше.
- Каждая библиотека разделена на 10 таблиц (все 10 дисциплин) в соответствии с дисциплинами, например, математическими таблицами и физическими таблицами.
- Сводная таблица для каждой библиотеки
Недостаток: данные не являются средними, количество случаев с большими данными составляет более 186 Вт по математике и 28 по английскому языку.
Преимущества: Когда полезно составлять статьи и другие темы, которые необходимо проверить на наличие множества точек знаний, запросы к нескольким таблицам не требуются.
Раздел с саморастущим интервалом идентификатора данных
- Начальная школа 100-200 миллионов
- 200-300 миллионов учащихся средних школ
- 300 миллионов средних школ
Схема ассоциации
Получение оптического потока на основе точек знаний
Саморазвивающийся идентификатор
- Не обрабатывайте исходный интервал идентификатора
- Планирование саморазвивающегося сегмента идентификатора после сегментации
Совместимость со старыми функциями
Проблема Решена
- Старые и новые данные содержат повторяющиеся точки знаний и темы.
- Структура старых и новых данных различна
- Изменение кода функции Старого Банка вопросов
- Конфликт первичного ключа при объединении двух наборов баз вопросов
Совместимость со Старым функциональным решением 1 (Личная рекомендация)
- Старые данные с операцией стираются в новую структуру, и старые данные совместимы только с исходными данными функции, но не отображаются.
Преимущество: Без изменения структуры данных последняя структура данных о покупке становится более четкой. Легко поддерживать и расширять, потому что старые данные теперь интегрировали два набора данных
Недостатки: Весь старый функциональный код необходимо изменить (для новой структуры данных)
Совместимость со старой функциональной схемой 2
- Интеграция вновь приобретенных данных в старую структуру данных при сохранении трех пакетов данных требует обработки конфликтов первичных ключей всех таблиц и дублирования данных трех пакетов таблиц.
Преимущество:
- Старый код изменяет только часть сегментации структуры данных, а не весь функциональный код.
Недостатки:
- Данные запутаны, в базе данных одновременно существуют три разных набора данных
- Новые структуры должны быть обработаны для интеграции в старые структуры данных, в то время как конфликты первичных ключей должны быть устранены.
- Соответствующие данные должны быть обработаны в коде
Проблемный момент
- Где хранятся изображения тестовой среды и формальной среды? Более 100 Гс, загрузка cdn занимает десятки дней, всего более 4000 Вт штук. В настоящее время CDN не поддерживает пакетную загрузку.
Решение: Купите отдельный сервер, сделайте резервную копию, сохраните фотографии
- Тестовая БД официально занимает в настоящее время около 100 г и требует места для хранения
Решение: Тестовая среда с новым жестким диском, новый порт экземпляра БД 3307, база данных формальной среды, хранящаяся на сервере образов
Шаблоны проектирования Кода
- Примите режим адаптера (исходная структура кода остается неизменной)
- диаграмма классов
Содержание исследования
Промежуточное программное обеспечение MY CAT (не используется)
Что такое МОЯ КОШКА
- Полностью Открытый кластер больших баз данных с открытым исходным кодом для разработки корпоративных приложений
- Расширенная база данных, поддерживающая транзакции, альтернативы ACID и MySQL
- Корпоративная база данных, которую можно рассматривать как кластер MySQL для замены дорогостоящего кластера Oracle
- Новый тип технологии кэширования памяти интеграции SQL Server, технологии NoSQL и больших данных HDFS
- Новое поколение Продуктов Баз данных Корпоративного уровня, Объединяющих Традиционную Базу данных и Новое Распределенное хранилище Данных
- Новый продукт промежуточного программного обеспечения для баз данных
Характеристики МОЕЙ КОШКИ
- == Поддержка вложенных таблиц в библиотеке (1.6)==
- == == Поддержка произвольного объединения в рамках одной библиотеки, объединения таблиц 2 между библиотеками и даже объединения нескольких таблиц на основе вызовов==
- Поддержка глобального серийного номера для решения проблемы генерации первичного ключа в распределенной среде.
- == Богатое правило фрагментации==, разработка плагинов, легко расширяется.
- На основе реализации Nio потоки эффективно управляются для решения проблемы высокого параллелизма.
- == Поддержка стратегии фрагментации глобальной таблицы и отношения ER для реализации эффективного запроса на объединение нескольких таблиц==
- Поддержка распределенных транзакций (слабый xa).
- Поддержка черного списка SQL и перехвата атак с использованием SQL-инъекций
- == Общий синтаксис SQL, поддерживающий базы данных, такие как MySQL, Oracle, DB2, SQL Server, PostgreSQL==
- == Соответствует собственному протоколу Mysql==, агент промежуточного программного обеспечения на разных языках, для разных платформ, для разных баз данных.
- == Автоматическая отработка отказа на основе сердцебиения поддерживает разделение чтения и записи, MySQL master-slave, кластер кластера Galera.
- Это может значительно снизить сложность разработки и повысить скорость разработки.
- Посмотрите на официальный сайт моей кошки
Заметки для моей кошки
- Обнаружение согласованности глобальной таблицы Версия 1.6 начинает поддерживать (Определение времени согласованности)
- Фрагментированное соединение (старайтесь использовать не левое или правое соединение, а внутреннее соединение)
Принцип Mycat
- Когда приложение сталкивается со многими базами данных, ему необходимо создать абстракцию уровня базы данных для управления этими базами данных. Для верхнего приложения требуется только абстракция уровня базы данных или промежуточного программного обеспечения базы данных, что является основной функцией Mycat.
- Анализ фрагментации, анализ маршрутизации, анализ разделения чтения и записи, анализ кэша и т.д., Затем отправьте этот SQL в реальную базу данных на заднем конце, обработайте возвращенные результаты должным образом и, наконец, вернитесь пользователю.
Сценарий приложения “Моя кошка”
- Разделение чтения и записи, простая конфигурация
- Таблицы и вложенные библиотеки, для фрагментации более 10 миллионов таблиц, максимальная поддержка фрагментации 100 миллиардов таблиц
- Система отчетности, с помощью способности моего кота разделять таблицы, обрабатывает крупномасштабную статистику отчетов
Расположение изделий
- Сценарии применения, которые подходят, которые не подходят для https://www.cnblogs.com/barry…
- Инструкции https://juejin.im/post/59c325…
Сводная таблица с использованием механизма слияния MySQL (не рассматривается)
- Объединенные таблицы должны использовать механизм MyISAM
- Таблицы должны быть структурно согласованными, включая индексы, типы полей, механизмы и наборы символов
- Для добавления, удаления и изменения можно напрямую управлять общей таблицей.
Принцип сегментации Данных
- Нельзя резать, насколько это возможно, чтобы не резать.
- Если вы хотите сегментировать, вы должны выбрать соответствующие правила сегментации и спланировать все заранее.
- Сегментация данных пытается уменьшить возможность межбиблиотечного объединения за счет избыточности данных или группы таблиц.
- Поскольку промежуточному программному обеспечению базы данных трудно понять преимущества и недостатки реализации объединения данных, а также очень сложно добиться высокой производительности, в бизнес-чтении как можно меньше используется объединение нескольких таблиц.
- Распределение данных по каждому узлу как можно более равномерно
- Это поле бизнеса является наиболее частым или важным условием запроса.