Savoir développer des applications bigData et mettre les oeuvre les outils adaptés aux différents types de données (Cassandra, spark, Neo4j, ElasticStack). Comprendre le fonctionnement des principaux outils de requêtage et de traitement des données. Acquérir les bonnes pratiques de distribution de messages, savoir configurer kafka pour intégrer les données de différents formats et de sources différentes. Comprendre les connexions existantes entre les mondes relationnels et NoSQL en environnement Big Data. Savoir mettre en oeuvre Hive et Pig, Impala, les Spark Dataframes.
Connaissance des bases des systèmes d'information, et notions de calculs statistiques et d'un langage de programmation
|
Introduction | L'essentiel du BigData : calcul distribué, données non structurées. Besoins fonctionnels et caractéristiques techniques des projets.La valorisation des données.Le positionnement respectif des technologies de cloud, BigData et noSQL, et les liens, implications. Concepts clés : ETL, Extract Transform Load, CAP, 3V, 4V, données non structurées, prédictif, Machine Learning. Exemple d'application : Amazon Rekognition, Polly, EMR. L'écosystème du BigData : les acteurs, les produits, état de l'art.Cycle de vie des projets BigData. Emergence de nouveaux métiers : Datascientists, Data labs, Hadoop scientists, CDO, ... Rôle de la DSI dans la démarche BigData. Gouvernance des données: importance de la qualité des données, fiabilité, durée de validité, sécurité des données Aspects législatifs : sur le stockage, la conservation de données, etc ...sur les traitements, la commercialisation des données, des résultats
|
|
Stockage distribué | Caractéristiques NoSQL. Les différents modes et formats de stockage. Les types de bases de données : clé/valeur, document, colonne, graphe.Besoin de distribution. Définition de la notion d'élasticité. Principe du stockage réparti. Définitions : réplication, sharding, gossip, hachage, Systèmes de fichiers distribués : GFS, HDFS, Ceph.Les bases de données : Redis, Cassandra, DynamoDB, Accumulo, HBase, MongoDB, BigTable, Neo4j, .. Données structurées et non structurées, documents, images, fichiers XML, JSON, CSV, ... Moteurs de recherche. Principe de fonctionnement. Méthodes d'indexation.Recherche dans les bases de volumes importants. Présentation de Elasticsearch et SolR Principe du schemaless, schéma de stockage, clé de distribution, clé de hachage
|
|
Calcul et restitution, intégration | Différentes solutions : calculs en mode batch, ou en temps réel,sur des flux de données ou des données statiques. Les produits : langage de calculs statistiques, R Statistics Language, sas, RStudio; outils de visualisation : Tableau, QlikView Ponts entre les outils statistiques et les bases BigData. Outils de calcul sur des volumes importants : Kafka/Spark Streaming/Storm en temps réel, Hadoop/Spark en mode batch. Zoom sur Hadoop : complémentarité de HDFS et YARN. Restitution et analyse : logstash, kibana, elk, zeppelin Principe de map/reduce et exemples d'implémentations, langages et sur-couches. Présentation de pig pour la conception de tâches map/reduce sur une grappe Hadoop.
|
|
ElasticStack | Présentation, fonctionnalités, licence Positionnement Elasticsearch et les produits complémentaires : Kibana,X-Pack, Logstash, Beats Principe : base technique Lucene et apports d'ElasticSearch Définitions et techniques d'indexation
|
|
Installation de base | Prérequis techniques. Installation avec les RPM
|
|
Outils d'interrogation | Communication en RESTFull avec le cluster Interface http DevTools, travaux pratiques, démonstration
|
|
Traitement des données | Structure des données. stockage, indexation Format des données. Conversion au format JSON des données à traiter. Interrogations avec Search Lite et avec Query DSL (domain-specific language) Notion de 'filtre' pour affiner des requêtes.
|
|
Autres composants | Démonstrations de Logstash, Kibana et Beats Intégration
|
|
Présentation de la pile elastic. | Positionnement d'Elasticsearch et des produits complémentaires :Kibana, Logstash, Beats, X-Pack Principe : base technique Lucene et apports d'ElasticSearch. Fonctionnement distribué Cas d'usage classiques : analyse de logs et sécurité, analyse de métriques, recherches web, etc ...
|
|
Installation et configuration | Prérequis techniques. Premiers pas dans la console DevTools de Kibana.
|
|
Concepts clés | Présentation des concepts clés d'ElasticSearch : index, types, documents, noeuds, clusters, shards et replica Notions de datatypes et mappings Opérations CRUD : exemples d'opérations basiques, création d'index et mappings
|
|
Format et stockage des données | Format des données. Conversion au format JSON des données à traiter. Structure des données. Stockage, indexation. Terminologie Elasticsearch : notions de document,index. Métadonnées : _index, _ID Choix de l'identifiant par l'application avec l'API index, ou genération automatique d'un identifiant.. Indexation inversée.
|
|
Outils d'interrogation | API RESTful en HTTP Exemples de requêtes simples et plus complexes : recherche de «phrases», extraction de plusieurs documents, etc .. Notion de pertinence du résultat : «score» Requêtes avec Search Lite et avec Query DSL (domain-specific language) Utilisation de 'filtre' pour affiner des requêtes. Aggrégation de résultats.
|
|
Gestion des accès concurrents | Utilisation du numéro de version. Gestion par l'application : différentes méthodes selon les contraintes fonctionnelles. Utilisation d'un numéro de version externe.
|
|
Analyse et visualisation de données | Principes de base de l'analyse de texte Recherche dans des données structurées, recherche full text, Ecriture de requêtes complexes. Notions d'agrégations, Mise en oeuvre : préparation des données, agrégation de mesures, bucket aggregation,
|
|
Flux logstash et présentation Kibana | Traitement de logs avec logstash Introduction à beats, installation et configuration Présentation Kibana et démonstrations Fonctionnalités : recherche, visualisation, création de tableaux de bord et graphiques à partir des données fournies par Elascticsearch
|
|
Python pour data-scientist | Besoins des data-scientist: calculs, analyse d'images, machine learning, interface avec les bases de données Apports de python:grande variété d'outils, expertise dans le domaine du calcul scientifique Tour d'horizon des outils: pandas, agate, bokeh, scikit-learn, pybrain, tensorflow, keras, mxnet, caffe
|
|
Calculs et graphiques | NumPy : Base du calcul sur des tableaux SciPy : Scientific Tools for Python, couche scientifique Manipulation de tableaux, fonctions mathématiques. Représentation graphique avec basemap et matplotlib. Mise en oeuvre de SciPy/NumPy : manipulation d'images, détection de contours
|
|
Manipulation de données relationnelles | Pandas : manipulation de tables de données Tableaux avec Pandas: indexation, opérations, algèbre relationnelle Stockage dans des fichiers: CSV, h5py, netCDF Comparaison et performances Pandas / NumPy
|
|
Machine learning et deep learning | Présentation de TensorFlow,scikit-learn,keras,mxnet,caffe TensorFlow:principe de fonctionnement, plateformes supportées, distribution, APIs fournies en standard, modèles d'apprentissage Projet scikit-learn:classification, régression, validation de modèles prédictifs. Démonstrations avec les modèles fournis par scikit-learn Positionnement et comparaison avec Keras, mxnet, caffe
|
|
Cassandra | Historique, fonctionnalités de Cassandra, licence Format des données,"key-value", traitement de volumes importants, haute disponibilité, système réparti de base de données, ...
|
|
Installation et configuration | Prérequis. Plate-formes supportées. Etude du fichier de configuration : conf/cassandra.yaml Répertoire de travail, de stockage des données, gestion de la mémoire. Démarrage d'un noeud et test de l'interface cliente cqlsh.
|
|
CQL | Commandes de base : connexion au système de base de données, création de colonnes,insertion, modification recherche, Le CQL : Cassandra Query Language. Exécution de scripts. Comment écrire des requêtes? Approches. Limitations du CQL.
|
|
Gestion de la grappe | Principe. Configuration des noeuds. Notion de bootstrapping et de token. Paramètres de démarrage des noeuds. Réplication: topologie du réseau et EndpointSnitch. Stratégie de réplication. ajout de noeuds, suppression. Architecture de stockage mémoire et disque dur, gestion des tombstones, bloom-filter Travaux pratiques : mise en place d'une configuration de production (multi-datacenters, multi-racks)
|
|
Supervision | Prometheus: installation, lancement et découverte Supervision avec nodetool. Principe des accès JMX. Exports JMX vers des outils de supervision. Démonstration avec Prometheus et Grafana.
|
|
Exploitation | Gestion des noeuds Cassandra. Sauvegardes, snapshots et export au format JSON. Principe de cohérence, hinted_handoff, digest request et read repair.
|
|
Support Hadoop | Principe de map/reduce. Implémentation Hadoop et intégration Hadoop/Cassandra.
|
|
Support Spark | Description rapide de l'architecture spark. Mise en oeuvre depuis Cassandra. Exécution d'application Spark s'appuyant sur une grappe Cassandra.
|
|
Performance | Outil de test de performance Cassandra-stress Mise en place d'un plan de stress et paramétrage.
|
|
Sécurité | Paramétrage, authentification, sécurisation de la base system_auth. Gestion des rôles et des autorisations.
|
|
Spark | Présentation Spark, origine du projet,apports, principe de fonctionnement.Langages supportés. Mise en oeuvre sur une architecture distribuée. Architecture : clusterManager, driver, worker, ...
|
|
Premiers pas | Utilisation du shell Spark avec Scala ou Python. Modes de fonctionnement. Interprété, compilé. Utilisation des outils de construction. Gestion des versions de bibliothèques. Mise en pratique en Java, Scala et Python. Notion de contexte Spark. Extension aux sessions Spark.
|
|
Cluster | Différents cluster managers : Spark interne, avec Mesos, avec Yarn, avec Amazon EC2 Architecture : SparkContext, SparkSession, Cluster Manager, Executor sur chaque noeud. Définitions : Driver program, Cluster manager, deploy mode, Executor, Task, Job Mise en oeuvre avec Spark et Amazon EC2. Soumission de jobs, supervision depuis l'interface web
|
|
Traitements | Lecture/écriture de données : Texte, JSon, Parquet, HDFS, fichiers séquentiels. Jointures. Filtrage de données, enrichissement. Calculs distribués de base. Introduction aux traitements de données avec map/reduce.
|
|
Support Cassandra | Description rapide de l'architecture Cassandra. Mise en oeuvre depuis Spark. Exécution de travaux Spark s'appuyant sur une grappe Cassandra.
|
|
DataFrames | Spark et SQL Objectifs : traitement de données structurées. L'API Dataset et DataFrames Optimisation des requêtes.Mise en oeuvre des Dataframes et DataSet. Comptabilité Hive Travaux pratiques: extraction, modification de données dans une base distribuée. Collections de données distribuées. Exemples.
|
|
Streaming | Objectifs , principe de fonctionnement: stream processing. Source de données : HDFS, Flume, Kafka, ... Notion de StreamingContexte, DStreams, démonstrations. Travaux pratiques : traitement de flux DStreams en Scala. Watermarking. Gestion des micro-batchs. Travaux pratiques: mise en oeuvre d'une chaîne de gestion de données en flux tendu : IoT, Kafka, SparkStreaming, Spark. Analyse des données au fil de l'eau.
|
|
Intégration hadoop | Rappels sur l'écosystème Hadoop de base : HDFS/Yarn. Création et exploitation d'un cluster Spark/YARN. Intégration de données sqoop, kafka, flume vers une architecture Hadoop et traitements par Spark. Intégration de données AWS S3.
|
|
Machine Learning | Fonctionnalités : Machine Learning avec Spark, algorithmes standards, gestion de la persistance, statistiques. Mise en oeuvre avec les DataFrames.
|
|
Spark GraphX | Fourniture d'algorithmes, d'opérateurs simples pour des calculs statistiques sur les graphes Travaux pratiques :exemples d'opérations sur les graphes.
|
|
Neo4J | Présentation Neo4j, les différentes éditions, license Fonctionnalités, stockage des données sous forme de graphes CQL : Cypher Query Language Positionnement par rapport aux autres bases de données, apports de Neo4j L'analyse de données. Cas d'usage
|
|
Installation et configuration | Les différentes méthodes d'installation Travaux pratiques : installation de Neo4J Enterprise Edition en cluster. Premiers pas avec l'interface web. Création de données, requêtage. Import de données.
|
|
Cypher Query Language | Syntaxe, description des relations avec CQL,les patterns Les clauses d'écriture : set, delete, remove, foreach, de lecture : match, optional match, where, count, case, .. Les fonctions : count, type, relationship, .. Principe de profondeur et de direction de relation dans une recherche. Les listes et les projections maps. Les algorithmes de Graphe. Travaux pratiques : création d'un graphe, Requêtes de recherche, navigation dans le graphe.
|
|
Exploitation | Sauvegardes et restaurations. Optimisation des transactions. Indexation. Client jmx. Points de surveillance.
|
|
Développement | Description des APIs disponibles: .Net, Java, Javascript, Python. Connexions, sessions et transactions. Principe de causalité entre transactions. La bibliothèque Apoc. Travaux pratiques : connexion et récupération de données provenant de Cassandra
|
|
Sécurité | Principe et activation. Paramètrage. Travaux pratiques : création d'un compte sécurisé
|
|
Kafka | Le projet Kafka : historique, fonctionnalités, principe de fonctionnement. Présentation de l'achitecture et du rôle de chaque composant : broker, producer, consumer. Liaison avec Zookeeper.
|
|
Mise en oeuvre | Préconisations d'installation et prérequis Travaux pratiques: installation et lancement de zookeeper et du kafka-server, Création d'un topic simple, Mise en oeuvre d'une chaîne de base. Visualisation des messages avec kafka-console-consumer.
|
|
Multi-broker | Etude de la configuration du broker Travaux pratiques : création d'une configuration multi-broker, démarrage de plusieurs noeuds.
|
|
Applicatif | Conception d'applications avec Kafka. Principe de fonctionnement. Travaux pratiques: Développement de prototypes en Python, Java, Scala. Couplage avec SparkStreaming en mode batch, en mode continu
|
|
La réplication | Facteur de réplication. Partitions. Travaux pratiques: tests de haute disponibilité dans une configuration multi-noeuds
|
|
Kafka Connect | Présentation des fonctionnalités : intégration de données d'origines multiples, modes de fonctionnement (standalone ou distribué) Types de connecteurs Travaux pratiques : configuration de connecteurs, ingestion de données, création d'une chaîne de transformation.
|
|
Sécurisation | Chiffrement SSL et authentification SASL. Sécurisation de l'infrastructure : Zookeeper, proxy Rest
|
|
Exploitation | Mise en oeuvre de kafka-tool. Gestion des logs. Détection de pannes : méthodes et outils. Benchmarks.
|
|
Intégration SQL | Besoin. Adéquation entre les objectifs et les outils. Faciliter la manipulation de gros volumes de données en conservant une approche utilisateurs. Rappels sur le stockage : HDFS, Cassandra, HBase et les formats de données : parquet, orc, raw, clés/valeurs. Les outils : Hive, Impala, Tez, Presto, Drill, Pig, Spark/QL
|
|
Hive et Pig | Présentation. Mode de fonctionnement. Rappel sur map/reduce. Hive : le langage HiveQL. Exemples. Pig : le langage pig/latin. Exemples.
|
|
Impala | Présentation. Cadre d'utilisation. Contraintes. Liaison avec le métastore Hive. Travaux pratiques : mise en évidence des performances.
|
|
Presto | Cadre d'utilisation. Sources de données utilisables. Travaux pratiques : mise en oeuvre d'une requête s'appuyant sur Cassandra et PostgreSQL.
|
|
Spark DataFrame | Les différentes approches. Syntaxe Spark/SQl. APIs QL. Compilation catalyst. Syntaxe, opérateurs. Travaux pratiques : mise en oeuvre d'une requête s'appusant sur HBase et HDFS.
|
|
Drill | Utilisation d'APIs JDBC, ODBC. Indépendance Hadoop. Contraintes d'utilisation. Performances.
|
|
Comparatifs | Compatibilité ANSI/SQL. Approches des différents produits. Critères de choix.
|
|
Besoin. | Adéquation entre les objectifs et les outils. Faciliter la manipulation de gros volumes de données en conservant une approche utilisateurs. Rappels sur le stockage : HDFS, Cassandra, HBase et les formats de données : parquet, orc, raw, clés/valeurs Les outils : Hive, Impala, Tez, Presto, Drill, Pig, Spark/QL
|
|
Hive et Pig | Présentation. Mode de fonctionnement. Rappel sur map/reduce. Hive : le langage HiveQL. Exemples. Pig : le langage pig/latin. Exemples.
|
|
Impala | Présentation. Cadre d'utilisation. Contraintes. Liaison avec le métastore Hive. Travaux pratiques : mise en évidence des performances.
|
|
Presto | Cadre d'utilisation. Sources de données utilisables. Travaux pratiques : mise en oeuvre d'une requête s'appuyant sur Cassandra et PostgreSQL.
|
|
Spark DataFrame | Les différentes approches. Syntaxe Spark/SQl. APIs QL. Compilation catalyst. Syntaxe, opérateurs. Travaux pratiques : mise en oeuvre d'une requête s'appusant sur HBase et HDFS.
|
|
Drill | Utilisation d'APIs JDBC, ODBC. Indépendance Hadoop. Contraintes d'utilisation. Performances.
|
|
Comparatifs | Compatibilité ANSI/SQL. Approches des différents produits. Critères de choix.
|