Oracle NoSQL-database - Oracle NoSQL Database
| Ontwikkelaar (s) | Oracle Corporation |
|---|---|
| Eerste uitgave | September 2011 |
| Stabiele vrijlating | 19.5 / 19 november 2019
|
| Geschreven in | Java |
| Beschikbaar in | Engels |
| Type | NoSQL |
| Licentie | Apache-licentie 2.0 (CE) en eigendom (EE) |
| Website | oracle |
Oracle NoSQL Database (ONDB) is een NoSQL- type gedistribueerde sleutelwaarde-database van Oracle Corporation . Het biedt transactionele semantiek voor gegevensmanipulatie, horizontale schaalbaarheid en eenvoudig beheer en monitoring.
Oracle heeft op 10 augustus 2018 Oracle Autonomous NoSQL Database Cloud (OANDC) uitgebracht. OANDC is een beheerde cloudservice voor applicaties die een lage latentie, flexibele datamodellen en elastische schaling vereisen voor dynamische workloads.
Ontwikkelaars richten zich op applicatieontwikkeling en vereisten voor gegevensopslag in plaats van het beheren van back-endservers, opslaguitbreiding, clusterimplementaties, topologie, software-installatie / patches / upgrades, back-up, besturingssystemen en beschikbaarheid. OANDC kan worden geschaald om te voldoen aan dynamische applicatieworkloads en doorvoervereisten.
Gebruikers maken tabellen om hun toepassingsgegevens op te slaan en databasebewerkingen uit te voeren. Een OANDC-tabel is vergelijkbaar met een relationele tabel met aanvullende eigenschappen, waaronder ingerichte schrijfeenheden, leeseenheden en opslagcapaciteit. Gebruikers leveren de doorvoer- en opslagcapaciteit in elke tabel op basis van verwachte workloads. OANDC-middelen worden overeenkomstig toegewezen en geschaald om aan de werklastvereisten te voldoen. Gebruikers worden op uurbasis gefactureerd op basis van de geleverde capaciteit.
OANDC ondersteunt tabelmodel. Elke rij wordt geïdentificeerd door een unieke sleutel en heeft een waarde van willekeurige lengte, die wordt geïnterpreteerd door de toepassing. De applicatie kan een enkele rij in een transactie manipuleren (invoegen, verwijderen, bijwerken, lezen). De applicatie kan ook een iteratieve, niet-transactionele scan uitvoeren van alle rijen in de database.
Licenties
Oracle Corporation verdeelt de Oracle NoSQL-database in drie edities:
- Oracle NoSQL Database Server Community Edition onder een Apache-licentie, versie 2.0
- Oracle NoSQL Enterprise Edition onder de Oracle Commercial License
- Oracle NoSQL Basic Edition
Oracle NoSQL Database is gelicentieerd met behulp van een freemium- model: open-source versies van Oracle NoSQL Community Edition zijn beschikbaar, maar eindgebruikers kunnen extra functies en ondersteuning aanschaffen via de Oracle Store. Bij integratie met andere Oracle-producten, zoals Oracle Enterprise Manager of Oracle Coherence , moet Oracle NoSQL Enterprise Edition worden aangeschaft.
Oracle NoSQL Database Basic-editie, is beschikbaar wanneer een klant een Oracle Database Enterprise Edition (DBEE) versie 11g of 12c-licentie koopt of heeft aangeschaft waarvoor hij het recht heeft om Oracle NoSQL Database Basic Edition te downloaden en te gebruiken. inbegrepen als onderdeel van het DBEE-ondersteuningscontract, indien ondersteuning is aangeschaft.
Oracle NoSQL-databasestuurprogramma's, waarvoor een licentie is verleend volgens de Apache 2.0-licentie , worden gebruikt met zowel de community- als enterprise-edities.
Belangrijkste kenmerken
Architectuur
Oracle NoSQL Database is gebouwd op de Oracle Berkeley DB Java Edition storage-engine met hoge beschikbaarheid . Het voegt services toe om een gedistribueerde, zeer beschikbare sleutel / waarde-opslag te bieden, geschikt voor grootschalige, latentiegevoelige applicaties.
Sharding en replicatie
Oracle NoSQL Database is een client-server, sharded , shared-nothing- systeem. De gegevens in elke shard worden gerepliceerd op elk van de knooppunten waaruit de shard bestaat. Het biedt een eenvoudig sleutel-waarde-paradigma voor de applicatie-ontwikkelaar. De hoofdsleutel voor een record is gehasht om de shard te identificeren waartoe het record behoort. Oracle NoSQL Database is ontworpen om het dynamisch wijzigen van het aantal shards te ondersteunen in reactie op de beschikbaarheid van aanvullende hardware. Als het aantal shards verandert, worden sleutel-waardeparen dynamisch opnieuw verdeeld over de nieuwe set shards, zonder dat het systeem hoeft te worden afgesloten en opnieuw moet worden opgestart. Een shard bestaat uit een enkel selecteerbaar masterknooppunt voor lees- en schrijfverzoeken, en verschillende replica's (meestal twee of meer) die leesverzoeken kunnen verwerken. Replica's worden up-to-date gehouden door middel van streamingreplicatie. Elke wijziging op het masterknooppunt wordt lokaal op schijf vastgelegd en ook doorgegeven aan de replica's.
Hoge beschikbaarheid en fouttolerantie
Oracle NoSQL Database biedt single-meester, multi-replica databasereplicatie . Transactiegegevens worden geleverd aan alle replicaknooppunten met een flexibel duurzaamheidsbeleid per transactie. In het geval dat het hoofdreplica -knooppunt uitvalt, minimaliseert een op consensus gebaseerd, op PAXOS gebaseerd geautomatiseerd fail-over verkiezingsproces de uitvaltijd. Zodra het defecte knooppunt is gerepareerd, voegt het zich weer bij de shard, wordt het bijgewerkt en komt het beschikbaar voor het verwerken van leesverzoeken. Oracle NoSQL Database-applicaties kunnen dus fouten van knooppunten binnen een shard tolereren en ook meerdere fouten van knooppunten in verschillende shards.
De juiste plaatsing van masters en replica's op serverhardware (racks en interconnect-switches) door Oracle NoSQL Database is bedoeld om de beschikbaarheid op commodity-servers te vergroten.
Transparante taakverdeling
Oracle NoSQL Database Driver verdeelt de gegevens in realtime en verdeelt deze gelijkmatig over de opslagknooppunten. Het is bewust van de netwerktopologie en latentie, en routeert lees- en schrijfbewerkingen naar het meest geschikte opslagknooppunt om de belastingverdeling en prestaties te optimaliseren.
Administratie en systeembewaking
De beheerservice van Oracle NoSQL Database is toegankelijk via een webconsole of een opdrachtregelinterface . Deze service ondersteunt functionaliteit zoals de mogelijkheid om een opslagknooppunt te configureren, starten, stoppen en bewaken, zonder dat configuratiebestanden, shellscripts of expliciete databasebewerkingen nodig zijn. Hiermee kunnen Java Management Extensions (JMX) of Simple Network Management Protocol (SNMP) agents beschikbaar zijn voor monitoring. Hierdoor kunnen beheerclients informatie opvragen over de status, prestatiestatistieken en operationele parameters van een opslagknooppunt en zijn beheerde services.
Elastische configuratie
"Elasticiteit" verwijst naar dynamische online uitbreiding van het ingezette cluster. Het toevoegen van opslagknooppunten verhoogt de capaciteit, prestaties en betrouwbaarheid. Oracle NoSQL Database bevat een functie voor topologieplanning, waarmee een beheerder de configuratie van een NoSQL-database kan wijzigen terwijl de database online is. De beheerder kan:
- Verhoog de gegevensdistributie: door het aantal shards in het cluster te vergroten, waardoor de schrijfsnelheid toeneemt.
- Verhoog de replicatiefactor: door extra replicatieknooppunten toe te wijzen aan elke shard, waardoor de leesdoorvoer en systeembeschikbaarheid toenemen.
- Herbalanceren van gegevensopslag: door de capaciteit van opslagknooppunten te wijzigen, kan het systeem opnieuw worden gebalanceerd, waarbij replicatieknooppunten naar behoefte opnieuw worden toegewezen aan opslagknooppunten.
Beheerders kunnen replicatieknooppunten en / of partities verplaatsen van overbelaste knooppunten naar onderbenutte opslagknooppunten of vice versa.
Implementatie in meerdere zones
Oracle NoSQL Database ondersteunt meerdere zones om op intelligente wijze replicatie van processen en gegevens toe te wijzen, om de betrouwbaarheid tijdens hardware-, netwerk- en stroomgerelateerde uitvalmodi te verbeteren. De twee typen zones zijn: primaire zones die knooppunten bevatten die als master of replica's kunnen dienen en die doorgaans zijn verbonden door snelle onderlinge verbindingen. Secundaire zones bevatten knooppunten die alleen als replica's kunnen dienen. Secundaire zones kunnen worden gebruikt om leestoegang met lage latentie te bieden tot gegevens op een verre locatie, of om alleen-lezen werkbelastingen zoals analyses, het genereren van rapporten en gegevensuitwisseling te ontlasten voor een verbeterd werkbelastingbeheer.
JSON-gegevensformaat
Oracle NoSQL Database ondersteunt Avro -dataserialisatie, die een compacte, op schema's gebaseerde binaire gegevensindeling biedt. Schema's worden gedefinieerd met behulp van JSON . Oracle NoSQL Database ondersteunt schema-evolutie. Configureerbare Smart Topology Systeembeheerders geven aan hoeveel capaciteit beschikbaar is op een bepaald opslagknooppunt, waardoor meer capabele knooppunten meerdere replicatieknooppunten kunnen hosten. Zodra het systeem de capaciteit voor de opslagknooppunten in een configuratie kent, wijst het automatisch op intelligente wijze replicatieknooppunten toe. Dit is bedoeld voor een betere taakverdeling, een beter gebruik van systeembronnen en het minimaliseren van de systeemimpact in het geval van een storing in het storageknooppunt. Smart Topology ondersteunt datacenters en zorgt ervoor dat in eerste instantie een volledige set replica's aan elk datacenter wordt toegewezen.
Online rollende upgrade
Oracle NoSQL Database biedt faciliteiten om een doorlopende upgrade uit te voeren, waardoor een systeembeheerder clusterknooppunten kan upgraden terwijl de database beschikbaar blijft.
Fouttolerantie
Oracle NoSQL Database kan worden geconfigureerd als C / P of A / P in CAP . In het bijzonder, als schrijfbewerkingen zijn geconfigureerd om synchroon naar alle replica's te worden uitgevoerd, is het C / P in CAP, dwz een partitie- of knooppuntfout zorgt ervoor dat het systeem niet beschikbaar is voor schrijfbewerkingen. Als replicatie asynchroon wordt uitgevoerd en reads zijn geconfigureerd om te worden geserveerd vanaf elke replica, is het A / P in CAP, dwz het systeem is altijd beschikbaar, maar er is geen garantie voor consistentie.
Database-functies
Tabelgegevensmodel
Release 3.0 introduceerde een gegevensstructuur in tabelvorm, die het modelleren van toepassingsgegevens vereenvoudigt door gebruik te maken van bestaande schemaontwerpconcepten. Het tabelmodel is gelaagd bovenop de gedistribueerde sleutel / waarde-structuur, waardoor alle voordelen worden geërfd en het applicatieontwerp wordt vereenvoudigd door naadloze integratie met bekende SQL-gebaseerde applicaties
Secundaire index
Alleen op de primaire sleutel gebaseerde indexering beperkt het aantal toegangspaden met lage latentie. Soms hebben applicaties een pad nodig dat niet op de primaire sleutel is gebaseerd om specifieke applicatie-eisen te ondersteunen. OND ondersteunt secundaire index op elk waardeveld.
Ondersteuning voor grote objecten
Op Oracle NoSQL Database EE Stream gebaseerde API's maken het mogelijk om grote objecten (LOB's), zoals audio- en videobestanden, te lezen en te schrijven, zonder dat het hele bestand in het geheugen hoeft te worden gematerialiseerd. Dit is bedoeld om de latentie van bewerkingen in gemengde werkbelastingen van objecten van verschillende grootten te verminderen.
ACID-compatibele transactie
Oracle NoSQL Database biedt ACID- compatibele transacties voor volledige creatie-, lees-, update- en verwijderbewerkingen (CRUD) , met instelbare transactiegaranties voor duurzaamheid en consistentie. Een reeks bewerkingen kan functioneren als een enkele atomaire eenheid, zolang alle betrokken records hetzelfde hoofdsleutelpad delen.
Integratie
Oracle NoSQL Database bevat ondersteuning voor Java , C , Python , C # en REST API's. Hiermee kan de applicatie-ontwikkelaar CRUD-bewerkingen uitvoeren. Deze bibliotheken bevatten Avro-ondersteuning, zodat ontwikkelaars sleutelwaarde-records kunnen serialiseren en sleutelwaarde-records onderling uitwisselbaar kunnen deserialiseren tussen C- en Java-toepassingen.
Oracle RESTful Services
Oracle NoSQL Database ondersteunt Oracle REST Data Services (ORDS). Hierdoor kunnen klanten een op REST gebaseerde applicatie bouwen die toegang heeft tot gegevens in Oracle Database of OND.
GeoJSON
Ondersteunt ruimtelijke query's op RFC7946-compatibele GeoJSON- gegevens. Ruimtelijke functies en indexering voor GeoJSON-gegevens worden ondersteund.
Apache Hadoop
KVAvroInputFormat- en KVInputFormat- klassen zijn beschikbaar om gegevens van OND native in Hadoop MapReduce-taken te lezen. Een gebruik voor deze klasse is om NoSQL-databaserecords in te lezen in Oracle Loader for Hadoop.
Oracle-integratie
Oracle Big Data SQL en Hive
Oracle Big Data SQL is een algemene SQL-toegangslaag tot gegevens die zijn opgeslagen in Hadoop , HDFS, Hive en OND. Hierdoor kunnen klanten Oracle NoSQL-gegevens opvragen vanuit Hive of Oracle Database . Gebruikers kunnen MapReduce- taken uitvoeren op basis van gegevens die zijn opgeslagen in OND en die zijn geconfigureerd voor veilige toegang. De nieuwste release ondersteunt ook zowel primitieve als complexe gegevenstypen
Oracle-database
Oracle NoSQL Database EE ondersteunt externe tabellen, maakt het mogelijk om Oracle NoSQL-gegevens uit de Oracle-database op te halen met behulp van SQL-instructies zoals Select, Select Count (*) enz. Zodra NoSQL-gegevens worden weergegeven via externe tabellen, heeft men toegang tot de gegevens via standaard JDBC-stuurprogramma's en / of visualiseer het door middel van business intelligence-tools voor ondernemingen.
Andere Oracle-producten
Oracle Event Processing (OEP) biedt leestoegang tot Oracle NoSQL Database via de NoSQL Database-cartridge. Zodra de cartridge is geconfigureerd, kunnen CQL-query's worden gebruikt. Oracle Semantic Graph bevat een Jena Adapter voor Oracle NoSQL Database om grote hoeveelheden RDF- gegevens op te slaan (als tripletten / quadruplets). Deze adapter biedt snelle toegang tot grafiekgegevens die zijn opgeslagen in OND via SPARQL- queries. Door integratie met Oracle Coherence kan OND worden gebruikt als cache voor Oracle Coherence- applicaties, waardoor applicaties rechtstreeks toegang hebben tot gegevens in de cache van OND.
Enterprise-beveiliging
Oracle NoSQL Database EE ondersteunt OS-onafhankelijke, clusterbrede wachtwoordgebaseerde gebruikersauthenticatie en Oracle Wallet-integratie en biedt betere bescherming tegen ongeautoriseerde toegang tot gevoelige gegevens. Bovendien verbeteren Secure Sockets Layer (SSL) -codering op sessieniveau en netwerkpoortbeperkingen de bescherming tegen netwerkinbraak.
Release-updates
OND versie 4.0 - Nieuwe functies:
- Zoeken in volledige tekst - Elastic Search.
- Time-To-Live - efficiënte veroudering van "verlopen" gegevens - een veel voorkomende IoT-vereiste.
- SQL Query - Declaratieve querytaal.
- Predicaat pushdown - mogelijkheid om predikaten van Big Data SQL in NoSQL-databaseknooppunten te verwerken zonder gegevens door te geven die niet aan het predikaat voldoen, voor verbeterde prestaties en schaalbaarheid.
- Importeren / exporteren - Gemakkelijk om een back-up te maken van gegevens of om gegevens te verplaatsen tussen Oracle NoSQL Database-archieven.
Prestatie
Het Oracle NoSQL Database-team heeft samengewerkt met verschillende belangrijke Oracle-partners, waaronder Intel en Cisco , die Yahoo! Cloud Serving Benchmarks (YCSB) op verschillende hardwareconfiguraties en publiceerde de resultaten ervan. In 2012 meldde Oracle bijvoorbeeld dat Oracle NoSQL Database meer dan 1 miljoen gemengde YCSB Ops / Sec overschreed.