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:07] – [Description des données] 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 45: | 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 55: | 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 112: | 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 124: | 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 180: | Ligne 185: | ||
| </ | </ | ||
| | | ||
| - | ==== Jointure ==== | + | === Jointure === |
| + | | ||
| 10. L' | 10. L' | ||
| Ligne 213: | Ligne 219: | ||
| </ | </ | ||
| </ | </ | ||
| - | ==== Agrégation ==== | + | |
| + | |||
| + | === Agrégation === | ||
| 11. L' | 11. L' | ||
| Ligne 258: | 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 383: | 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 396: | 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 410: | 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 423: | Ligne 572: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | |||
| + | <fc # | ||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| 10. Pour le document " | 10. Pour le document " | ||
| Ligne 436: | 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 455: | 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 482: | 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 494: | Ligne 892: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | |||
| 15. Pour chaque date d' | 15. Pour chaque date d' | ||
| Ligne 508: | Ligne 944: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| 16. Donner les achats au mois d' | 16. Donner les achats au mois d' | ||
| Ligne 526: | Ligne 1021: | ||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | ===== Utilisation de Couchbase en local (facultatif) ===== | ||
| - | ==== Utilisation de Couchbase depuis les machines de la PPTI (facultatif)==== | ||
| 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 ==== | ||
| - | ==== Installation Couchbase sur vos machines personnelles (facultatif) ==== | ||
| * Télécharger | * Télécharger | ||
| Ligne 543: | Ligne 1272: | ||
| {{: | {{: | ||
| - | ==== Lancement de Couchbase en local ==== | ||
| Ligne 549: | 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 563: | 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 586: | 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.1639584466.txt.gz · Dernière modification : de amine
