3 votes

Pourquoi Hadoop n'est pas un entrepôt de données ?

Quelles sont les raisons fonctionnelles pour lesquelles Hadoop ne peut pas être un entrepôt de données ?

Sur plusieurs sites, on peut lire des déclarations selon lesquelles un cluster Hadoop ne remplace pas un entrepôt de données traditionnel. Cependant, je n'arrive pas à trouver les vraies raisons de cette affirmation.

Je suis conscient du fait que, techniquement, certaines choses ne sont pas disponibles/maturées dans Hadoop, mais je cherche vraiment à savoir ce qui suit fonctionnel impact.


Ce que j'ai trouvé jusqu'à présent, y compris les mesures d'atténuation

J'ai trouvé quelques arguments, mais aucun n'est critique au point de déconseiller l'utilisation d'Hadoop comme DWH. En voici une sélection :

  1. Il n'est pas possible d'effectuer des requêtes ou des rapports ad hoc rapides. Hadoop a tendance à engendrer des frais généraux pour les tâches de map et de reduce.

Toutefois, dans la situation que j'examine, cela ne devrait pas poser de problème puisque les données ne sont disponibles que par le biais de la datamart (ordinaire). En outre, vous pourriez utiliser spark sql si vous vouliez creuser dans certaines tables.

  1. Vous ne pouvez pas obtenir certains résultats car Hadoop ne supporte pas les procédures stockées.

Dans la situation que j'examine, il n'y a pas beaucoup de procédures stockées (heureusement !) et en utilisant des outils comme R ou Python, vous pouvez vraiment obtenir tous les résultats dont vous avez besoin.

  1. Vous ne pouvez pas vous remettre d'un désastre car Hadoop ne dispose pas de sauvegardes intégrées.

Toutefois, comme tous les codes sont scriptés et que les données peuvent être déchargées sur une sauvegarde, il devrait être possible de se remettre d'un désastre.

  1. Vous ne pouvez pas faire de la conformité et de la confidentialité car il n'y a pas de sécurité ni d'archivage des données.

Avec une boîte à outils comme Knox + Ranger + Atlas, c'est possible.

  1. Il n'est pas facile de construire des requêtes Vous ne pouvez pas construire le flux, mais vous devez écrire du code SQL ou pig.

Il semble qu'il existe plusieurs outils, comme Talend, qui permettent de construire des flux à l'aide d'icônes, comme dans les constructeurs de requêtes classiques.

  1. Hadoop est plus difficile à maintenir car elle requiert des connaissances spécifiques

C'est vrai, mais dans la situation qui m'intéresse, il y a une bonne dose de connaissances car ils utilisent actuellement une plateforme d'analyse Hadoop.

3voto

Luca Natali Points 219

C'est vrai, avec Hadoop et quelques astuces, vous pouvez faire la même chose que ce qu'un DWH est capable de faire.

Cependant, il n'est pas utile de réinventer la roue pour que Hadoop fasse les mêmes choses qu'un entrepôt de données de manière inefficace. Beaucoup peuvent dire qu'Hadoop est moins cher qu'un entrepôt de données en termes de matériel et de logiciel : c'est vrai, il y a une grande différence, mais nous devons considérer le temps passé à mettre en œuvre un tel système, le savoir-faire et les compétences requises, la maintenance du cluster, les mises à niveau des services et le risque d'utiliser des outils immatures ou des outils qui pourraient être abandonnés à l'avenir.

Les véritables aspects à prendre en compte pour choisir entre Hadoop et un entrepôt de données sont les suivants :

  • Type de charges de travail (lecture vs écriture, tactique vs rapport, etc.)
  • Type de données (structurées ou non structurées)
  • Intégration des données (schéma sur lecture vs schéma sur écriture)
  • Interroger les SLA (temps d'exécution, concurrence, etc.)
  • Compétences requises (quantité de ressources et de savoir-faire nécessaires à la mise en œuvre)
  • Conformité SQL (intégration avec les outils)
  • Optimisation (gestion des charges, index, cartes de hachage, etc.)
  • Maturité (sécurité, bogue, etc.)
  • Type d'analyse (analyse SQL ou non SQL)

Une architecture hybride composée des deux s'adapte parfaitement à de nombreux cas d'utilisation. Je peux économiser les ressources (CPU, stockage) de l'entrepôt de données en déchargeant les données historiques et le traitement ETL sur Hadoop. et en même temps, je peux obtenir des performances plus élevées, une intégration des données et une haute concurrence en interrogeant les données "chaudes" stockées dans l'entrepôt de données.

Réponse au commentaire :

Cela dépend de ce que vous voulez faire avec Hadoop, vous pouvez remplir l'entrepôt de données directement en mettant les données brutes sur Hadoop et faire l'ETL dessus pour charger l'entrepôt.

Il existe de nombreux cas d'utilisation liés à l'intégration d'Hadoop avec un entrepôt de données, par exemple :

  • Lac de données : toutes les données brutes stockées sur Hadoop. Cela peut vous donner un endroit où vous pouvez capturer, affiner et explorer les données brutes originales et les les métadonnées et éventuellement faire des agrégations ou des ETL pour remplir un modèle de données dans le entrepôt de données.
  • Historicisation : vous pouvez développer des scripts pour décharger des données froides vers Hadoop (par exemple, les transactions de l'année dernière sur DWH et les transactions plus anciennes sur Hadoop). Vous pouvez accéder aux deux données via un fédérateur de requêtes (par ex. Presto) qui peut vous donner la possibilité de joindre des données qui résident sur des différentes plates-formes (par exemple, pour faire l'UNION ALL entre la partie historique d'une table sur Hadoop et la partie récente sur l'entrepôt de données).

Si vous voulez utiliser Hadoop comme un lac de données, le flux de données est le suivant : source -> HDFS (nettoyage) -> entrepôt de données.

Si vous utilisez Hadoop uniquement pour l'historisation : source -> entrepôt de données -> HDFS

Les fédérateurs de requêtes comme Presto ouvrent de nombreux cas d'utilisation et la possibilité d'utiliser des données provenant de différents systèmes dans une même requête. Cela ouvre la possibilité d'avoir des données froides sur Hadoop et des données chaudes sur l'entrepôt de données OU la possibilité d'avoir les données "principales" sur l'entrepôt de données et le reste sur Hadoop.

3voto

harrymc Points 394411

Un cluster Hadoop ne remplace en aucun cas un entrepôt de données traditionnel. Hadoop nu ne fait que deux choses :

  1. Stockage et ressources distribués
  2. MapReduce

Au-dessus d'Hadoop est construit tout un écosystème de logiciels, notamment Pig, Hive, HBase, Phoenix, Spark, ZooKeeper, Cloudera Impala, Flume, Sqoop, Oozie, Storm.

Aujourd'hui, vous pouvez choisir ce que vous voulez parmi une pléthore de produits.

Vous voulez utiliser SQL ? Jetez un coup d'oeil à ces serveurs de virtualisation de données : Cirro Data Hub, Cisco/Composite Information Server, Denodo Platform, Informatica Data Services, Red Hat JBoss Data Virtualization et Stone Bond Enterprise Enabler Virtuoso.

Vous souhaitez que le produit stocke les données dans sa propre base de données SQL native ou dans Hadoop ? Exemples : EMC/Greenplum UAP, HP Vertica (sur MapR), Microsoft PolyBase, Actian ParAccel et Teradata Aster Database (via SQL-H).

Ajouter à ces :

  • Apache Hive - le SQL-on-Hadoop original
  • Stinger de Hortonworks
  • Apache Drill - implémentation ouverte de Dremel de Google (alias BigQuery)
  • Spark SQL - traitement en temps réel, en mémoire et parallélisé
  • Apache Phoenix - le "skin SQL pour HBase".
  • Cloudera Impala - une autre implémentation de Dremel/Apache Drill
  • HAWQ for Pivotal HD - traitement SQL parallèle et haute conformité aux normes SQL sur la distribution Hadoop propre à Pivotal
  • Presto - Construit par les ingénieurs de Facebook et utilisé en interne.
  • Oracle Big Data SQL - s'intègre uniquement à Oracle Database 12c
  • IBM BigSQL - lié à Hadoop et InfoSphere BigInsights d'IBM

Conclusion : Quels que soient vos besoins en matière d'entrepôt de données, vous pouvez trouver un produit sur Hadoop, ou une combinaison de produits, qui fait ce que vous voulez.

Le revers de la médaille : Trouver le(s) produit(s) idéal(s), apprendre à le(s) piloter et à en connaître les défauts. et quels sont leurs défauts, développer votre application de base de données distribuée, rapporter les bogues et pousser pour des améliorations - tout cela tout cela vous prendra énormément de temps. Vous cherchez l'impact fonctionnel, alors cherchez l'impact sur vous et sur votre temps, surtout si vous n'avez pas l'intention de le faire. votre temps, surtout si vous n'avez pas de spécialiste Hadoop dans votre équipe.

Conclusion finale : Hadoop n'est pas un entrepôt de données, mais les applications construites dessus le sont, et tous les goûts sont satisfaits. Mais bonne chance pour naviguer dans cette jungle. Si vos besoins sont assez modestes, je vous suggérerais de créer votre propre application construite sur MapReduce, ou d'opter pour une solution plus classique en utilisant les outils que vous connaissez. Sachez également que MapReduce n'est pas une bonne solution pour tous les problèmes.

Quelques lectures supplémentaires :

1voto

Adir Akerman Points 86

Hadoop est une option parmi d'autres pour les situations que vous avez énumérées. Il semble que vous recherchiez un seul système/fédérateur/datapipe à partir duquel vous pouvez interroger de manière ad hoc plusieurs sources de données. Les autres options pour les fonctions Hadoop sont Spark, Pentaho, Apache Pig et Hortonworks.

Mais au lieu de considérer d'abord cet outil, penchez-vous sur vos besoins en matière de données et d'analyse.

  1. Vous disposez de plusieurs sources de données
  2. Vous voulez exécuter des requêtes ad-hoc
  3. Vous devez gérer ces multiples sources de données pour qu'elles soient accessibles et "interrogeables" par vos analystes et utilisateurs finaux. Et vous (en pensant en termes informatiques) devez être capable d'effectuer cette gestion sans que cela ne devienne un second travail.
  4. Je suppose que vous ajouterez d'autres sources de données au fil du temps.
  5. Je suppose que vos sources de données vont croître et que le potentiel existe pour des requêtes sur des ensembles de données plus importants. 6. Vous voulez une reprise après sinistre et une sécurité/conformité.
  6. Vous aimeriez avoir la possibilité d'utiliser une variété de méthodes d'interrogation, y compris les procédures stockées.

En regardant d'abord cela, déterminez quels outils répondent à ces besoins. Il existe des fournisseurs d'IPaaS (Integration Platform as a Service - essentiellement l'intégration de données dans le nuage) tels que Mulesoft et SnapLogic. Vous avez Hadoop et ses cousins, je dis cousins parce que dans cet espace, les produits ont tendance à avoir suffisamment de différences pour que je ne puisse pas les mettre dans le même panier que les bases de données SQL. Vous avez les lacs de données, qui utilisent des données brutes et facilitent ainsi le travail de transformation lourd. Il y a aussi le traitement des flux de données, qui gère plusieurs flux de données et filtre les données au lieu de les rejeter.

Examinez les besoins de votre entreprise (y compris le budget et les ressources), comparez-les à ce qui est disponible et déterminez ensuite le meilleur outil pour votre entreprise.

0voto

Hadoop est un cadre et l'entrepôt de données est un logiciel... Confusion ? L'entrepôt de données ne fait que coordonner les données et vous. Il s'occupera simplement de stocker et de maintenir le cycle de vie des données. Alors qu'Hadoop, en plus de la coordination entre les données et vous, effectue des opérations simples/complexes sur les données si vous lui demandez de le faire.

La raison pour laquelle Hadoop ne peut pas être mieux adapté à l'entreposage de données est qu'il existe plusieurs autres outils permettant d'accomplir la même tâche de manière plus efficace qu'Hadoop.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X