Introduction au NoSQL
- L'historique du mouvement NoSQL.
- Les différentes approches de gestion de SGBD à travers le temps : hiérarchiques, relationnelles, objets, XML, NoSQL.
- Les cinq « V » du big data : Volume, Variété, Vélocité, Véracité, Validité.
- Données non structurées : activité web, échange de documents, réseaux sociaux, open data, IoT.
- Les grands acteurs à l'origine du mouvement NoSQL et du big data analytique : Google et Amazon.
- Vue synoptique des différents types de moteurs NoSQL du point de vue du modèle de données.
- Le NoSQL, le big data et les architectures cloud : principes d'architecture communs et divergents.
- Les modes de distribution : avec maître et décentralisé.
- Transactions distribuées, failover, points de sauvegarde, parallélisation des requêtes, équilibrage de charge.
- Le positionnement du NoSQL au sein du big data analytique : de l'ère de la transaction à l'ère de l'interaction.
Réflexion collective
Pourquoi le NoSQL ? Et pourquoi son succès ? Les besoins, l'évolution des architectures, la distribution et l'élasticité, le commodity hardware, quelques scénarios d'utilisation.
Le relationnel et le NoSQL.
- Les bases de données relationnelles : leurs forces et leurs limites.
- Structuration forte des données (schéma explicite) versus structure souple (schéma implicite) et la modélisation Agile.
- Des qualités ACID aux qualités BASE.
- Théorème CAP (cohérence, disponibilité, tolérance au partitionnement).
- Les différents niveaux de cohérence.
- Le langage SQL, la performance des jointures. L'accès par la clé en NoSQL.
- L'évolution vers le distribué : extensibilité verticale et horizontale.
- Comprendre le NoSQL par le modèle de l'agrégat et de la centralité de la donnée.
- le NewSQL, un redesign des moteurs relationnels pour la distribution. Étude de CockroachDB.
Réflexion collective
Le modèle de l'agrégat versus le modèle relationnel : comment choisir ? Comment gérer l'interopérabilité ?
Les mondes du NoSQL
- Monde du NoSQL à travers ses choix techniques et différentes bases NoSQL libres (du moins structuré au plus structuré).
- L'architecture distribuée : principes, le shared-nothing.
- Disponibilité et cohérence différée : gossip, timestamps, la règle de majorité, l'arbre de Merkle.
- Les patterns et les modèles. Comment modéliser et travailler efficacement en NoSQL.
- Les bases orientées clé-valeur et en mémoire : Redis, Riak, Aerospike.
- Les bases orientées documents : le format JSON. Couchbase Server, MongoDB.
- Les bases orientées colonnes distribuées pour le big data opérationnel : Hbase, Cassandra, ScyllaDB...
- Les moteurs orientés graphes : Neo4j, OrientDB...
- Les moteurs de recherche JSON : Elasticsearch, SOLR.
- Les bases de données de séries de temps : InfluxDB, KDB, Prometheus.
Démonstration
Démonstrations techniques, du point de vue de développement, de la mise en œuvre et de l'administration, des principaux moteurs NoSQL libres.
Choisir et mettre en place
- À quels usages correspondent les bases NoSQL ?
- Comment aborder la migration ?
- Comment développer efficacement avec des bases NoSQL ?
- Quels outils de supervision et comment les choisir ?
- Quelle est la complexité administrative et la courbe d’apprentissage ?
- Cas d’utilisation dans des entreprises existantes.
- Gérer les interactions avec les bases de données relationnelles.
- Implémenter des stratégies NoSQL avec des moteurs relationnels. L’exemple de PostgreSQL et ses extensions.
- Implémenter le NoSQL dans les clouds publics. Les pratiques et les offres de bases de données en tant que service.
Réflexion collective
Quel est l’intérêt de déployer des moteurs NoSQL dans le contexte de chacun et quel moteur NoSQL choisir ?
NoSQL et Big Data
- Big data analytique : l'écosystème Hadoop.
- Stockage et traitements. Les différentes formes de stockage dans HDFS : SequenceFile, Apache Parquet.
- Fonctions et usages : moteurs de recherche, outils de suggestion commerciale, détecteurs d'intrusion...
- Différents types de traitements : MapReduce, graphe orienté acyclique, flux, machine learning, graphes distribués...
- Fonctionnalités, outils et algorithmes : moteurs de recherche, Google Search, l'algorithme PageRank.
- L'outil intégré : Apache Spark.
- Connexion avec les moteurs opérationnels : ETL, Apache Sqoop.
Démonstration
Démonstrations de l'usage d'une plate-forme intégrée de big data analytique comme Apache Spark.