Base de données Oracle NoSQL - Oracle NoSQL Database
| Développeur (s) | Oracle Corporation |
|---|---|
| Première version | Septembre 2011 |
| Version stable | 19.5 / 19 novembre 2019
|
| Écrit en | Java |
| Disponible en | Anglais |
| Taper | NoSQL |
| Licence | Licence Apache 2.0 (CE) et propriétaire (EE) |
| Site Internet | oracle |
Oracle NoSQL Database (ONDB) est une base de données clé-valeur distribuée de type NoSQL d' Oracle Corporation . Il fournit une sémantique transactionnelle pour la manipulation des données, l'évolutivité horizontale et une administration et une surveillance simples.
Oracle a publié Oracle Autonomous NoSQL Database Cloud (OANDC) le 10 août 2018. OANDC est un service cloud géré pour les applications qui nécessitent une faible latence, des modèles de données flexibles et une mise à l'échelle élastique pour les charges de travail dynamiques.
Les développeurs se concentrent sur le développement d'applications et les exigences du magasin de données plutôt que sur la gestion des serveurs principaux, l'extension du stockage, les déploiements de cluster, la topologie, l'installation de logiciels / les correctifs / mises à niveau, la sauvegarde, les systèmes d'exploitation et la disponibilité. OANDC évolue pour répondre aux charges de travail des applications dynamiques et aux exigences de débit.
Les utilisateurs créent des tables pour stocker leurs données d'application et effectuer des opérations de base de données. Une table OANDC est similaire à une table relationnelle avec des propriétés supplémentaires, notamment les unités d'écriture provisionnées, les unités de lecture et la capacité de stockage. Les utilisateurs fournissent le débit et la capacité de stockage dans chaque table en fonction des charges de travail anticipées. Les ressources d'AADNC sont affectées et mises à l'échelle en conséquence pour répondre aux exigences de la charge de travail. Les utilisateurs sont facturés à l'heure en fonction de la capacité allouée.
OANDC prend en charge le modèle tabulaire. Chaque ligne est identifiée par une clé unique et a une valeur, de longueur arbitraire, qui est interprétée par l'application. L'application peut manipuler (insérer, supprimer, mettre à jour, lire) une seule ligne dans une transaction. L'application peut également effectuer une analyse itérative et non transactionnelle de toutes les lignes de la base de données.
Licence
Oracle Corporation distribue la base de données Oracle NoSQL en trois éditions:
- Oracle NoSQL Database Server Community Edition sous une licence Apache, version 2.0
- Oracle NoSQL Enterprise Edition sous la licence commerciale Oracle
- Édition de base d'Oracle NoSQL
La base de données Oracle NoSQL est concédée sous licence à l'aide d'un modèle freemium : des versions open source d'Oracle NoSQL Community Edition sont disponibles, mais les utilisateurs finaux peuvent acheter des fonctionnalités et une assistance supplémentaires via Oracle Store. En cas d'intégration avec d'autres produits Oracle tels qu'Oracle Enterprise Manager ou Oracle Coherence , alors Oracle NoSQL Enterprise Edition doit être acheté.
L'édition Oracle NoSQL Database Basic est disponible lorsqu'un client achète ou a acheté une licence Oracle Database Enterprise Edition (DBEE) version 11g ou 12c, il est autorisé à télécharger et à utiliser Oracle NoSQL Database Basic Edition. inclus dans le cadre du contrat de support DBEE, si le support a été acheté.
Les pilotes de base de données Oracle NoSQL, sous licence en vertu de la licence Apache 2.0 , sont utilisés avec les éditions communautaire et entreprise.
Caractéristiques principales
Architecture
Oracle NoSQL Database repose sur le moteur de stockage haute disponibilité Oracle Berkeley DB Java Edition . Il ajoute des services pour fournir un magasin de clés / valeurs distribué et hautement disponible, adapté aux applications de grand volume sensibles à la latence.
Partage et réplication
Oracle NoSQL Database est un système client-serveur, partitionné et sans partage . Les données de chaque partition sont répliquées sur chacun des nœuds qui composent la partition. Il fournit un paradigme clé-valeur simple au développeur d'applications. La clé principale d'un enregistrement est hachée pour identifier la partition à laquelle appartient l'enregistrement. Oracle NoSQL Database est conçu pour prendre en charge la modification dynamique du nombre de partitions en réponse à la disponibilité de matériel supplémentaire. Si le nombre de partitions change, les paires clé-valeur sont redistribuées dynamiquement dans le nouvel ensemble de partitions, sans nécessiter un arrêt et un redémarrage du système. Une partition est composée d'un seul nœud maître sélectionnable pour traiter les demandes de lecture et d'écriture, et de plusieurs répliques (généralement deux ou plus) qui peuvent servir des demandes de lecture. Les répliques sont mises à jour à l'aide de la réplication en continu. Chaque modification sur le nœud maître est validée localement sur le disque et également propagée aux répliques.
Haute disponibilité et tolérance aux pannes
Oracle NoSQL Database fournit une réplication de base de données mono-maître et multi-répliques . Les données transactionnelles sont fournies à tous les nœuds de réplique avec des politiques de durabilité flexibles par transaction. En cas de défaillance du nœud de réplique maître, un processus d'élection de basculement automatisé basé sur PAXOS basé sur le consensus minimise les temps d'arrêt. Dès que le nœud défaillant est réparé, il rejoint le fragment, mis à jour et devient ensuite disponible pour le traitement des demandes de lecture. Ainsi, les applications Oracle NoSQL Database peuvent tolérer les pannes de nœuds au sein d'une partition, ainsi que plusieurs pannes de nœuds dans des partitions distinctes.
Le placement correct des maîtres et des répliques sur le matériel serveur (racks et commutateurs d'interconnexion) par Oracle NoSQL Database est destiné à augmenter la disponibilité sur les serveurs de base.
Équilibrage de charge transparent
Le pilote de base de données Oracle NoSQL partitionne les données en temps réel et les répartit uniformément sur les nœuds de stockage. Il tient compte de la topologie du réseau et de la latence, acheminant les opérations de lecture et d'écriture vers le nœud de stockage le plus approprié afin d'optimiser la répartition de la charge et les performances.
Administration et surveillance du système
Le service d'administration d'Oracle NoSQL Database est accessible à partir d'une console Web ou d'une interface de ligne de commande . Ce service prend en charge des fonctionnalités telles que la possibilité de configurer, démarrer, arrêter et surveiller un nœud de stockage, sans nécessiter de fichiers de configuration, de scripts shell ou d'opérations de base de données explicites. Il permet aux agents Java Management Extensions (JMX) ou SNMP ( Simple Network Management Protocol ) d'être disponibles pour la surveillance. Cela permet aux clients de gestion d'interroger des informations sur l'état, les mesures de performances et les paramètres opérationnels d'un nœud de stockage et de ses services gérés.
Configuration élastique
«L'élasticité» fait référence à l'expansion dynamique en ligne du cluster déployé. L'ajout de nœuds de stockage augmente la capacité, les performances et la fiabilité. Oracle NoSQL Database comprend une fonction de planification de la topologie, avec laquelle un administrateur peut modifier la configuration d'une base de données NoSQL pendant que la base de données est en ligne. L'administrateur peut:
- Augmentez la distribution des données: en augmentant le nombre de partitions dans le cluster, ce qui augmente le débit d'écriture.
- Augmentez le facteur de réplication: en attribuant des nœuds de réplication supplémentaires à chaque partition, ce qui augmente le débit de lecture et la disponibilité du système.
- Rééquilibrer le magasin de données: en modifiant la capacité des nœuds de stockage, le système peut être rééquilibré, en réallouant les nœuds de réplication aux nœuds de stockage le cas échéant.
Les administrateurs peuvent déplacer des nœuds de réplication et / ou des partitions de nœuds surutilisés vers des nœuds de stockage sous-utilisés ou vice versa.
Déploiement multi-zone
Oracle NoSQL Database prend en charge plusieurs zones pour allouer intelligemment la réplication des processus et des données, afin d'améliorer la fiabilité en cas de panne matérielle, réseau et électrique. Les deux types de zones sont: les zones principales qui contiennent des nœuds qui peuvent servir de maîtres ou de répliques et qui sont généralement connectées par des interconnexions rapides. Les zones secondaires contiennent des nœuds qui ne peuvent servir que de répliques. Les zones secondaires peuvent être utilisées pour fournir un accès en lecture à faible latence aux données à un emplacement distant ou pour décharger des charges de travail en lecture seule telles que l'analyse, la génération de rapports et l'échange de données pour une meilleure gestion de la charge de travail.
Format de données JSON
Oracle NoSQL Database prend en charge la sérialisation des données Avro , qui fournit un format de données binaire compact basé sur un schéma. Les schémas sont définis à l'aide de JSON . Oracle NoSQL Database prend en charge l'évolution des schémas. Les administrateurs de Smart Topology System configurables indiquent la capacité disponible sur un nœud de stockage donné, ce qui permet à des nœuds plus capables d'héberger plusieurs nœuds de réplication. Une fois que le système connaît la capacité des nœuds de stockage dans une configuration, il alloue automatiquement les nœuds de réplication de manière intelligente. Ceci est destiné à un meilleur équilibrage de la charge, une meilleure utilisation des ressources système et à minimiser l'impact sur le système en cas de défaillance du nœud de stockage. Smart Topology prend en charge les centres de données , garantissant qu'un ensemble complet de réplicas est initialement alloué à chaque centre de données.
Mise à niveau progressive en ligne
Oracle NoSQL Database fournit des fonctionnalités pour effectuer une mise à niveau progressive, permettant à un administrateur système de mettre à niveau les nœuds de cluster pendant que la base de données reste disponible.
Tolérance aux pannes
La base de données Oracle NoSQL peut être configurée pour être C / P ou A / P dans CAP . En particulier, si les écritures sont configurées pour être exécutées de manière synchrone sur toutes les répliques, il s'agit de C / P dans CAP, c'est-à-dire qu'une défaillance de partition ou de nœud entraîne l'indisponibilité du système pour les écritures. Si la réplication est effectuée de manière asynchrone et que les lectures sont configurées pour être servies à partir de n'importe quelle réplique, c'est A / P dans CAP, c'est-à-dire que le système est toujours disponible, mais il n'y a aucune garantie de cohérence.
Fonctionnalités de la base de données
Modèle de données de table
La version 3.0 a introduit une structure de données tabulaire, qui simplifie la modélisation des données d'application en tirant parti des concepts de conception de schéma existants. Le modèle de table est superposé à la structure clé-valeur distribuée, héritant de tous ses avantages et simplifiant la conception des applications en permettant une intégration transparente avec les applications SQL familières
Index secondaire
L'indexation basée uniquement sur la clé primaire limite le nombre de chemins d'accès à faible latence. Parfois, les applications ont besoin de chemins non basés sur une clé primaire pour prendre en charge des exigences d'application spécifiques. OND prend en charge l'index secondaire sur n'importe quel champ de valeur.
Prise en charge des grands objets
Les API basées sur Oracle NoSQL Database EE Stream permettent de lire et d'écrire des objets volumineux (LOB) tels que des fichiers audio et vidéo, sans avoir à matérialiser l'intégralité du fichier en mémoire. Cela vise à réduire la latence des opérations sur des charges de travail mixtes d'objets de différentes tailles.
Transaction conforme ACID
Oracle NoSQL Database fournit des transactions compatibles ACID pour des opérations CRUD ( création, lecture, mise à jour et suppression ) complètes, avec des garanties de transaction de durabilité et de cohérence réglables. Une séquence d'opérations peut fonctionner comme une seule unité atomique tant que tous les enregistrements concernés partagent le même chemin de clé principal.
L'intégration
Oracle NoSQL Database inclut la prise en charge des API Java , C , Python , C # et REST . Ceux-ci permettent au développeur de l'application d'effectuer des opérations CRUD. Ces bibliothèques incluent la prise en charge d'Avro, afin que les développeurs puissent sérialiser les enregistrements clé-valeur et dé-sérialiser les enregistrements clé-valeur de manière interchangeable entre les applications C et Java.
Services Oracle RESTful
Oracle NoSQL Database prend en charge Oracle REST Data Services (ORDS). Cela permet aux clients de créer une application basée sur REST qui peut accéder aux données dans Oracle Database ou OND.
GeoJSON
Prend en charge les requêtes spatiales sur les données GeoJSON conformes à RFC7946 . Les fonctions spatiales et l'indexation des données GeoJSON sont prises en charge.
Apache Hadoop
Les classes KVAvroInputFormat et KVInputFormat sont disponibles pour lire des données depuis OND de manière native dans des travaux Hadoop MapReduce. Une utilisation de cette classe est de lire les enregistrements de base de données NoSQL dans Oracle Loader for Hadoop.
Intégration Oracle
Oracle Big Data SQL et Hive
Oracle Big Data SQL est une couche d'accès SQL commune aux données stockées dans Hadoop , HDFS, Hive et OND. Cela permet aux clients d'interroger les données Oracle NoSQL à partir de Hive ou Oracle Database . Les utilisateurs peuvent exécuter des travaux MapReduce sur des données stockées dans OND qui sont configurées pour un accès sécurisé. La dernière version prend également en charge les types de données primitifs et complexes
Base de données Oracle
Oracle NoSQL Database EE prend en charge la table externe permet d'extraire les données Oracle NoSQL de la base de données Oracle à l'aide d'instructions SQL telles que Select, Select Count (*) etc. Une fois les données NoSQL exposées via des tables externes, on peut accéder aux données via des pilotes JDBC standard et / ou visualisez-le grâce aux outils de Business Intelligence d'entreprise.
Autres produits Oracle
Oracle Event Processing (OEP) fournit un accès en lecture à la base de données Oracle NoSQL via la cartouche de base de données NoSQL. Une fois la cartouche configurée, les requêtes CQL peuvent être utilisées. Oracle Semantic Graph comprend un adaptateur Jena pour Oracle NoSQL Database pour stocker de gros volumes de données RDF (sous forme de triplets / quadruplets). Cet adaptateur permet un accès rapide aux données graphiques stockées dans OND via des requêtes SPARQL . L'intégration avec Oracle Coherence permet à OND d'être utilisé comme cache pour les applications Oracle Coherence , permettant aux applications d'accéder directement aux données mises en cache depuis OND.
Sécurité d'entreprise
Oracle NoSQL Database EE prend en charge l'authentification utilisateur par mot de passe indépendante du système d'exploitation à l'échelle du cluster et l'intégration d'Oracle Wallet et offre une meilleure protection contre les accès non autorisés aux données sensibles. De plus, le cryptage SSL ( Secure Sockets Layer ) au niveau de la session et les restrictions de port réseau améliorent la protection contre les intrusions sur le réseau.
Mises à jour des versions
OND Version 4.0 - Nouvelles fonctionnalités:
- Recherche plein texte - Recherche élastique.
- Time-To-Live - vieillissement efficace des données «expirées» - une exigence courante de l'IoT.
- Requête SQL - Langage de requête déclaratif.
- Predicate Pushdown - capacité à traiter les prédicats de Big Data SQL dans les nœuds de base de données NoSQL sans transmettre de données qui échouent au prédicat pour améliorer les performances et l'évolutivité.
- Importation / exportation - Facile à sauvegarder / restaurer des données ou à déplacer des données entre les magasins Oracle NoSQL Database.
Performance
L'équipe Oracle NoSQL Database a travaillé avec plusieurs partenaires Oracle clés, notamment Intel et Cisco , pour exécuter Yahoo! Cloud Serving Benchmarks (YCSB) sur diverses configurations matérielles, et publié ses résultats. Par exemple, en 2012, Oracle a signalé qu'Oracle NoSQL Database dépassait 1 million d'opérations / sec YCSB mixtes.