RethinkDB - Maîtriser son langage d'interrogation
À propos de ce cours
Table des matières
- Introduction
- Présentation et caractéristiques du systéme RethinkDB
- Présentation des données et import dans RethinkDB
- Langage de requête REQL
Programme du cours
Objectifs d'apprentissage
- Comprendre les concepts fondamentaux de RethinkDB et son architecture distribuée.
- Maîtriser les opérations de base avec REQL pour interroger et manipuler les données.
- Apprendre à importer et structurer des données dans RethinkDB.
- Découvrir les fonctionnalités avancées telles que les changements en temps réel et les jointures.
- Savoir optimiser les requêtes pour des performances accrues.
Public cible
Ce cours s'adresse aux développeurs, administrateurs de bases de données et architectes logiciels souhaitant explorer une solution NoSQL moderne et scalable. Une connaissance de base des bases de données (relationnelles ou NoSQL) et de JavaScript/Node.js est recommandée pour tirer pleinement profit du contenu.
Introduction
RethinkDB est une base de données NoSQL open-source conçue pour stocker des documents JSON de manière scalable et performante. Son langage de requête, REQL (RethinkDB Query Language), permet une interaction fluide avec les données via des opérations chaînables. Contrairement aux bases SQL traditionnelles, RethinkDB offre des fonctionnalités uniques comme les changements en temps réel (changefeeds) et une réplication intégrée.
Présentation et caractéristiques du système RethinkDB
RethinkDB se distingue par son architecture distribuée, sa tolérance aux pannes et sa facilité de mise à l'échelle horizontale. Parmi ses caractéristiques clés :
- Modèle de données JSON : Stockage flexible sans schéma prédéfini.
- Changefeeds : Permet de surveiller les modifications en temps réel.
- Cluster natif : Réplication et sharding transparents.
- REQL : Langage de requête intégré, utilisable depuis plusieurs langages (JavaScript, Python, etc.).
Présentation des données et import dans RethinkDB
Les données dans RethinkDB sont organisées en bases de données, tables et documents JSON. Pour importer des données :
- Créer une base de données et une table via l'interface Admin ou REQL.
- Utiliser des outils comme
rethinkdb importpour charger des fichiers JSON/CSV. - Valider la structure avec des requêtes simples (
r.table('users').limit(5)).
Exemple d'insertion :
r.db('test').table('posts').insert([ { title: "Premier article", tags: ["tech", "db"] }, { title: "RethinkDB guide", author: "Alice" } ]).run(connection); Langage de requête REQL
REQL combine la puissance des requêtes SQL avec une syntaxe fluide et programmatique. Principales opérations :
- Sélection :
r.table('users').filter({ age: 30 }) - Agrégation :
r.table('logs').group('severity').count() - Jointures :
r.table('authors').eqJoin('book_id', r.table('books')) - Changements temps réel :
r.table('messages').changes()
REQL supporte également les transactions, les index secondaires et les opérations géospatiales.
Optimisation et bonnes pratiques
Pour des performances optimales :
- Créer des index sur les champs fréquemment interrogés (
r.table('users').indexCreate('email')). - Limiter l'utilisation de
orderBysur de grands jeux de données. - Profiler les requêtes avec
r.expr(...).profile().