Warum ist Hadoop kein Data Warehouse?

1040
Dennis Jaheruddin

Was sind funktionale Gründe, warum Hadoop kein Data Warehouse sein kann?

An mehreren Standorten kann man Aussagen sehen, dass ein Hadoop-Cluster kein herkömmliches Data Warehouse ersetzt. Ich kann jedoch nicht die wahren Gründe dafür finden.

Ich bin mir bewusst, dass es technisch gesehen einige Dinge gibt, die in Hadoop nicht verfügbar / ausgereift sind, aber ich suche wirklich nach den funktionalen Auswirkungen.


Was ich bisher gefunden habe, einschließlich Milderungen

Ich fand einige Argumente, aber keines so kritisch, dass ich davon abraten würde, Hadoop als DWH zu verwenden. Hier ist eine Auswahl:

  1. Sie können keine schnellen Ad-hoc-Abfragen oder -Berichten durchführen, da Hadoop tendenziell Overhead für die Karte verursacht und Aufträge reduziert.

In der Situation, die ich mir anschaue, sollte dies jedoch kein Problem darstellen, da Daten nur über den (regulären) Datamart zur Verfügung gestellt werden. Sie könnten spark sql auch verwenden, wenn Sie sich in einige Tabellen einarbeiten möchten.

  1. Sie können bestimmte Ergebnisse nicht erhalten, da Hadoop gespeicherte Prozeduren nicht unterstützt.

In der Situation, die ich mir anschaue, gibt es nicht viele gespeicherte Prozeduren (zum Glück!) Und mit Tools wie R oder Python können Sie wirklich jedes Ergebnis erhalten, das Sie benötigen.

  1. Sie können keine Wiederherstellung nach Katastrophen durchführen, da Hadoop keine Sicherungen integriert hat

Da jedoch sämtlicher Code in einem Skript gespeichert ist und Daten in eine Sicherung geladen werden können, sollte es möglich sein, nach Katastrophen wiederherzustellen.

  1. Sie können Compliance und Datenschutz nicht einhalten, da es keine Sicherheits- und Datenlinien gibt

Mit einem Toolkit wie Knox + Ranger + Atlas kann dies erreicht werden.

  1. Es ist nicht einfach, Abfragen zu erstellen, da Sie den Fluss nicht erstellen können, sondern SQL- oder Pig-Code schreiben müssen.

Es gibt scheinbar mehrere Tools wie Talend, mit denen Sie Flows mit Symbolen erstellen können, wie in typischen Abfrage-Buildern.

  1. Hadoop ist schwieriger zu warten, da es spezielles Wissen erfordert

Richtig, aber in der Situation, die ich mir anschaue, gibt es eine Menge Wissen, da sie derzeit eine Hadoop-Analyseplattform verwenden.

3
Ich denke, dass beide vorhandenen Antworten großartig sind. Ich habe beschlossen, eine zu akzeptieren und der anderen eine Belohnung zu geben. Dennis Jaheruddin vor 7 Jahren 0

4 Antworten auf die Frage

3
Luca Natali

Es stimmt, mit Hadoop und einigen Tricks können Sie dasselbe tun, was ein DWH tun kann.

Es macht jedoch keinen Sinn, das Rad neu zu erfinden, damit Hadoop die gleichen Aufgaben eines Data Warehouse auf ineffiziente Weise erledigt. Viele können sagen, Hadoop ist billiger als ein Data Warehouse in Bezug auf Hardware und Software: Es stimmt, es gibt einen großen Unterschied, aber wir müssen die Zeit berücksichtigen, die für die Implementierung eines solchen Systems aufgewendet wird, das Know-how und die erforderlichen Fähigkeiten. die Wartung des Clusters, die Aufrüstung der Dienste und das Risiko, unreife Werkzeuge oder Werkzeuge zu verwenden, die in der Zukunft aufgegeben werden könnten.

Der wirkliche Aspekt, um zwischen Hadoop und einem Data Warehouse zu wählen, ist:

  • Art der Arbeitsbelastung (Lesen gegen Schreiben, taktische vs. Bericht usw.)
  • Art der Daten (strukturiert oder unstrukturiert)
  • Datenintegration (Schema beim Lesen vs. Schema beim Schreiben)
  • Abfrage-SLAs (Ausführungszeit, Parallelität usw.)
  • Erforderliche Fähigkeiten (Menge an Ressourcen und Know-how für die Implementierung)
  • SQL-Compliance (Integration mit Tools)
  • Optimierung (Workload-Management, Indizes, Hash-Maps usw.)
  • Fälligkeit (Sicherheit, Fehler usw.)
  • Typ bei der Analyse (SQL- oder Nicht-SQL-Analyse)

Eine Hybridarchitektur, bei der beide Anwendungsbereiche am besten geeignet sind. Ich kann Ressourcen (CPU, Speicher) aus dem Data Warehouse einsparen, indem historische Daten und die ETL-Verarbeitung auf Hadoop abgeladen werden. Ich kann unstrukturierte Daten analysieren. Gleichzeitig kann ich eine höhere Leistung, Datenintegration und eine hohe Parallelität beim Abfragen des "Hot" haben "Daten, die im Data Warehouse gespeichert sind.

Antwort auf den Kommentar:

Es hängt davon ab, was Sie mit Hadoop tun möchten. Sie können das Data Warehouse direkt füllen, indem Sie Rohdaten in hadoop ablegen, und die ETL für das Laden des Warehouse verwenden.

Es gibt viele Anwendungsfälle im Zusammenhang mit der Integration von Hadoop in ein Data Warehouse, zum Beispiel:

  • Data Lake: Alle auf Hadoop gespeicherten Rohdaten. Auf diese Weise können Sie ursprüngliche Rohdaten und Metadaten erfassen, verfeinern und untersuchen und möglicherweise Aggregationen oder ETL ausführen, um ein Datenmodell im Data Warehouse aufzufüllen.
  • Historisierung: Sie können Skripts entwickeln, um kalte Daten nach Hadoop zu verlagern (z. B. Transaktionen des letzten Jahres in DWH und ältere Transaktionen in Hadoop). Sie können auf beide Daten über einen Abfrage-Föderator (z. B. Presto) zugreifen, der Ihnen die Möglichkeit gibt, Daten zu verbinden, die sich auf verschiedenen Plattformen befinden (z. B. UNION ALL zwischen dem historischen Teil einer Tabelle auf Hadoop und dem letzten Teil der Daten) Warenhaus)

Wenn Sie Hadoop als Data Lake verwenden möchten, lautet der Datenfluss: Quelle -> HDFS (Bereinigung) -> Data Warehouse

Wenn Sie Hadoop nur für die Historisierung verwenden: Quelle -> Data Warehouse -> HDFS

Abfrageföderatoren wie Presto eröffnen viele Anwendungsfälle und die Möglichkeit, Daten aus verschiedenen Systemen in derselben Abfrage zu verwenden. Dies eröffnet die Chance, kalte Daten auf Hadoop und heiße Daten im Data Warehouse zu haben, oder die Möglichkeit, die "Kerndaten" im Data Warehouse und den Rest auf Hadoop zu haben.

Sehr nützliche Antwort, ich werde immer noch die Frage offen lassen, ob noch weitere folgen werden, aber Sie haben bereits meine Stimme. Eine Sache, die mich wunderte, ist die Hybride, die Sie erwähnen. In meiner jetzigen Situation muss ich mit riesigen / unstrukturierten Datenquellen umgehen, so dass hadoop ein Muss ist. Aber ich erkenne auch, dass die Dinge bei regulären Lösungen einfach / zuverlässiger sind. - Könnten Sie also Ihre Hybridarchitektur / den Hybridfluss beschreiben, da alle trivialen Formen sehr ineffizient erscheinen? (1. Sie laden Daten zunächst zweimal von der Quelle oder Sie zuerst Laden Sie es nach A und dann von A nach B || 2. Sie haben 2 Werkzeuge, um Datenflüsse zu erstellen usw.) Dennis Jaheruddin vor 7 Jahren 0
Einer der wichtigsten und schwierigsten Aspekte, der in einem Data-Lake-Szenario zu berücksichtigen ist, ist Data Governance. Sie haben alle Ihre Rohdaten auf Hadoop und diese müssen verwaltet werden. Luca Natali vor 7 Jahren 0
3
harrymc

Ein Hadoop-Cluster ersetzt keinesfalls ein herkömmliches Data Warehouse. Bare Hadoop macht nur zwei Dinge:

  1. Verteilter Speicher und Ressourcen
  2. Karte verkleinern

Oben auf Hadoop befindet sich ein gesamtes Ökosystem von Softwarepaketen, insbesondere Schwein, Hive, HBase, Phoenix, Spark, ZooKeeper, Cloudera Impala, Flume, Sqoop, Oozie, Storm.

Heute können Sie aus einer Vielzahl von Produkten auswählen, was Sie möchten.

Möchten Sie SQL verwenden? Schauen Sie sich diese Server für die Datenvirtualisierung an: Cirro Data Hub, Cisco / Composite Information Server, Denodo-Plattform, Informatica Data Services, Red Hat JBoss-Datenvirtualisierung und Stone Bond Enterprise Enabler Virtuoso.

Möchten Sie, dass das Produkt Daten in seiner eigenen nativen SQL-Datenbank oder in Hadoop speichert? Beispiele sind EMC / Greenplum UAP, HP Vertica (auf MapR), Microsoft PolyBase, Actian ParAccel und Teradata Aster Database (über SQL-H).

Zu diesen hinzufügen:

  • Apache Hive - das ursprüngliche SQL-on-Hadoop
  • Stinger von Hortonworks
  • Apache Drill - offene Implementierung von Googles Dremel (aka BigQuery)
  • Spark SQL - Echtzeitverarbeitung, speicherinterne, parallelisierte Verarbeitung
  • Apache Phoenix - die "SQL-Skin für HBase"
  • Cloudera Impala - eine weitere Implementierung von Dremel / Apache Drill
  • HAWQ für Pivotal HD - Parallele SQL-Verarbeitung und hohe Übereinstimmung mit den SQL-Standards der Pivotal-eigenen Hadoop-Distribution
  • Presto - Von Facebook-Ingenieuren gebaut und intern verwendet
  • Oracle Big Data SQL - Nur in Oracle Database 12c integrierbar
  • IBM BigSQL - verbunden mit Hadoop und InfoSphere BigInsights von IBM

Fazit: Unabhängig von den Anforderungen Ihres Datenbank-Warehouse können Sie bei Hadoop ein Produkt oder eine Kombination von Produkten finden, die Ihren Wünschen entspricht.

Der Nachteil: Finden Sie Ihre idealen Produkte, lernen Sie, wie man sie fährt und welche Defizite es gibt, entwickeln Sie Ihre verteilte Datenbankanwendung, melden Sie Fehler und drängen Sie auf Verbesserungen - all dies erfordert eine schreckliche Zeit. Sie suchen nach funktionalen Auswirkungen - schauen Sie nach den Auswirkungen auf Sie und Ihre Zeit, insbesondere wenn Sie keinen Hadoop-Spezialisten in Ihrem Team haben.

Fazit: Hadoop ist kein Data Warehouse, aber die darauf aufbauenden Anwendungen sind und für jeden Geschmack ist etwas dabei. Viel Glück beim Navigieren in diesem Dschungel. Wenn Ihre Bedürfnisse bescheiden genug sind, würde ich vorschlagen, eine eigene Anwendung auf MapReduce-Basis zu erstellen, oder eine klassischere Lösung mit den Ihnen bekannten Tools zu suchen. Wisse auch, dass MapReduce nicht für alle Probleme geeignet ist.

Noch etwas lesen:

Sehr schöner Überblick über SQL-Lösungen! Ich verstehe, dass hadoop "nichts" ohne die Produkte ist und dass es mehrere Möglichkeiten gibt, SQL mit Datenbanken zu "reden". Ich frage mich jedoch, ob es auch ein Datenbanksystem geben würde, das über bive (Fremdschlüssel, Eindeutigkeit) hinausgeht und im Allgemeinen immer noch Hadoop (z. B. Hortonworks) steckbar ist. Dennis Jaheruddin vor 7 Jahren 0
Die Datenbank-Engines, die in Hadoop MapReduce integriert sind, tun dies sicherlich - Oracle & IBM. Sie benötigen ein Produkt, das die Daten indiziert und nicht nur scannt. Jethro scheint das zu tun, aber ich habe nicht alle oben aufgeführten Produkte analysiert. harrymc vor 7 Jahren 0
Sie können auch Nicht-Hadoop-Cluster-Datenbanken anzeigen. Zum Beispiel [VoldDB] (https://www.voltdb.com/) ist ein völlig anderes Konzept. harrymc vor 7 Jahren 0
1
Adir Akerman

Hadoop ist eine von mehreren Optionen für die von Ihnen aufgelisteten Situationen. Es klingt so, als würden Sie nach einem einzelnen System / Föderator / Datapipe suchen, von dem aus Sie mehrere Datenquellen ad hoc abfragen können. Weitere Optionen für die Hadoop-Funktionen sind Spark, Pentaho, Apache Pig und Hortonworks.

Anstatt sich dieses Tool zuerst anzusehen, sollten Sie sich Ihre Daten- und Analyseanforderungen ansehen.

A. Sie haben mehrere Datenquellen

B. Sie möchten Ad-hoc-Abfragen ausführen

C. Sie müssen diese mehreren Datenquellen so verwalten, dass sie für Ihre Analysten / Endbenutzer zugänglich und abfragbar sind. Und Sie müssen (in IT-Hinsicht hier denken) in der Lage sein, dieses Management durchzuführen, ohne dass es zu einem zweiten Job wird.

D. Ich gehe davon aus, dass Sie im Laufe der Zeit weitere Datenquellen hinzufügen werden.

E. Ich gehe davon aus, dass Ihre Datenquellen wachsen werden und das Potenzial für Abfragen größerer Datensätze besteht.

F, Sie möchten Disaster Recovery und Sicherheit / Compliance.

G. Sie möchten die Möglichkeit, verschiedene Abfragemethoden einschließlich gespeicherter Prozeduren zu verwenden.

Sehen Sie sich zuerst an, welche Tools diese Anforderungen erfüllen. Es gibt Anbieter von IPaaS-Lösungen (Integration Platform as a Service - im Wesentlichen Datenintegration in der Cloud) wie Mulesoft und SnapLogic. Sie haben Hadoop und seine Cousins, ich sage Cousins, denn in diesem Bereich neigen die Produkte dazu, genügend Unterschiede zu haben, dass ich sie nicht wie SQL-Datenbanken zusammenfassen könnte. Sie verfügen über Datenseen, die Rohdaten verwenden und somit die Notwendigkeit starker Transformationsarbeiten reduzieren. Und Sie haben Datenstromverarbeitung, die mehrere Datenströme handhabt und Daten filtert, anstatt sie zu senden.

Sehen Sie sich Ihre geschäftlichen Anforderungen (einschließlich Budget und Ressourcen) an, vergleichen Sie diese mit den verfügbaren Angeboten und ermitteln Sie das beste Werkzeug für Ihr Unternehmen. Wenn Sie Ressourcen zu ETL und Datenintegration wünschen, gibt es eine Website namens ETLTools.net, die viele Informationen enthält, einschließlich Beschreibungen der verschiedenen Arten von Umgebungen.

0
Vamsikrishna YVS

Hadoop ist ein Framework und Data Warehouse ist eine Software ... verwirrt? Data Warehouse koordiniert nur zwischen Ihnen und Ihnen. Es wird sich lediglich um das Speichern und Aufrechterhalten des Lebenszyklus von Daten kümmern. Wo als Hadoop, zusätzlich zur Koordination zwischen Daten und Ihnen, werden einfache / komplexe Vorgänge für Daten ausgeführt, wenn Sie dies wünschen.

Der Grund, warum hadoop nicht besser für Datawarehousing geeignet ist, besteht darin, dass es mehrere andere Tools gibt, um dieselbe Aufgabe effizient zu erledigen als hadoop.