Eine Übersetzung des Artikels wurde speziell für Studenten des Data Engineer- Kurses erstellt.
Lesen Sie den ersten TeilNiemand braucht Big Data
Wenn Sie hören, "Niemand braucht Big Data", sehen Sie sich den Lebenslauf des Sprechers an. Ein afrikanischer Telekommunikationsbetreiber mit erstaunlichem Wachstum wird sich nicht an den neuen JavaScript-Webentwickler wenden und ihn fragen, ob er bei der Entwicklung seiner Datenplattform und der Optimierung der Abrechnungsberechnungen helfen kann. Sie finden viele interne Webanwendungen in der Zentrale der Fluggesellschaft. Wenn es jedoch darum geht, Petabytes der Flugzeugtelemetrie zur vorbeugenden Wartung zu analysieren, ist möglicherweise kein einziger PHP-Entwickler in diesem Projekt.
Die oben genannten Projekte werden häufig nicht so beworben, dass Webentwickler davon erfahren können. Aus diesem Grund kann jemand Jahre damit verbringen, an neuen Projekten zu arbeiten, die sowohl hinsichtlich des Wachstums als auch der Datenakkumulation am Ende ihrer S-Kurve liegen, und in den meisten Fällen sieht er nie die Notwendigkeit einer Datenverarbeitung, die darüber hinausgeht kann in RAM auf einer Maschine passen.
In den letzten 25 Jahren hat die Webentwicklung die Anzahl der Programmierer stark erhöht. Die meisten Leute, die sich selbst Programmierer nennen, erstellen am häufigsten Webanwendungen. Ich denke, dass viele der Fähigkeiten, die sie haben, gut mit denen übereinstimmen, die für das Daten-Design benötigt werden, aber es fehlt ihnen oft an verteiltem Rechnen, Statistiken und Geschichtenerzählen.
Websites verursachen häufig keine hohe Auslastung für einen Benutzer, und häufig besteht das Ziel darin, die Auslastung von Servern, die eine große Anzahl von Benutzern unterstützen, unter dem maximalen Hardwareschwellenwert zu halten. Die Datenwelt besteht aus Workloads, bei denen eine Anforderung alles tut, um eine große Anzahl von Maschinen zu maximieren, die Arbeit so schnell wie möglich abzuschließen und gleichzeitig die Infrastrukturkosten zu senken.
Petabyte-Datenunternehmen haben häufig erfahrene Berater und Lösungsanbieter in ihrem Arsenal. Ich habe selten gesehen, dass irgendjemand von seinen Arbeitgebern aus der Webentwicklung herausgezogen und in den Bereich der Datenplattformentwicklung versetzt wurde. es ist fast immer das Ergebnis einer langwierigen Selbstumschulung.
Dieser Datensatz kann im RAM leben
Ich hörte Leute sagen, dass "ein Datensatz in den Speicher passen kann". Die Größe des Arbeitsspeichers, auch in der Cloud, ist in letzter Zeit erheblich gestiegen. Es gibt EC2-Instanzen mit 2 TB RAM. In der Regel kann der Arbeitsspeicher je nach Architektur Ihrer Installation mit 12-25 GB / s verwendet werden. Die alleinige Verwendung des Arbeitsspeichers bietet keine Wiederherstellung nach einem Fehler, wenn ein Stromausfall auf dem Computer auftritt. Darüber hinaus sind die Kosten pro GB im Vergleich zur Verwendung von Laufwerken enorm.
Die Festplatten werden auch schneller. Kürzlich wurde
eine PCIe 4.0 NVMe 4 x 2 TB SSD-Karte
angekündigt , die mit einer Geschwindigkeit von 15 GB / s lesen und schreiben kann. Der Preis eines PCIe 4.0-NVMe-Laufwerks ist im Vergleich zum RAM durchaus konkurrenzfähig und bietet nichtflüchtigen Speicher. Ich kann es kaum erwarten, einen HDFS-Cluster mit einem guten Netzwerk zu sehen, der diese Laufwerke verwendet, da hier gezeigt wird, wie ein Datenarchiv im Speicher mit nichtflüchtigem Speicher mit umfangreichen vorhandenen Tools des Hadoop-Ökosystems aussieht.
Überladen mit technischen Exzessen
Ich würde nicht 6 oder 7 Stellen für die Entwicklung einer Datenplattform und eines Teams für ein Unternehmen ausgeben wollen, das nicht über das hinaus skaliert werden kann, was auf einen Laptop eines Entwicklers passt.
Aus Sicht des Workflows bestehen meine Tage hauptsächlich aus der Verwendung von BASH, Python und SQL. Viele neue Absolventen sind in den oben genannten qualifiziert.
Parkettdaten Parkett kann mit S3 problemlos auf eine Million Dateien verteilt werden. Die Planung in Bezug auf das oben Genannte ist nicht viel komplizierter als die Speicherung von 100.000 Mikropaketdateien in S3. Nur weil eine Lösung skalierbar ist, bedeutet dies nicht, dass sie redundant ist.
Benutze einfach PostgreSQL?
Ich habe auch Argumente gehört, dass zeilenorientierte Systeme wie MySQL und PostgreSQL den Anforderungen von analytischen Workloads sowie deren traditionellen Transaktions-Workloads gerecht werden können. Beide Vorschläge können mithilfe von Analysen erstellt werden. Wenn Sie weniger als 20 GB Daten anzeigen, lohnt sich die Skalierung wahrscheinlich nicht.
Ich musste mit einem System arbeiten, das täglich 10 Milliarden Zeilen in MySQL geladen hat. In MySQL und PostgreSQL gibt es nichts, das mit einer solchen Last umgehen kann. Die Kosten für die Infrastruktur zum Speichern von Datensätzen, selbst für mehrere Tage, in einem zeilenorientierten Speicher haben die Personalkosten überschattet. Durch die Umstellung auf eine Spaltenspeicherlösung für diesen Client konnten die Infrastrukturkosten gesenkt und die Abfragezeiten um jeweils zwei Größenordnungen verkürzt werden.
PostgreSQL verfügt über eine Reihe von Add-Ons zum Speichern und Verteilen von Abfragen auf mehrere Computer. Die besten Beispiele, die ich gesehen habe, sind kommerzielle Angebote. Der angekündigte
Zedstore kann in
gewissem Maße die Einrichtung des Spaltenspeichers als standardmäßige integrierte PostgreSQL-Funktion unterstützen. Es wird interessant sein zu sehen, ob die Verteilung von Einzelanforderungen und die Trennung von Speichern in Zukunft Standardfunktionen werden.
Wenn Sie einen Transaktionsdatensatz benötigen, empfiehlt es sich, diese Arbeitslast mithilfe eines Transaktionsdatenspeichers zu isolieren. Aus diesem Grund erwarte ich, dass MySQL, PostgreSQL, Oracle und MSSQL sehr lange halten.
Aber möchten Sie eine 4-stündige Pause in Uber sehen, weil eine ihrer Presto-Anfragen zu unerwartetem Verhalten geführt hat? Möchten Sie, dass Ihr Unternehmen über die Notwendigkeit einer monatlichen Abrechnung informiert wird? Warum müssen Sie Ihre Website für eine Woche deaktivieren, damit genügend Ressourcen für diese Aufgabe zur Verfügung stehen? Analytische Workloads sollten nicht mit Transaktions-Workloads verknüpft werden. Sie können operationelle Risiken reduzieren und die am besten geeigneten Geräte auswählen, indem Sie sie in einer separaten Infrastruktur betreiben.
Und da Sie auf separater Hardware arbeiten, müssen Sie nicht dieselbe Software verwenden. Viele der Fähigkeiten, die ein kompetenter PostgreSQL-Ingenieur mit sich bringt, eignen sich gut für die analyseorientierte Datenwelt. Dies ist ein kleiner Schritt im Vergleich zu einem Sprung für einen Webentwickler in den großen Datenraum.
Wie sieht die Zukunft aus?
Ich werde meine Datenkompetenzen auf absehbare Zeit weiter analysieren und erweitern. In den letzten 12 Monaten habe ich fast zu gleichen Teilen mit Redshift, BigQuery und Presto gearbeitet. Ich versuche meine Wetten zu verteilen, da ich noch keine funktionierende Kristallkugel des Prädiktors gefunden habe.
Was ich wirklich erwarte, ist mehr Fragmentierung und mehr Spieler, die ebenfalls in die Branche eintreten und diese verlassen. Es gibt Gründe für die Existenz der meisten Datenbanken, aber die Anwendungsfälle, die sie bedienen können, sind möglicherweise begrenzt. Gleichzeitig können gute Verkäufer die Marktnachfrage nach jedem Angebot steigern. Ich habe gehört, dass die Leute glauben, dass die Erstellung einer Datenbank von kommerzieller Qualität etwa 10 Millionen US-Dollar erfordert und dies wahrscheinlich der beste Ort für Risikokapital ist.
Es gibt viele Vorschläge und Implementierungen, die Kunden einen unangenehmen Nachgeschmack hinterlassen. Es gibt auch so etwas wie einen Schock von einem Cloud-Preisschild. Es gibt Lösungen, die gut, aber aufgrund der Kosten für die Einstellung von Experten zu teuer sind. Vertriebs- und Marketingfachleute in der Branche werden einige Zeit damit beschäftigt sein, die oben genannten Kompromisse zu diskutieren.
Cloudera und MapR befinden sich möglicherweise in schwierigen Zeiten, aber ich habe noch nichts davon gehört, was mich glauben lassen könnte, dass AWS EMR, DataBricks und Qubole konkurrieren könnten. Sogar Oracle veröffentlicht ein
funkengetriebenes Angebot. Es wäre schön, wenn die Branche in Hadoop mehr als nur ein Angebot von Cloudera sehen würde und anerkennen würde, dass diese Firmen sowie Facebook, Uber und Twitter einen wesentlichen Beitrag zur Welt von Hadoop leisten.
Hortonworks, das in diesem Jahr mit Cloudera fusioniert wurde, ist ein Plattformanbieter für Azure HDInsight, der von Microsoft Hadoop verwaltet wird. Es gibt Mitarbeiter im Unternehmen, die einem Drittanbieter von Cloud-Diensten eine angemessene Plattform bieten können. Ich hoffe, dass sich alle Vorschläge, an denen sie arbeiten, auf diese Art von Angebot konzentrieren werden.
Ich vermute, dass frühe Cloudera-Kunden Benutzer von HBase, Oozie, Sqoop und Impala waren. Es wäre schön zu sehen, dass sie nicht für eine so lange Entwicklungszeit und für zukünftige Versionen ihrer Plattformen konkurrieren, die mit Airflow, Presto und der neuesten Version von Spark out of the box ausgeliefert werden.
Wenn Ihr Unternehmen eine Datenplattform bereitstellen möchte, wird es letztendlich keinen Ersatz für ein anspruchsvolles Management-Team finden, das gründlich recherchieren, sorgfältig planen und Fehler schnell identifizieren kann.