Baza danych Oracle NoSQL - Oracle NoSQL Database
| Deweloper (y) | Oracle Corporation |
|---|---|
| Pierwsze wydanie | Wrzesień 2011 |
| Wersja stabilna | 19.5 / 19 listopada 2019
|
| Napisane w | Jawa |
| Dostępne w | język angielski |
| Rodzaj | NoSQL |
| Licencja | Licencja Apache 2.0 (CE) i zastrzeżona (EE) |
| Stronie internetowej | oracle |
Oracle NoSQL Database (ONDB) to rozproszona baza danych klucza i wartości typu NoSQL firmy Oracle Corporation . Zapewnia semantykę transakcyjną do manipulacji danymi, skalowalności poziomej oraz prostej administracji i monitorowania.
Firma Oracle udostępniła Oracle Autonomous NoSQL Database Cloud (OANDC) 10 sierpnia 2018 r. OANDC to zarządzana usługa w chmurze dla aplikacji, które wymagają małych opóźnień, elastycznych modeli danych i elastycznego skalowania dla dynamicznych obciążeń.
Programiści koncentrują się na opracowywaniu aplikacji i wymaganiach dotyczących magazynu danych, a nie na zarządzaniu serwerami zaplecza, rozszerzaniem pamięci masowej, wdrażaniem klastrów, topologią, instalacją / poprawkami / aktualizacjami oprogramowania, tworzeniem kopii zapasowych, systemami operacyjnymi i dostępnością. OANDC skaluje się, aby sprostać dynamicznym obciążeniom aplikacji i wymaganiom dotyczącym przepustowości.
Użytkownicy tworzą tabele do przechowywania danych aplikacji i wykonywania operacji na bazie danych. Tabela OANDC jest podobna do tabeli relacyjnej z dodatkowymi właściwościami, takimi jak aprowizowane jednostki zapisu, jednostki odczytu i pojemność pamięci. Użytkownicy przydzielają przepustowość i pojemność magazynu w każdej tabeli na podstawie przewidywanego obciążenia. Zasoby OANDC są przydzielane i skalowane odpowiednio do wymagań dotyczących obciążenia. Użytkownicy są rozliczani co godzinę na podstawie udostępnionej pojemności.
OANDC obsługuje model tabelaryczny. Każdy wiersz jest identyfikowany przez unikalny klucz i ma wartość o dowolnej długości, która jest interpretowana przez aplikację. Aplikacja może manipulować (wstawiać, usuwać, aktualizować, czytać) pojedynczym wierszem transakcji. Aplikacja może również wykonywać iteracyjne, nietransakcyjne skanowanie wszystkich wierszy w bazie danych.
Koncesjonowanie
Oracle Corporation rozprowadza bazę danych Oracle NoSQL w trzech edycjach:
- Oracle NoSQL Database Server Community Edition na licencji Apache w wersji 2.0
- Oracle NoSQL Enterprise Edition na licencji Oracle Commercial License
- Oracle NoSQL Basic Edition
Oracle NoSQL Database jest licencjonowana przy użyciu modelu freemium : dostępne są wersje Oracle NoSQL Community Edition o otwartym kodzie źródłowym , ale użytkownicy końcowi mogą zakupić dodatkowe funkcje i wsparcie za pośrednictwem Oracle Store. W przypadku integracji z innymi produktami Oracle, takimi jak Oracle Enterprise Manager lub Oracle Coherence , należy zakupić Oracle NoSQL Enterprise Edition.
Wersja Oracle NoSQL Database Basic jest dostępna, gdy klient kupi lub zakupił licencję na Oracle Database Enterprise Edition (DBEE) w wersji 11g lub 12c i jest uprawniony do pobrania i używania Oracle NoSQL Database Basic Edition. zawarte jako część umowy wsparcia DBEE, jeśli zakupiono wsparcie.
Sterowniki Oracle NoSQL Database, licencjonowane zgodnie z licencją Apache 2.0 , są używane zarówno w wersjach Community, jak i Enterprise.
Główne cechy
Architektura
Baza danych Oracle NoSQL jest oparta na silniku pamięci masowej o wysokiej dostępności Oracle Berkeley DB Java Edition . Dodaje usługi w celu zapewnienia rozproszonego, wysoce dostępnego magazynu kluczy / wartości, dostosowanego do aplikacji o dużym wolumenie, wrażliwych na opóźnienia.
Sharding i replikacja
Baza danych Oracle NoSQL jest systemem typu klient-serwer, podzielonym na fragmenty , bez współużytkowania . Dane w każdym fragmencie są replikowane w każdym z węzłów, które zawierają fragment. Zapewnia programiście aplikacji prosty paradygmat klucz-wartość. Klucz główny rekordu jest mieszany w celu zidentyfikowania fragmentu, do którego należy rekord. Baza danych Oracle NoSQL została zaprojektowana do obsługi dynamicznej zmiany liczby fragmentów w odpowiedzi na dostępność dodatkowego sprzętu. Jeśli liczba fragmentów ulegnie zmianie, pary klucz-wartość są redystrybuowane w nowym zestawie fragmentów dynamicznie, bez konieczności zamykania systemu i ponownego uruchamiania. Fragment składa się z jednego wybieralnego węzła głównego do obsługi żądań odczytu i zapisu oraz kilku replik (zwykle dwóch lub więcej), które mogą obsługiwać żądania odczytu. Repliki są aktualizowane za pomocą replikacji strumieniowej. Każda zmiana w węźle głównym jest zatwierdzana lokalnie na dysku, a także propagowana do replik.
Wysoka dostępność i odporność na uszkodzenia
Baza danych Oracle NoSQL zapewnia replikację bazy danych z jednym wzorcem i wieloma replikami . Dane transakcyjne są dostarczane do wszystkich węzłów replik z elastycznymi zasadami trwałości dla każdej transakcji. W przypadku awarii głównego węzła repliki, oparty na konsensusie automatyczny proces wyboru trybu fail-over oparty na PAXOS minimalizuje przestoje. Zaraz po naprawieniu uszkodzonego węzła ponownie łączy się z fragmentem, aktualizuje, a następnie staje się dostępny do przetwarzania żądań odczytu. W związku z tym aplikacje Oracle NoSQL Database mogą tolerować awarie węzłów we fragmencie, a także wielokrotne awarie węzłów w różnych fragmentach.
Prawidłowe umieszczenie modułów głównych i replik na sprzęcie serwerowym (stojakach i przełącznikach) przez Oracle NoSQL Database ma na celu zwiększenie dostępności na serwerach towarowych.
Przejrzyste równoważenie obciążenia
Sterownik bazy danych Oracle NoSQL dzieli dane na partycje w czasie rzeczywistym i równomiernie rozprowadza je w węzłach magazynowania. Jest to topologia sieci i uwzględniająca opóźnienia, kierująca operacje odczytu i zapisu do najbardziej odpowiedniego węzła magazynowania w celu optymalizacji rozkładu obciążenia i wydajności.
Administracja i monitorowanie systemu
Dostęp do usługi administracyjnej Oracle NoSQL Database można uzyskać z konsoli internetowej lub interfejsu wiersza poleceń . Ta usługa obsługuje takie funkcje, jak możliwość konfigurowania, uruchamiania, zatrzymywania i monitorowania węzła magazynowania bez konieczności używania plików konfiguracyjnych, skryptów powłoki lub jawnych operacji na bazie danych. Umożliwia monitorowanie agentów Java Management Extensions (JMX) lub Simple Network Management Protocol (SNMP). Dzięki temu klienci zarządzania mogą sondować informacje o stanie, metrykach wydajności i parametrach operacyjnych węzła magazynowania i zarządzanych przez niego usług.
Elastyczna konfiguracja
„Elastyczność” odnosi się do dynamicznej ekspansji online wdrożonego klastra. Dodanie węzłów pamięci masowej zwiększa pojemność, wydajność i niezawodność. Baza danych Oracle NoSQL zawiera funkcję planowania topologii, za pomocą której administrator może modyfikować konfigurację bazy danych NoSQL, gdy baza danych jest w trybie online. Administrator może:
- Zwiększ dystrybucję danych: zwiększając liczbę shardów w klastrze, co zwiększa przepustowość zapisu.
- Zwiększ współczynnik replikacji: przypisując dodatkowe węzły replikacji do każdego fragmentu, co zwiększa przepustowość odczytu i dostępność systemu.
- Ponowne zbilansowanie magazynu danych: modyfikując pojemność węzłów pamięci masowej, można ponownie zbilansować system, ponownie przydzielając węzły replikacji do węzłów magazynowania, stosownie do potrzeb.
Administratorzy mogą przenosić węzły i / lub partycje replikacji z nadmiernie wykorzystywanych węzłów do nieużywanych węzłów pamięci masowej lub odwrotnie.
Wdrożenie wielostrefowe
Baza danych Oracle NoSQL obsługuje wiele stref w celu inteligentnego przydzielania replikacji procesów i danych w celu zwiększenia niezawodności podczas awarii sprzętu, sieci i zasilania. Dwa typy stref to: strefy podstawowe, które zawierają węzły, które mogą służyć jako wzorce lub repliki i są zwykle połączone szybkimi połączeniami. Strefy dodatkowe zawierają węzły, które mogą służyć tylko jako repliki. Strefy dodatkowe mogą służyć do zapewniania dostępu do odczytu danych z niewielkim opóźnieniem w odległej lokalizacji lub do odciążania obciążeń tylko do odczytu, takich jak analizy, generowanie raportów i wymiana danych w celu lepszego zarządzania obciążeniami.
Format danych JSON
Baza danych Oracle NoSQL obsługuje serializację danych Avro , która zapewnia kompaktowy, binarny format danych oparty na schemacie. Schematy są definiowane za pomocą JSON . Baza danych Oracle NoSQL obsługuje ewolucję schematu. Konfigurowalna inteligentna topologia Administratorzy systemu wskazują, jaka pojemność jest dostępna w danym węźle magazynowania, umożliwiając węzłom o większej wydajności obsługę wielu węzłów replikacji. Gdy system dowie się o pojemności węzłów magazynowania w konfiguracji, automatycznie i inteligentnie przydzieli węzły replikacji. Ma to na celu lepsze równoważenie obciążenia, lepsze wykorzystanie zasobów systemowych i zminimalizowanie wpływu na system w przypadku awarii węzła magazynowania. Smart Topology obsługuje centra danych , zapewniając, że pełny zestaw replik jest początkowo przydzielany do każdego centrum danych.
Aktualizacja krocząca online
Baza danych Oracle NoSQL zapewnia narzędzia do przeprowadzania stopniowej aktualizacji, umożliwiając administratorowi systemu aktualizację węzłów klastra, podczas gdy baza danych pozostaje dostępna.
Tolerancja błędów
Bazę danych Oracle NoSQL można skonfigurować jako C / P lub A / P w CAP . W szczególności, jeśli zapisy są skonfigurowane tak, aby były wykonywane synchronicznie dla wszystkich replik, jest to C / P w CAP, tj. Awaria partycji lub węzła powoduje, że system jest niedostępny dla zapisu. Jeśli replikacja jest wykonywana asynchronicznie, a odczyty są skonfigurowane do obsługi z dowolnej repliki, jest to A / P w CAP, czyli system jest zawsze dostępny, ale nie ma gwarancji spójności.
Funkcje bazy danych
Model danych tabeli
W wersji 3.0 wprowadzono tabelaryczną strukturę danych, która upraszcza modelowanie danych aplikacji, wykorzystując istniejące koncepcje projektowania schematów. Model tabeli jest warstwowy na szczycie rozproszonej struktury klucz-wartość, dziedzicząc wszystkie jego zalety i upraszczając projektowanie aplikacji, umożliwiając bezproblemową integrację ze znanymi aplikacjami opartymi na języku SQL
Indeks pomocniczy
Indeksowanie oparte tylko na kluczu podstawowym ogranicza liczbę ścieżek dostępu o małych opóźnieniach. Czasami aplikacje wymagają ścieżek innych niż oparte na kluczu podstawowym, aby obsługiwać określone wymagania aplikacji. OND obsługuje indeks pomocniczy w dowolnym polu wartości.
Obsługa dużych obiektów
Interfejsy API oparte na Oracle NoSQL Database EE Stream umożliwiają odczytywanie i zapisywanie dużych obiektów (LOB), takich jak pliki audio i wideo, bez konieczności materializacji całego pliku w pamięci. Ma to na celu zmniejszenie opóźnienia operacji w mieszanych obciążeniach obiektów o różnych rozmiarach.
Transakcja zgodna z ACID
Baza danych Oracle NoSQL zapewnia transakcje zgodne z ACID dla pełnych operacji tworzenia, odczytu, aktualizacji i usuwania (CRUD) , z regulowanymi gwarancjami trwałości i spójności transakcji. Sekwencja operacji może działać jako pojedyncza jednostka atomowa , o ile wszystkie rekordy, na które ma to wpływ, mają tę samą główną ścieżkę klucza.
Integracja
Baza danych Oracle NoSQL obejmuje obsługę interfejsów API Java , C , Python , C # i REST . Umożliwiają one deweloperowi aplikacji wykonywanie operacji CRUD. Biblioteki te obejmują obsługę Avro, dzięki czemu programiści mogą serializować rekordy klucz-wartość i deserializować rekordy klucz-wartość zamiennie między aplikacjami C i Java.
Usługi Oracle RESTful
Baza danych Oracle NoSQL obsługuje usługi Oracle REST Data Services (ORDS). Dzięki temu klienci mogą zbudować aplikację opartą na REST, która może uzyskiwać dostęp do danych w bazie danych Oracle lub OND.
GeoJSON
Obsługuje zapytania przestrzenne dotyczące danych GeoJSON zgodnych z RFC7946 . Obsługiwane są funkcje przestrzenne i indeksowanie danych GeoJSON.
Apache Hadoop
Klasy KVAvroInputFormat i KVInputFormat są dostępne do odczytu danych z OND natywnie do zadań Hadoop MapReduce. Jednym z zastosowań tej klasy jest wczytywanie rekordów bazy danych NoSQL do programu Oracle Loader for Hadoop.
Integracja z Oracle
Oracle Big Data SQL i Hive
Oracle Big Data SQL to wspólna warstwa dostępu SQL do danych przechowywanych w Hadoop , HDFS, Hive i OND. Umożliwia to klientom wysyłanie zapytań do danych Oracle NoSQL z Hive lub Oracle Database . Użytkownicy mogą uruchamiać zadania MapReduce na danych przechowywanych w OND, które są skonfigurowane do bezpiecznego dostępu. Najnowsza wersja obsługuje również prymitywne i złożone typy danych
Baza danych Oracle
Oracle NoSQL Database EE obsługuje tabelę zewnętrzną, która umożliwia pobieranie danych Oracle NoSQL z bazy danych Oracle za pomocą instrukcji SQL, takich jak Select, Select Count (*) itp. Po ujawnieniu danych NoSQL za pośrednictwem zewnętrznych tabel można uzyskać dostęp do danych za pomocą standardowych sterowników JDBC i / lub wizualizuj go za pomocą narzędzi do analizy biznesowej.
Inne produkty Oracle
Oracle Event Processing (OEP) zapewnia dostęp do odczytu do bazy danych Oracle NoSQL za pośrednictwem kasety z bazą danych NoSQL. Po skonfigurowaniu kasety można używać zapytań CQL. Oracle Semantic Graph zawiera adapter Jena dla Oracle NoSQL Database do przechowywania dużych ilości danych RDF (jako trojaczki / czworaczki). Ten adapter umożliwia szybki dostęp do danych wykresów przechowywanych w OND za pośrednictwem zapytań SPARQL . Integracja z Oracle Coherence umożliwia używanie OND jako pamięci podręcznej dla aplikacji Oracle Coherence , umożliwiając aplikacjom bezpośredni dostęp do buforowanych danych z OND.
Bezpieczeństwo korporacyjne
Oracle NoSQL Database EE obsługuje niezależne od systemu operacyjnego, oparte na hasłach uwierzytelnianie użytkowników w całym klastrze oraz integrację z Oracle Wallet i zapewnia lepszą ochronę przed nieautoryzowanym dostępem do poufnych danych. Ponadto szyfrowanie Secure Sockets Layer (SSL) na poziomie sesji i ograniczenia portów sieciowych poprawiają ochronę przed włamaniami do sieci.
Aktualizacje wydania
Wersja OND 4.0 - Nowe funkcje:
- Wyszukiwanie pełnotekstowe - Elastyczne wyszukiwanie.
- Time-To-Live - wydajne starzenie się „wygasłych” danych - typowy wymóg IoT.
- Zapytanie SQL - deklaratywny język zapytań.
- Predicate Pushdown - możliwość przetwarzania predykatów z Big Data SQL w węzłach NoSQL Database bez przekazywania danych, które zawiodły predykat, w celu zwiększenia wydajności i skalowalności.
- Import / eksport - łatwe tworzenie kopii zapasowych / przywracanie danych lub przenoszenie danych między magazynami Oracle NoSQL Database.
Występ
Zespół Oracle NoSQL Database współpracował z kilkoma kluczowymi partnerami Oracle, w tym Intel i Cisco , wykonując Yahoo! Cloud Serving Benchmarks (YCSB) na różnych konfiguracjach sprzętowych i opublikował ich wyniki. Na przykład w 2012 r. Firma Oracle poinformowała, że baza danych Oracle NoSQL przekroczyła 1 milion mieszanych operacji YCSB / s.