N1QL, considéré par ses créateurs comme étant un « dialecte du SQL » possède une syntaxe très similaire à ce dernier, sauf qu’il permet d’interroger une base de données NoSQL s’appuyant sur des données en format JSON. Ceci permet d’effectuer toutes les opérations de base des SGBD relationnels telles que les jointures par exemple, qui pourront désormais s’effectuer entre les documents JSON et même au sein du même document entre une donnée parente et ses fils. Pour cela, N1QL renvoi simplement des objets vides au cas où on lui demande de sélectionner des données qui ne satisfont pas la clause WHERE, ceci permettra de gérer les données non structurées avec une flexibilité qui n’existaient par auparavant avec le langage SQL.
Voici un exemple d’une requête N1QL qui illustre bien les avantages de cette combinaison :
Code : | Sélectionner tout |
1 2 3 4 5 | SELECT usr.personal_details, orders FROM users_with_orders usr USE KEYS "Elinor_33313792" JOIN orders_with_users orders ON KEYS ARRAY s.order_id FOR s IN usr.shipped_order_history END |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 | { "results": [ { "orders": [ { "doc_type": "order", "order_details": { "order_datetime": "Wed Jun 6 18:53:39 2012", "order_id": "T103929516925" }, "payment_details": { "payment_mode": "Debit Card", "total_charges": 308 }, "product_details": { "list_price": 318, "product_id": "P3109994453", "sale_price": 303 }, "shipping_details": { "shipping_charges": 5, "shipping_status": "Delivered", "shipping_type": "Express" }, "user_id": "Elinor_33313792" }, ], "personal_details": { "age": 60, "email": "Elinor.Ritchie@snailmail.com", "first_name": "Elinor", "last_name": "Ritchie", } } ] } |
Couchbase Server 4.0 introduit aussi le Multi-Dimensional Scaling qui redéfinit la façon dont les entreprises distribuaient leurs bases de données avec l'option de mise à l'échelle multidimensionnelle. Cette fonctionnalité sépare, isole et met à l’échelle des services individuels (requête, index, données) dans le but d’améliorer la performance des applications et augmenter l'utilisation des ressources. « Couchbase Server 4.0 est la première et unique base de données distribuée, capable d'évoluer avec la vitesse et la précision requise par les applications d'entreprise avec des charges de travail variables », déclare l’équipe de développement dans un billet de blog. « Il est inefficace d'exiger la participation de chaque nœud pour effectuer une requête ou de maintenir un index. Le Multi-Dimensional Scaling résout ce problème en mettant à l'échelle des données indépendamment de la requête et des index ».
Concernant les autres fonctionnalités que propose Couchbase Server 4.0, on peut citer :
- L’amélioration des performances des indexes existants (basés sur MapReduce) grâce à l’introduction du Global Secondary Index (GSI).
- Le support complet des Spacial Views qui permet aux applications d’interroger les données sur la base de coordonnées géographiques.
- L’introduction du moteur de stockage ForestDB qui permet de profiter des optimisations des disques SSD ainsi que des processeurs multi-cores pour effectuer plusieurs lectures et écritures en même temps.
Télécharger la version Beta de Couchbase Server 4.0
Source : Communiqué de presse Couchbase, Release Notes
Et vous ?
Que pensez-vous de ces nouvelles fonctionnalités ?
Quel avantage peut vous apporter le N1QL ? Les autres SGBD devraient-ils l’adopter aussi ?