Введение в базу данных NoSQL и применимые сценарии
Введение в базу данных NoSQL и применимые сценарии
NoSQLбаза данных(Not Only SQL) — нереляционная база данных. система управления данными, которая быстро развивалась в последние годы в ответ на потребности больших данных, облачных вычислений, Интернета и мобильных приложений и предоставляет традиционную базу на основе взаимоотношений. данных (СУБД) Различные решения для хранения и управления данными. Далее идет NoSQLбаза Основные функции, применимые сценарии, модель данных и некоторые общие базы NoSQL. Краткое введение в систему данных.

Особенности и преимущества:

1. Гибкая модель данных: база данных NoSQL не ограничивается реляционной моделью и поддерживает различные структуры данных, такие как пары ключ-значение, документы, семейства столбцов, графика и т. д., которые могут более естественно отображать сложные и меняющиеся типы данных. и особенно подходит для обработки полуструктурированных и неструктурированных данных.

2. Горизонтальная масштабируемость. Базы данных NoSQL обычно проектируются как распределенные системы, и емкость хранилища и возможности обработки легко расширить горизонтально, добавив больше серверов, чтобы справиться с большими объемами данных и высокой степенью одновременного доступа. Эта горизонтальная масштабируемость позволяет базам данных NoSQL эффективно обрабатывать большие наборы данных и очень крупномасштабные приложения.

3. Слабая согласованность и доступность. Многие системы NoSQL используют модель окончательной согласованности, жертвуя определенной степенью согласованности данных в реальном времени в обмен на более высокую доступность системы и скорость ответа. Она подходит для приложений, к которым не предъявляются высокие требования к реальной работе. -согласованность времени, но необходимо обеспечить высокую доступность сценариев приложений.

4. Упрощенная архитектура и управление. Нет необходимости заранее определять строгие структуры таблиц, что позволяет модели данных гибко развиваться по мере изменения требований, что снижает сложность проектирования и обслуживания базы данных. В то же время базы данных NoSQL часто имеют такие механизмы, как автоматическое сегментирование, репликация данных и восстановление после сбоев, которые упрощают управление крупномасштабными данными.

5. Высокая производительность. Благодаря кэшированию данных, оптимизации локального дискового хранилища, параллельной обработке запросов и т. д. базы данных NoSQL могут обеспечить более высокую производительность запросов, чем традиционные реляционные базы данных при определенных рабочих нагрузках.

Сценарии применения:

- Обработка больших данных: для приложений, которым необходимо хранить и анализировать большие объемы данных (например, журналы, данные датчиков, записи поведения пользователей и т. д.), базы данных NoSQL обеспечивают эффективный прием данных и возможности запроса.

- Службы данных в реальном времени: в таких сценариях, как социальные сети, онлайн-игры и системы рекомендаций в реальном времени, которые требуют быстрого ответа на запросы пользователей и обработки высококонкурентных операций записи и чтения, характеристики высокой доступности и низкой задержки баз данных NoSQL являются важными. особенно важно.

- Среда облачных вычислений. Облачные приложения часто требуют гибкого масштабирования и возможностей распределенной обработки. Базы данных NoSQL хорошо адаптированы к потребностям облачных сред и поддерживают такие функции, как автоматическое расширение и межрегиональное развертывание.

- Управление контентом и хранение документов: для хранения полуструктурированных документов в JSON, XML и других форматах, таких как сообщения в блогах, информация о пользователях, информация о продуктах и ​​т. д., базы данных NoSQL на основе документов предоставляют интуитивно понятный и эффективный интерфейс запросов.

Модель данных:

— Хранилище «ключ-значение» (Key-Value): простое и быстрое хранение данных в виде пар «ключ-значение», таких как Redis и Memcached.

- База данных документов: хранит документы, аналогичные формату JSON или BSON, поддерживает вложенные структуры и динамические запросы, такие как MongoDB и CouchDB.

- Хранилище Column Family (Семейство столбцов): организует данные в кластерных единицах столбцов, подходящих для хранения массивных, разреженных и схожих по структуре данных, таких как HBase и Cassandra.

- База данных графов: специально разработана для обработки данных графов, состоящих из узлов, ребер и их атрибутов, используемых для моделирования сложных отношений и запросов, таких как Neo4j, OrientDB.

Распространенные базы данных NoSQL:

- Redis: хранилище ключей и значений в памяти, поддерживает обширные структуры данных (такие как строки, хэши, списки, наборы, упорядоченные наборы) и часто используется для кэширования, управления сеансами, ранжирования и т. д.

- MongoDB: база данных документов, известная своей гибкой моделью данных и мощным языком запросов, подходящая для веб-приложений, систем управления контентом, данных Интернета вещей и т. д.

- HBase: база данных семейства столбцов на основе Hadoop, подходящая для крупномасштабного, распределенного, ориентированного на столбцы произвольного чтения и записи и часто используемая в платформах анализа больших данных.

- Cassandra: база данных семейства распределенных столбцов, которая обеспечивает высокую доступность, отказоустойчивость и линейную масштабируемость и подходит для сценариев, требующих чрезвычайно высокой пропускной способности записи и запросов с низкой задержкой.

- Neo4j: база данных графов, хорошо подходит для обработки сложных сетей взаимоотношений, широко используется в анализе социальных сетей, системах рекомендаций, графах знаний и других областях.

Сравнение распространенных баз данных NoSQL и их применимых сценариев:

1. Redis

- Тип: хранилище значений ключа (тип памяти)

- Функции:

- Высокая производительность: на основе работы с памятью поддерживается сохранение данных на жестком диске.

- Несколько структур данных: поддерживает несколько типов данных, таких как строки, хеши, списки, наборы, упорядоченные наборы и т. д.

- Поддерживает расширенные функции, такие как транзакции, сценарии Lua, публикация/подписка и потоки.

- Встроенная стратегия истечения срока действия и устаревания данных.

- Применимые сценарии:

- Кэш: часто используется в качестве кэша данных горячей точки для снижения нагрузки на серверную базу данных.

- Управление сеансами: сохранение информации о сеансах пользователей и обеспечение распределенного совместного использования сеансов.

- Ранжирование: обновляйте и запрашивайте данные о рейтинге в режиме реального времени.

- Очередь сообщений: используйте списки или потоки для реализации упрощенных очередей сообщений.

- Распределенная блокировка: реализация службы блокировки в распределенной среде.

2. MongoDB

- Тип: база данных документов

- Функции:

- Модель документа в формате JSON: поддерживает вложенные структуры и позволяет легко отображать сложные объекты.

- Динамический запрос: используйте богатые языки запросов (например, MQL) для операций запроса и агрегирования.

- Автоматическое сегментирование: поддерживает горизонтальное расширение данных и обрабатывает большие объемы данных.

- Вторичный индекс: поддерживает создание индексов для любого поля документа.

- Поддержка транзакций (начиная с версии 4.0): соответствует определенному уровню свойств ACID.

- Применимые сценарии:

- Веб-приложения: особенно системы управления контентом, хранилища пользовательских данных и другие сценарии, требующие гибких моделей данных.

- Данные Интернета вещей: храните и анализируйте большие объемы разнородных данных, генерируемых устройствами.

- Анализ в реальном времени: Сотрудничайте с системой агрегирования для сбора статистики и анализа данных в реальном времени.

- Геопространственные данные: встроенный геопространственный индекс для обработки запросов, связанных с географическим местоположением.

3. Cassandra

- Тип: хранилище семейства столбцов (распределенное).

- Функции:

- Чрезвычайно высокая пропускная способность записи: спроектирована как распределенная система без центрального узла, поддерживающая высокий уровень одновременной записи.

- Высокая отказоустойчивость: связь между узлами и обнаружение неисправностей реализуются на основе протокола сплетен, а также сохраняется несколько копий данных.

- Нет единой точки отказа: нет архитектуры «главный-подчиненный», все узлы равны.

- Регулируемый уровень согласованности: поддерживает несколько уровней согласованности: от строгой до окончательной согласованности.

- Язык запросов CQL: язык запросов, подобный SQL, упрощающий операции.

- Применимые сценарии:

- Крупномасштабный анализ данных: уровень хранения данных в платформе обработки больших данных.

- Ведение журнала и мониторинг: храните и запрашивайте массивные данные журналов.

- Отслеживание поведения пользователей: собирайте и анализируйте данные о поведении пользователей.

- Система рекомендаций в реальном времени: обрабатывает данные рекомендаций с высокой степенью одновременной записи и запросов в реальном времени.

4. Neo4j

- Тип: графовая база данных.

- Функции:

- Графическая модель данных:Взять узел、Отношения и атрибуты представляют сущности、Информация о подключении и свойствах.

- Язык запросов шифрования: язык запросов, специально предназначенный для графических данных, поддерживающий поиск пути, сопоставление с образцом и т. д.

- Поддержка транзакций ACID: обеспечение атомарности, согласованности, изоляции и долговечности операций с данными.

- Библиотека графовых алгоритмов: встроенные несколько графовых алгоритмов для облегчения анализа сложных взаимосвязей.

- Применимые сценарии:

- Анализ социальных сетей: анализ взаимоотношений с пользователями, рекомендация друзей, открытие сообществ и т. д.

- Управление цепочками поставок: отслеживайте потоки материалов, выявляйте критические пути и оптимизируйте логистические сети.

- Граф знаний: построение и запрос сети взаимосвязей между сущностями, например энциклопедических знаний, внутренней базы знаний предприятия и т. д.

- Биоинформатика: Изучение взаимодействия генов и белков.

5. HBase

— Тип: хранилище семейства столбцов (на основе Hadoop).

- Функции:

- Хранилище столбцов: данные хранятся по семействам столбцов, что полезно для крупномасштабного анализа данных.

- Полностью распределенная: на основе Hadoop HDFS поддерживает хранение и обработку данных на уровне PB.

- Высокая степень одновременного чтения и записи: предназначена для оптимизации случайного чтения и записи, поддерживает сценарии с высоким количеством запросов в секунду.

- Контроль версий данных: поддерживает несколько версий данных для облегчения анализа временных рядов.

- Java API & SQL (Phoenix): предоставляет встроенную Java. Уровень API и SQL-запросов (Phoenix).

- Применимые сценарии:

- Хранение и анализ больших данных. Тесно интегрировано с экосистемой Hadoop в качестве базового хранилища для больших данных.

- Данные временных рядов: храните и запрашивайте данные временных рядов, такие как данные датчиков, записи транзакций и т. д.

- Хранение и анализ журналов: обработка крупномасштабных данных журналов и выполнение анализа в режиме реального времени или в автономном режиме.

Таким образом, какую базу данных NoSQL выбрать, зависит от конкретных требований приложения, включая модель данных, сложность запросов, требования к масштабируемости, требования к согласованности, требования к производительности и т. д. Redis подходит для кэширования, управления сеансами и других сценариев; MongoDB подходит для веб-приложений, требующих гибких моделей данных и запросов в реальном времени; Cassandra подходит для одновременной записи и хранения больших объемов данных; Neo4j имеет преимущества при обработке сложных реляционных данных и графический анализ, а HBase подходит в качестве базового хранилища платформы анализа больших данных.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.