site:enseignement:master:mlbda:tmes:couchbase
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
site:enseignement:master:mlbda:tmes:couchbase [15/12/2021 17:09] – amine | site:enseignement:master:mlbda:tmes:couchbase [09/12/2024 12:00] (Version actuelle) – hubert | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{indexmenu_n> | {{indexmenu_n> | ||
+ | |||
+ | |||
====== TME N1QL sous Couchbase | ====== TME N1QL sous Couchbase | ||
Ligne 5: | Ligne 7: | ||
Ce TME utilise le système Couchbase qui pourra être installé suivant les instructions ci-dessous. | Ce TME utilise le système Couchbase qui pourra être installé suivant les instructions ci-dessous. | ||
Il est recommandé d' | Il est recommandé d' | ||
+ | ===== Description des données ===== | ||
- | |||
- | ==== Description des données ==== | ||
Le TME utilise 4 collections de données décrites ci-dessous : | Le TME utilise 4 collections de données décrites ci-dessous : | ||
Ligne 23: | Ligne 24: | ||
A toutes fins utiles, il est possible télécharger les données du TME depuis {{ : | A toutes fins utiles, il est possible télécharger les données du TME depuis {{ : | ||
+ | ===== Documentation N1QL ===== | ||
- | ==== Documentation N1QL ==== | ||
[[https:// | [[https:// | ||
[[https:// | [[https:// | ||
]] | ]] | ||
+ | ===== Questions ===== | ||
+ | ==== Exercice 1 ==== | ||
- | ===== Requêtes simples ===== | + | === Projection |
- | ==== Projection ==== | ||
1. L' | 1. L' | ||
Ligne 46: | Ligne 48: | ||
</ | </ | ||
- | 2. La liste des prix des 10 premiers produits. | + | 2. La liste des prix des 10 premiers produits |
<showif isloggedin> | <showif isloggedin> | ||
<code sql> | <code sql> | ||
Ligne 56: | Ligne 58: | ||
</ | </ | ||
- | ==== Sélection | + | === Sélection === |
- | 3. Les identifiants des produits (productId) ayant une note (rating) de 5. | + | |
+ | 3. Les identifiants des produits (productId) ayant au moins une note (rating) de 5. Les identifiants de produits sont tous distincts dans le reéultat. | ||
- | <fc # | + | <fc # |
<showif isloggedin> | <showif isloggedin> | ||
<code sql> | <code sql> | ||
- | SELECT productId | + | SELECT |
FROM reviews | FROM reviews | ||
where rating = 5 | where rating = 5 | ||
Ligne 113: | Ligne 116: | ||
7. Les identifiants des clients (customerId) dont tout les produits achetés le sont avec une quantité > 4. | 7. Les identifiants des clients (customerId) dont tout les produits achetés le sont avec une quantité > 4. | ||
+ | Ne retourner que les customerId uniques. | ||
- | <fc # | + | <fc # |
<showif isloggedin> | <showif isloggedin> | ||
<code sql> | <code sql> | ||
- | SELECT customerId | + | SELECT |
FROM purchases | FROM purchases | ||
WHERE EVERY item IN purchases.lineItems SATISFIES item.count > 4 END | WHERE EVERY item IN purchases.lineItems SATISFIES item.count > 4 END | ||
Ligne 125: | Ligne 129: | ||
+ | === Aplatissement des listes, parcours des listes === | ||
- | ==== Aplatissement des listes, parcours des listes ==== | ||
8.a) Les paires identifiants de produits (productId) et catégorie. Retourner une paire pour chaque combinaison de '' | 8.a) Les paires identifiants de produits (productId) et catégorie. Retourner une paire pour chaque combinaison de '' | ||
Ligne 181: | Ligne 185: | ||
</ | </ | ||
| | ||
- | ==== Jointure ==== | + | === Jointure === |
+ | | ||
10. L' | 10. L' | ||
Ligne 214: | Ligne 219: | ||
</ | </ | ||
</ | </ | ||
- | ==== Agrégation ==== | + | |
+ | |||
+ | === Agrégation === | ||
11. L' | 11. L' | ||
Ligne 259: | Ligne 267: | ||
</ | </ | ||
</ | </ | ||
- | ===== Requetes complexes ===== | + | |
+ | |||
+ | ==== Exercice 2 ==== | ||
1. Donner la liste de 10 produits qui se trouvent dans la catégorie " | 1. Donner la liste de 10 produits qui se trouvent dans la catégorie " | ||
+ | Indice : utiliser LIMIT et OFFSET | ||
<showif isloggedin> | <showif isloggedin> | ||
Ligne 384: | Ligne 396: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | |||
+ | <fc # | ||
+ | |||
+ | < | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | |||
7. Afficher les noms et les prix unitaires des produits dont le prix unitaire est inférieur à 6.99 et qui se trouvent dans la catégorie " | 7. Afficher les noms et les prix unitaires des produits dont le prix unitaire est inférieur à 6.99 et qui se trouvent dans la catégorie " | ||
Ligne 397: | Ligne 480: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | <fc # | ||
+ | |||
+ | < | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
8. Afficher les 10 produits les plus vendus. Pour chacun de ces produits afficher son nom et le nombre d' | 8. Afficher les 10 produits les plus vendus. Pour chacun de ces produits afficher son nom et le nombre d' | ||
Ligne 411: | Ligne 510: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | |||
9. Afficher les 5 produits les mieux notés (en fonction de la note moyenne). Pour chaque produit afficher son nom et sa note moyenne. | 9. Afficher les 5 produits les mieux notés (en fonction de la note moyenne). Pour chaque produit afficher son nom et sa note moyenne. | ||
Ligne 424: | Ligne 572: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
10. Pour le document " | 10. Pour le document " | ||
Ligne 437: | Ligne 614: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | "Pet Supplies" | ||
+ | ], | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ], | ||
+ | " | ||
+ | } | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ], | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ], | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | |||
11. Afficher les 10 clients qui ont dépensé le plus d' | 11. Afficher les 10 clients qui ont dépensé le plus d' | ||
Ligne 456: | Ligne 764: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | |||
12. Donner les nombre total de clients par région. Le résultat doit être trié par ordre décroissant du nombre de clients. | 12. Donner les nombre total de clients par région. Le résultat doit être trié par ordre décroissant du nombre de clients. | ||
Ligne 483: | Ligne 870: | ||
</ | </ | ||
+ | <fc # | ||
+ | < | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
14. Afficher les produits dont la note moyenne est inférieure à 1. Pour chaque produit on veut connaître son som, son identifiant et la note moyenne. | 14. Afficher les produits dont la note moyenne est inférieure à 1. Pour chaque produit on veut connaître son som, son identifiant et la note moyenne. | ||
Ligne 495: | Ligne 892: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | < | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | |||
15. Pour chaque date d' | 15. Pour chaque date d' | ||
Ligne 509: | Ligne 944: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | < | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
16. Donner les achats au mois d' | 16. Donner les achats au mois d' | ||
Ligne 527: | Ligne 1021: | ||
- | + | < | |
- | ==== Utilisation de Couchbase en local (facultatif)==== | + | { |
- | === Depuis les machines de la PPTI | + | " |
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | ===== Utilisation de Couchbase en local (facultatif) ===== | ||
Ligne 535: | Ligne 1261: | ||
Couchbase est pré-installé sur les machines de le PPTI. Il suffit de le lancer depuis un navigateur Web à l' | Couchbase est pré-installé sur les machines de le PPTI. Il suffit de le lancer depuis un navigateur Web à l' | ||
- | === Depuis machines personnelles === | + | ==== Depuis machines personnelles ==== |
Ligne 545: | Ligne 1272: | ||
{{: | {{: | ||
- | ==== Lancement de Couchbase en local ==== | ||
Ligne 551: | Ligne 1277: | ||
* Suivre ces [[https:// | * Suivre ces [[https:// | ||
+ | === Création des buckets === | ||
- | ==== Création des buckets ==== | ||
* Créer 4 nouveaux buckets avec les noms suivants (voir leur description ci-après): **product, customer, purchases et reviews**. Voir les instruction de création des buckets à cette [[https:// | * Créer 4 nouveaux buckets avec les noms suivants (voir leur description ci-après): **product, customer, purchases et reviews**. Voir les instruction de création des buckets à cette [[https:// | ||
Ligne 565: | Ligne 1291: | ||
* **reviews**: | * **reviews**: | ||
- | ==== Importation des données ==== | + | === Importation des données === |
* Télécharger et décompresser {{ : | * Télécharger et décompresser {{ : | ||
Ligne 588: | Ligne 1315: | ||
- | | ||
===== Données du TD (pour les révisions) ===== | ===== Données du TD (pour les révisions) ===== | ||
+ | |||
+ | |||
Dés-archiver {{ : | Dés-archiver {{ : | ||
site/enseignement/master/mlbda/tmes/couchbase.1639584591.txt.gz · Dernière modification : de amine