Discussion: Architecture big data

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2008
    Messages : 9
    Points : 7
    Points
    7

    Par défaut Architecture big data

    Bonjour à vous tous,

    Je souhaite mettre en place une plateforme big data pour centraliser le traitement de la donnée.

    J'ai des données de bases oracle, des fichiers plats(fréquence mensuelle) et/ou des opens data.

    J'aimerais savoir quel outils est optimal pour mon use case.

    J'ai identifié pour l'instant :
    - sqoop + flume + talend coté ETL.
    - hadoop (hdfs) + Hbase + oracle + mongoDb(Open data).
    - Hive et sparkSql pour la partie analytics.

    Merci par avance.

  2. #2
    Expert Oracle confirmé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2003
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2003
    Messages : 347
    Points : 683
    Points
    683

    Par défaut

    Bonsoir,

    Difficile de répondre à une telle question, surtout que je ne suis pas un expert en la matière.

    Moi je me poserais les 3 questions suivantes :

    1) la persistance des données et leurs formats : vous nous parlez d'Oracle, de fichiers plats et d'Open Data.

    Ok mais c'est quoi le format des données que vous êtes amené à traiter ? Du XML ? Du JSON ? Du CSV ? Autres ?

    Parce qu'au niveau stockage, tout est possible.

    Allez-vous stocker vos données dans une base NoSQL, sachant qu'il en existe de 4 types ? :
    - orientée clés / valeurs comme Redis
    - orientée documents JSON comme MongoDB ou CouchBase
    - orientée colonne orientée HBase ou Cassandra
    - orientée graphes comme Neo4j

    Ou bien allez-vous stocker vos fichiers sur du HDFS, sachant que la taille du bloc HDFS est souvent de 64 ou 128 Mo, et donc peu adaptée aux fichiers de petite taille ?

    Si ce sont des fichiers CSV, il est aussi possible de les traiter avec des Dataframes, en utilisant le langage R, ou bien en Python avec Panda, ou encore sous Spark.



    2) La question, sous-jacente à tout cela, est que suivant le logiciel ou le Framework retenu, on est confronté au langage d'utilisation.

    Les bases NoSQL ont leurs langages. Et les Framework aussi :
    - Java ou Python pour Map/Reduce, à moins d'utiliser Pig ou Hive (qui marche aussi sur Spark)
    - Java, Python ou Scala, voir R, pour Spark



    3) La 3ième question, c'est d'avoir une idée du type de traitements subies par les données.
    Est-ce pour faire de l'analytique ? Du Machine Learning ?
    Y a t'il du traitement itératif, qui nécessiterait par exemple de garder les données en mémoire (In-Memory), comme sait le faire Spark ?

    Pour finir, Spark a aussi l'avantage d'offrir, en plus du mode batch comme Hadoop, un mode interactif.

    Enfin, il sait traiter des données de type graphe grâce au projet GraphX.


    Voilà de nombreuses questions. En espérant vous avoir aidé un peu.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2008
    Messages : 9
    Points : 7
    Points
    7

    Par défaut

    Bonjour et merci pour vos réponses.

    1: Les données qu'on récupère (semi-structurée) sont au format Json d'ou le fait que j'ai pensé à les stockées dans une base MongoDB.

    2: Pour les tables oracle, j'ai pensé à les mettre dans un 1er temps sur Hdfs(avec Sqoop) puis de les travaillées et les mettre sur Hbase+Oracle (avec Hive par exemple).

    après pour la restitution de la donnée, avec Python ou R via Spark ou Map-reduce, on pourra les cherchées sur Hdfs et les autres Bases avant de les agrégés dans un DataFrame. (C'est dans un cas de maintenance prédictive).

    Pourriez vous me dire ce que vous pensez de l'architecture ?

    Merci par avance


    Citation Envoyé par rouardg Voir le message
    Bonsoir,

    Difficile de répondre à une telle question, surtout que je ne suis pas un expert en la matière.

    Moi je me poserais les 3 questions suivantes :

    1) la persistance des données et leurs formats : vous nous parlez d'Oracle, de fichiers plats et d'Open Data.

    Ok mais c'est quoi le format des données que vous êtes amené à traiter ? Du XML ? Du JSON ? Du CSV ? Autres ?

    Parce qu'au niveau stockage, tout est possible.

    Allez-vous stocker vos données dans une base NoSQL, sachant qu'il en existe de 4 types ? :
    - orientée clés / valeurs comme Redis
    - orientée documents JSON comme MongoDB ou CouchBase
    - orientée colonne orientée HBase ou Cassandra
    - orientée graphes comme Neo4j

    Ou bien allez-vous stocker vos fichiers sur du HDFS, sachant que la taille du bloc HDFS est souvent de 64 ou 128 Mo, et donc peu adaptée aux fichiers de petite taille ?

    Si ce sont des fichiers CSV, il est aussi possible de les traiter avec des Dataframes, en utilisant le langage R, ou bien en Python avec Panda, ou encore sous Spark.



    2) La question, sous-jacente à tout cela, est que suivant le logiciel ou le Framework retenu, on est confronté au langage d'utilisation.

    Les bases NoSQL ont leurs langages. Et les Framework aussi :
    - Java ou Python pour Map/Reduce, à moins d'utiliser Pig ou Hive (qui marche aussi sur Spark)
    - Java, Python ou Scala, voir R, pour Spark



    3) La 3ième question, c'est d'avoir une idée du type de traitements subies par les données.
    Est-ce pour faire de l'analytique ? Du Machine Learning ?
    Y a t'il du traitement itératif, qui nécessiterait par exemple de garder les données en mémoire (In-Memory), comme sait le faire Spark ?

    Pour finir, Spark a aussi l'avantage d'offrir, en plus du mode batch comme Hadoop, un mode interactif.

    Enfin, il sait traiter des données de type graphe grâce au projet GraphX.


    Voilà de nombreuses questions. En espérant vous avoir aidé un peu.

  4. #4
    Expert Oracle confirmé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2003
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2003
    Messages : 347
    Points : 683
    Points
    683

    Par défaut

    Bonjour,

    Désolé, mais je n'ai pas le niveau requis pour valider ton architecture. Pour résumer, j'ai fait un MOOC de 6 mois et demi en Big Data où j'en ai pris plein la tête sur Hadoop, Pig, Hive, Spark, HBase, Neo4j, Knime, Splunk et sur le Machine Learning.

    Et j'ai complété tout cela avec les formations gratuites en ligne sur MongoDB : http://university.mongodb.com

    D'ailleurs je viens de voir qu'il y en a une sur l'utilisation de Spark et MongoDB : https://university.mongodb.com/courses/M233/about

    Je manque donc cruellement d'expériences !!!

    Par contre, je te donne quand même mon avis : il y a beaucoup trop de technos pour moi dans ton choix. A priori, ton Use Case porte sur la maintenance prédictive. Pour moi, cela s'apparente à de la recherche de signaux faibles, à savoir détecter dans une masse d'infos souvent issues de capteurs, de faibles traces supposant un risque potentiel de panne sur un équipement quelconque.

    Pour ma part, j’essaierai de voir si je peux m'en sortir avec uniquement 2 technos, à savoir MongoDB et Spark.

    Car le problème du Big Data, c'est qu'il y a pléthores de produits et de technos, et les prendre en main et les maitriser demandent du temps, beaucoup de temps.

    Dans ce cas, pour tes données sources autres que JSON, il va falloir voir si tu peux les traiter en JSON, ou bien si ce sont des données tabulaires (donc en format lignes / colonnes), ce qui est le cas d'Oracle puisque ce sont des tables. Tu peux donc les travailler sous Spark à l'aide de Dataframes.

    Pour finir, toute cette architecture Spark et MongoDB tournent en cluster. Sur quelle infrastructure vas-tu la faire tourner ? On Premise ou dans le Cloud ? Tu comptes te monter ton infra tout seul ou utiliser des distributions genre Cloudera ou autres ?

    En tous cas, l'avantage de Spark et de MongoDB, c'est qu'ils tournent aussi sous Windows. Donc pour faire un POC ou se lancer dans un premier test, tu peux faire cela sur un portable bureautique, sous Windows et en standalone (pas de cluster pour démarrer), du moment que tu as un peu de ressources (notamment au moins 16 Go de RAM, et même plutôt 32 Go).

    Et si les essais sont convaincants, tu bascules alors sur une architecture clusterisée, sous Linux.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2008
    Messages : 9
    Points : 7
    Points
    7

    Par défaut

    Bonjour,

    Merci beaucoup pour tes conseils, je ferai un POC sur un seul nœud et je verrai ce qui marche de ce qui ne le sera pas.


    Citation Envoyé par rouardg Voir le message
    Bonjour,

    Désolé, mais je n'ai pas le niveau requis pour valider ton architecture. Pour résumer, j'ai fait un MOOC de 6 mois et demi en Big Data où j'en ai pris plein la tête sur Hadoop, Pig, Hive, Spark, HBase, Neo4j, Knime, Splunk et sur le Machine Learning.

    Et j'ai complété tout cela avec les formations gratuites en ligne sur MongoDB : http://university.mongodb.com

    D'ailleurs je viens de voir qu'il y en a une sur l'utilisation de Spark et MongoDB : https://university.mongodb.com/courses/M233/about

    Je manque donc cruellement d'expériences !!!

    Par contre, je te donne quand même mon avis : il y a beaucoup trop de technos pour moi dans ton choix. A priori, ton Use Case porte sur la maintenance prédictive. Pour moi, cela s'apparente à de la recherche de signaux faibles, à savoir détecter dans une masse d'infos souvent issues de capteurs, de faibles traces supposant un risque potentiel de panne sur un équipement quelconque.

    Pour ma part, j’essaierai de voir si je peux m'en sortir avec uniquement 2 technos, à savoir MongoDB et Spark.

    Car le problème du Big Data, c'est qu'il y a pléthores de produits et de technos, et les prendre en main et les maitriser demandent du temps, beaucoup de temps.

    Dans ce cas, pour tes données sources autres que JSON, il va falloir voir si tu peux les traiter en JSON, ou bien si ce sont des données tabulaires (donc en format lignes / colonnes), ce qui est le cas d'Oracle puisque ce sont des tables. Tu peux donc les travailler sous Spark à l'aide de Dataframes.

    Pour finir, toute cette architecture Spark et MongoDB tournent en cluster. Sur quelle infrastructure vas-tu la faire tourner ? On Premise ou dans le Cloud ? Tu comptes te monter ton infra tout seul ou utiliser des distributions genre Cloudera ou autres ?

    En tous cas, l'avantage de Spark et de MongoDB, c'est qu'ils tournent aussi sous Windows. Donc pour faire un POC ou se lancer dans un premier test, tu peux faire cela sur un portable bureautique, sous Windows et en standalone (pas de cluster pour démarrer), du moment que tu as un peu de ressources (notamment au moins 16 Go de RAM, et même plutôt 32 Go).

    Et si les essais sont convaincants, tu bascules alors sur une architecture clusterisée, sous Linux.

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Big Data
    Inscrit en
    mars 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : Maroc

    Informations professionnelles :
    Activité : Big Data
    Secteur : Service public

    Informations forums :
    Inscription : mars 2017
    Messages : 1
    Points : 0
    Points
    0

    Par défaut Mise en Place d'une infrastructure big data pour analyser des données du processus maladie d'une assurance

    Bonjour , j'ai besoin besoin de l'aide en ce qui concerne mon projet de fin d’étude qui a pour objectif la comparaison des plateformes big data open sources notamment cloudera ,mapR et hortonworks et la mise en place d'un projet pilote pour le traitement des sinistres maladies en analysant des fichiers divers pour afficher des dashboards et des statistique tous ca en mode cluster alors le défi qui existe que j ai un PC de 16 GO de RAM avec un disque SSD donc je dois travailler virtuellement et implémenter un cluster virtuelle parceque la société n’adopte pas les big data et j ai pas accès à un serveur de production pour faire le travail j attends vos réponses et merci.

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/12/2016, 12h06
  2. [Architecture] Question data layer et présentation
    Par brousaille dans le forum Serveurs, conteneurs, et Java EE
    Réponses: 16
    Dernier message: 14/01/2006, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo