База данных Oracle NoSQL
![]() | |
Разработчик(и) | Корпорация Oracle |
---|---|
Первоначальный выпуск | сентябрь 2011 г |
Стабильная версия | 22.2 / 19 августа 2022 г. |
Написано в | Ява |
Доступно в | Английский |
Тип | NoSQL |
Лицензия | Лицензия Apache 2.0 (CE) и собственная лицензия (EE) |
Веб-сайт | оракул |
База данных Oracle NoSQL — это типа NoSQL база данных типа распределенная «ключ-значение» от корпорации Oracle . [1] [2] [3] [4] Он обеспечивает транзакционную семантику для манипулирования данными, горизонтальную масштабируемость, а также простое администрирование и мониторинг.
Облачная служба базы данных Oracle NoSQL — это управляемая облачная служба для приложений, которым требуется низкая задержка, гибкие модели данных и эластичное масштабирование для динамических рабочих нагрузок.
Разработчики сосредотачиваются на разработке приложений и требованиях к хранилищу данных, а не на управлении внутренними серверами, расширении хранилища, развертывании кластеров, топологии, установке/исправлениях/обновлениях программного обеспечения, резервном копировании, операционных системах и доступности. База данных NoSQL масштабируется для удовлетворения динамических рабочих нагрузок приложений и требований к пропускной способности.
Пользователи создают таблицы для хранения данных своих приложений и выполнения операций с базой данных. Таблица NoSQL аналогична реляционной таблице с дополнительными свойствами, включая предоставленные единицы записи, единицы чтения и емкость хранилища. Пользователи определяют пропускную способность и емкость хранилища в каждой таблице в зависимости от ожидаемых рабочих нагрузок. Ресурсы базы данных NoSQL распределяются и масштабируются соответствующим образом в соответствии с требованиями рабочей нагрузки. Пользователям выставляется почасовая оплата в зависимости от предоставленной мощности.
База данных NoSQL поддерживает табличную модель. Каждая строка идентифицируется уникальным ключом и имеет значение произвольной длины, которое интерпретируется приложением. Приложение может манипулировать (вставлять, удалять, обновлять, читать) одной строкой в транзакции. Приложение также может выполнять итеративное нетранзакционное сканирование всех строк базы данных.
Лицензирование
[ редактировать ]Корпорация Oracle распространяет базу данных Oracle NoSQL в трех редакциях:
- Oracle NoSQL Database Server Community Edition под лицензией Apache, версия 2.0
- Oracle NoSQL Enterprise Edition по коммерческой лицензии Oracle
- Базовая версия Oracle NoSQL
База данных Oracle NoSQL лицензируется по модели freemium : доступны версии Oracle NoSQL Community Edition с открытым исходным кодом , но конечные пользователи могут приобрести дополнительные функции и поддержку через Oracle Store. [5]
Драйверы базы данных Oracle NoSQL, [6] лицензированные в соответствии с лицензией Apache 2.0 , используются как в общественной, так и в корпоративной версиях. [7]
Основные особенности
[ редактировать ]Архитектура
[ редактировать ]База данных Oracle NoSQL построена на базе Oracle Berkeley DB Java Edition механизма хранения высокой доступности . Он добавляет службы для обеспечения распределенного, высокодоступного хранилища ключей/значений, подходящего для больших объемов приложений, чувствительных к задержкам. [8]
Шардинг и репликация
[ редактировать ]База данных Oracle NoSQL — это клиент-серверная система сегментированная без общего доступа . Данные в каждом сегменте реплицируются на каждом из узлов, входящих в состав сегмента. Основной ключ записи хешируется для идентификации сегмента, которому принадлежит запись. База данных Oracle NoSQL предназначена для поддержки динамического изменения количества сегментов в зависимости от доступности дополнительного оборудования. Если количество шардов меняется, пары ключ-значение перераспределяются по новому набору шардов динамически, без необходимости выключения и перезагрузки системы. Шард состоит из одного выбираемого главного узла для обслуживания запросов на чтение и запись, а также нескольких реплик (обычно двух или более), которые могут обслуживать запросы на чтение. Реплики поддерживаются в актуальном состоянии с помощью потоковой репликации. Каждое изменение на главном узле фиксируется локально на диске, а также распространяется на реплики.
Высокая доступность и отказоустойчивость
[ редактировать ]с одним главным сервером и несколькими репликами База данных Oracle NoSQL обеспечивает репликацию базы данных . [9] Транзакционные данные доставляются на все узлы реплик с гибкими политиками устойчивости для каждой транзакции. В случае сбоя узла главной реплики PAXOS автоматический процесс выбора резервного переключения на основе на основе консенсуса сводит к минимуму время простоя. Как только вышедший из строя узел будет восстановлен, он снова присоединяется к шарду, обновляется и затем становится доступным для обработки запросов на чтение. Таким образом, приложения базы данных Oracle NoSQL могут допускать сбои узлов внутри сегмента, а также множественные сбои узлов в отдельных сегментах.
Правильное размещение мастеров и реплик на серверном оборудовании (стойки и межблочные коммутаторы) базы данных Oracle NoSQL призвано повысить доступность обычных серверов.
Прозрачная балансировка нагрузки
[ редактировать ]Драйвер базы данных Oracle NoSQL [10] разделяет данные в режиме реального времени и равномерно распределяет их по узлам хранения. Он учитывает топологию сети и задержку, маршрутизирует операции чтения и записи на наиболее подходящий узел хранения для оптимизации распределения нагрузки и производительности.
Администрирование и мониторинг системы
[ редактировать ]Доступ к службе администрирования базы данных Oracle NoSQL можно получить из веб-консоли или интерфейса командной строки . Эта служба поддерживает такие функции, как возможность настройки, запуска, остановки и мониторинга узла хранения без необходимости использования файлов конфигурации, сценариев оболочки или явных операций с базой данных. Это позволяет агентам Java Management Extensions (JMX) или Simple Network Management Protocol (SNMP) быть доступными для мониторинга. Это позволяет клиентам управления запрашивать информацию о состоянии, показателях производительности и рабочих параметрах узла хранения и его управляемых сервисов . [11]
Эластичная конфигурация
[ редактировать ]«Эластичность» означает динамическое онлайн-расширение развернутого кластера. [12] Добавление узлов хранения увеличивает емкость, производительность и надежность. База данных Oracle NoSQL включает функцию планирования топологии, с помощью которой администратор может изменять конфигурацию базы данных NoSQL, пока база данных находится в сети. Администратор может:
- Увеличьте распределение данных: за счет увеличения количества шардов в кластере, что увеличивает пропускную способность записи.
- Увеличение коэффициента репликации: путем назначения дополнительных узлов репликации каждому шарду, что увеличивает пропускную способность чтения и доступность системы.
- Перебалансировка хранилища данных: изменяя емкость узлов хранения, систему можно перебалансировать, перераспределяя узлы репликации по узлам хранения. [13] по мере необходимости.
Администраторы могут перемещать узлы репликации и/или разделы с чрезмерно используемых узлов на недостаточно используемые узлы хранения и наоборот.
Многозонное развертывание
[ редактировать ]База данных Oracle NoSQL поддерживает несколько зон для интеллектуального распределения репликации процессов и данных с целью повышения надежности в режимах сбоев оборудования, сети и питания. Существует два типа зон: первичные зоны, которые содержат узлы, которые могут выступать в качестве мастеров или реплик и обычно соединяются быстрыми межсоединениями. Вторичные зоны содержат узлы, которые могут служить только репликами. Вторичные зоны можно использовать для обеспечения доступа к чтению данных в удаленном месте с низкой задержкой или для разгрузки рабочих нагрузок только для чтения, таких как аналитика, создание отчетов и обмен данными, для улучшения управления рабочей нагрузкой.
Формат данных JSON
[ редактировать ]База данных Oracle NoSQL поддерживает Avro [14] сериализация данных, которая обеспечивает компактный формат двоичных данных на основе схемы. Схемы определяются с использованием JSON . База данных Oracle NoSQL поддерживает эволюцию схемы. Системные администраторы настраиваемой интеллектуальной топологии указывают, какая емкость доступна на данном узле хранения, что позволяет более функциональным узлам размещать несколько узлов репликации. Как только система узнает о емкости узлов хранения в конфигурации, она автоматически разумно распределяет узлы репликации. Это предназначено для лучшей балансировки нагрузки, лучшего использования системных ресурсов и минимизации воздействия на систему в случае сбоя узла хранения. Интеллектуальная топология поддерживает центры обработки данных , гарантируя, что каждому центру обработки данных изначально будет выделен полный набор реплик.
Онлайн-обновление
[ редактировать ]База данных Oracle NoSQL предоставляет возможности для выполнения последовательного обновления, позволяя системному администратору обновлять узлы кластера, пока база данных остается доступной. [15]
Отказоустойчивость
[ редактировать ]может быть настроена как C/P или A/P База данных Oracle NoSQL в CAP . [16] В частности, если запись настроена на синхронное выполнение всех реплик, в CAP это C/P, т. е. сбой раздела или узла приводит к тому, что система становится недоступной для записи. Если репликация выполняется асинхронно и операции чтения настроены на обслуживание из любой реплики, в CAP это A/P, т. е. система всегда доступна, но нет гарантии согласованности.
Возможности базы данных
[ редактировать ]Модель данных таблицы
[ редактировать ]В версии 3.0 представлена табличная структура данных, которая упрощает моделирование данных приложения за счет использования существующих концепций проектирования схем. Табличная модель накладывается поверх распределенной структуры «ключ-значение», наследуя все ее преимущества и упрощая разработку приложений за счет обеспечения плавной интеграции со знакомыми приложениями на основе SQL.
Вторичный индекс
[ редактировать ]Индексирование на основе только первичного ключа ограничивает количество путей доступа с низкой задержкой. Иногда приложениям требуются пути, не основанные на первичном ключе, для поддержки определенных требований приложения. OND поддерживает вторичный индекс для любого поля значения. [17]
Поддержка крупных объектов
[ редактировать ]API-интерфейсы Oracle NoSQL Database EE Stream позволяют читать и записывать большие объекты (LOB), такие как аудио- и видеофайлы, без необходимости материализации всего файла в памяти. Это предназначено для уменьшения задержки операций при смешанных рабочих нагрузках объектов разных размеров. [18]
ACID-совместимая транзакция
[ редактировать ]База данных Oracle NoSQL обеспечивает транзакции, совместимые с ACID, для полных операций создания, чтения, обновления и удаления (CRUD) с регулируемыми гарантиями долговечности и согласованности транзакций. Последовательность операций может работать как единая атомарная единица, если все затронутые записи имеют один и тот же путь основного ключа. [19]
Интеграция
[ редактировать ]База данных Oracle NoSQL включает поддержку API Java , C , Python , C# и REST . Они позволяют разработчику приложения выполнять операции CRUD. Эти библиотеки включают поддержку Avro, поэтому разработчики могут сериализовать записи «ключ-значение» и десериализовать записи «ключ-значение» взаимозаменяемо между приложениями C и Java. [20]
Oracle RESTful-сервисы
[ редактировать ]База данных Oracle NoSQL поддерживает службы данных Oracle REST (ORDS). [21] Это позволяет клиентам создавать приложения на основе REST, которые могут получать доступ к данным в базе данных Oracle или OND.
GeoJSON
[ редактировать ]Поддерживает пространственные запросы к данным GeoJSON , соответствующим RFC7946 . Поддерживаются пространственные функции и индексирование данных GeoJSON.
Апач Хадуп
[ редактировать ]KVAvroInputFormat и KVInputFormat [22] доступны классы для чтения данных из OND в заданиях Hadoop MapReduce. Одно из применений этого класса — чтение записей базы данных NoSQL в загрузчик Oracle для Hadoop. [23]
Интеграция с Oracle
[ редактировать ]Oracle Big Data SQL и Hive
[ редактировать ]Oracle Big Data SQL — это общий уровень доступа SQL к данным, хранящимся в Hadoop , HDFS, Hive и OND. Это позволяет клиентам запрашивать данные Oracle NoSQL из Hive или базы данных Oracle . Пользователи могут запускать задания MapReduce для данных, хранящихся в OND, настроенном для безопасного доступа. Последняя версия также поддерживает как примитивные, так и сложные типы данных.
База данных Oracle
[ редактировать ]База данных Oracle NoSQL EE поддерживает внешнюю таблицу, что позволяет извлекать данные Oracle NoSQL из базы данных Oracle с помощью операторов SQL, таких как Select, Select Count(*) и т. д. Как только данные NoSQL предоставляются через внешние таблицы, к ним можно получить доступ через стандартные драйверы JDBC и/или визуализируйте его с помощью инструментов бизнес-аналитики предприятия.
Другие продукты Oracle
[ редактировать ]Oracle Event Processing (OEP) обеспечивает доступ для чтения к базе данных Oracle NoSQL через картридж базы данных NoSQL. После настройки картриджа можно использовать запросы CQL. Oracle Semantic Graph включает адаптер Jena для базы данных Oracle NoSQL. [24] для хранения больших объемов данных RDF (в виде триплетов/квадруплетов). Этот адаптер обеспечивает быстрый доступ к графическим данным, хранящимся в OND, посредством SPARQL запросов . Интеграция с Oracle Coherence позволяет использовать OND в качестве кэша для приложений Oracle Coherence , предоставляя приложениям прямой доступ к кэшированным данным из OND.
Безопасность предприятия
[ редактировать ]Oracle NoSQL Database EE поддерживает независимую от ОС аутентификацию пользователей на основе пароля на уровне всего кластера и интеграцию с Oracle Wallet, а также обеспечивает более высокий уровень защиты. [25] от несанкционированного доступа к конфиденциальным данным. (SSL) на уровне сеанса Secure Sockets Layer Кроме того, шифрование и ограничения сетевых портов улучшают защиту от вторжения в сеть.
Производительность
[ редактировать ]Команда Oracle NoSQL Database работала с несколькими ключевыми партнерами Oracle, включая Intel и Cisco . [26] выполнение Yahoo! Cloud Serving Benchmarks (YCSB) на различных конфигурациях оборудования и опубликовал свои результаты. Например, в 2012 году Oracle сообщила, что база данных Oracle NoSQL превысила 1 миллион смешанных операций YCSB в секунду. [27]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Технический обзор базы данных Oracle NoSQL» . www.oracle.com .
- ^ «Тестирование производительности базы данных Oracle NoSQL» .
- ^ Уэйнер, Питер (16 ноября 2011 г.). «Первый взгляд: база данных Oracle NoSQL» .
- ^ Вульф, Александр. «Знаете ли вы NoSQL?» . Форбс .
- ^ «Магазин Оракул» . shop.oracle.com .
- ^ «Загрузка базы данных Oracle NoSQL» . www.oracle.com .
- ^ «База данных Oracle NoSQL 12c, выпуск 2 (12.2.4.5)» . docs.oracle.com .
- ^ « Информационный документ по базе данных Oracle NoSQL» ( PDF) .
- ^ «Глава 1. Введение в базу данных Oracle NoSQL» . docs.oracle.com .
- ^ Интеллектуальные драйверы
- ^ «Администрирование базы данных Oracle NoSQL» . www.oracle.com . Проверено 15 апреля 2019 г.
- ^ «Эластичное расширение» . www.oracle.com .
- ^ «Узлы хранения» .
- ^ «Глава 8. Привязки Avro» . docs.oracle.com .
- ^ «Последовательное обновление» . www.oracle.com .
- ^ Абади, Дэниел (4 октября 2011 г.). «Размышления о СУБД: обзор базы данных Oracle NoSQL» .
- ^ «База данных Oracle NoSQL 3.0 поддерживает табличную модель данных и вторичное индексирование» . ИнфоQ .
- ^ «Поддержка крупных объектов» . www.oracle.com .
- ^ «Транзакции базы данных Oracle NoSQL» . www.oracle.com .
- ^ «API базы данных Oracle NoSQL» . www.oracle.com .
- ^ Сравнивать: «Обзор (API подключаемого модуля Oracle REST Data Services)» . скачать.oracle.com . Корпорация Оракл . Проверено 30 ноября 2015 г.
В этом документе описывается, как разрабатывать и развертывать плагины, которые интегрируются со средой выполнения Oracle REST Data Services (ORDS).
- ^ «API базы данных Oracle NoSQL» . docs.oracle.com .
- ^ «Использование базы данных Oracle NoSQL с Hadoop» . www.oracle.com .
- ^ «Загрузки Oracle Semantic Technologies» . www.oracle.com .
- ^ «База данных Oracle NoSQL 3.0 повышает безопасность и производительность» . www.dbta.com . 2 апреля 2014 г.
- ^ «Центр обработки данных Cisco» (PDF) . Циско .
- ^ «База данных Oracle NoSQL превышает 1 миллион смешанных операций YCSB в секунду». Архивировано 20 мая 2015 г. на Wayback Machine.