{"id":92508,"date":"2020-08-28T07:42:10","date_gmt":"2020-08-28T05:42:10","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak"},"modified":"2020-08-28T07:42:10","modified_gmt":"2020-08-28T05:42:10","slug":"kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","title":{"rendered":"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Wir leben in einer erstaunlichen Zeit, in der man schnell und einfach mehrere fertige Open-Source-Tools zusammenschalten, sie mit einem \"abgeschalteten Bewusstsein\" nach den Ratschl\u00e4gen von Stackoverflow konfigurieren kann, ohne sich mit \"vielen Buchstaben\" auseinanderzusetzen und sie in den kommerziellen Betrieb nehmen kann. Doch wenn es Zeit wird, sich zu aktualisieren oder zu erweitern oder wenn jemand versehentlich ein paar Maschinen neu startet \u2014 wird einem bewusst, dass man in einen zwangshaften schlechten Traum aufgewacht ist, alles hat sich pl\u00f6tzlich unkenntlich kompliziert, der R\u00fcckweg ist versperrt, die Zukunft ist ungewiss und es w\u00e4re sicherer, anstatt Programmierung Bienen zu halten und K\u00e4se zu machen.<\/p>\n<p>Es ist kein Zufall, dass erfahrene Kollegen, die mit Bugs \u00fcberh\u00e4uft und bereits grau geworden sind, das unglaublich schnelle Ausrollen von \"Containern\" in \"Kubik\" auf Dutzenden von Servern in \"modernen Sprachen\" mit integrierter Unterst\u00fctzung f\u00fcr asynchronen, nicht blockierenden Input\/Output betrachten \u2014 bescheiden l\u00e4cheln. Und still wiederholen sie \"man ps\", verlieren sich bis zum Bluten in die Quellcodes von \"nginx\" und schreiben-schreiben-schreiben Unit-Tests. Die Kollegen wissen, dass das Interessanteste noch bevorsteht, wenn \"das alles\" irgendwann \u00fcber Nacht zu einem Paket zum Neuen Jahr wird. Und ihnen kann nur ein tiefes Verst\u00e4ndnis der Unix-Natur, eine einstudierte TCP\/IP-Zustandstabelle und grundlegende Sortier- und Suchalgorithmen helfen. Um zum Glockenschlag das System wieder zum Leben zu erwecken.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAch ja, ich habe mich etwas abgelenkt, aber ich hoffe, ich konnte den Zustand der Vorfreude vermitteln.<br \/>\nHeute m\u00f6chte ich unsere Erfahrungen mit der Bereitstellung eines benutzerfreundlichen und kosteng\u00fcnstigen Stacks f\u00fcr DataLake teilen, der die meisten analytischen Aufgaben im Unternehmen f\u00fcr ganz verschiedene Abteilungen l\u00f6st.<\/p>\n<p>Vor einiger Zeit kamen wir zu dem Verst\u00e4ndnis, dass die Unternehmen zunehmend die Fr\u00fcchte sowohl der produktbezogenen als auch der technischen Analytik ben\u00f6tigen (geschweige denn die Kirschen auf der Torte in Form von Machine Learning), und um Trends und Risiken zu verstehen \u2014 m\u00fcssen immer mehr Metriken gesammelt und analysiert werden.<\/p>\n<h3>Grundlegend technische Analytik in \"Bitrix24\"<\/h3>\n<p>\nVor einigen Jahren, parallel zur Einf\u00fchrung des Dienstes \u201eBitrix24\u201c, haben wir aktiv Zeit und Ressourcen in die Erstellung einer einfachen und zuverl\u00e4ssigen Analyseplattform investiert, die dazu dienen sollte, Probleme in der Infrastruktur schnell zu erkennen und den n\u00e4chsten Schritt zu planen. Nat\u00fcrlich sollten die Werkzeuge m\u00f6glichst einfach und klar sein. Schlie\u00dflich haben wir uns f\u00fcr Nagios zur \u00dcberwachung und Munin zur Analyse und Visualisierung entschieden. Jetzt haben wir Tausende von \u00dcberpr\u00fcfungen in Nagios, Hunderte von Grafiken in Munin, und unsere Kollegen nutzen sie t\u00e4glich und erfolgreich. Die Metriken sind klar, die Grafiken verst\u00e4ndlich, das System funktioniert seit mehreren Jahren zuverl\u00e4ssig und es werden regelm\u00e4\u00dfig neue Tests und Grafiken hinzugef\u00fcgt: Wir f\u00fchren einen neuen Dienst in Betrieb \u2014 f\u00fcgen einige Tests und Grafiken hinzu. Gute Fahrt.<\/p>\n<h3>Finger am Puls \u2014 erweiterte technische Analyse<\/h3>\n<p>\nDer Wunsch, Informationen \u00fcber Probleme \u201eso schnell wie m\u00f6glich\u201c zu erhalten, hat uns zu aktiven Experimenten mit einfachen und klaren Werkzeugen \u2014 Pinba und XHProf \u2014 gef\u00fchrt.<\/p>\n<p>Pinba sendete uns in UDP-Paketen Statistiken \u00fcber die Geschwindigkeit von PHP-Teilen auf Webseiten und man konnte in Echtzeit eine kurze Liste von Problemen in der MySQL-Datenbank sehen (Pinba kommt mit einer eigenen MySQL-Engine zur schnellen Ereignisanalyse) und darauf reagieren. XHProf erm\u00f6glichte es, automatisiert die Ausf\u00fchrungsgraphen der langsamsten PHP-Seiten bei Kunden zu erfassen und zu analysieren, wodurch wir feststellen konnten, was dazu gef\u00fchrt haben k\u00f6nnte \u2014 entspannt, w\u00e4hrend wir Tee oder etwas St\u00e4rkeres genossen haben.<\/p>\n<p>Vor einiger Zeit wurde das Werkzeug um eine weitere recht einfache und verst\u00e4ndliche Engine auf Basis des Algorithmus der inversen Indizierung erweitert, die hervorragend in der legend\u00e4ren Bibliothek Lucene implementiert ist \u2014 Elastic\/Kibana. Die einfache Idee der mehrthreadigen Dokumentenspeicherung im inversen Lucene-Index basierend auf den Ereignissen in den Logs und der schnellen Suche danach mit Hilfe der Fassetten-Teilung hat sich tats\u00e4chlich als n\u00fctzlich erwiesen.<\/p>\n<p>Trotz des recht technischen Aussehens der Visualisierungen in Kibana mit Konzepten wie \u201eBuckets\u201c, die \u201enach oben flie\u00dfen\u201c, und einer neu erfundenen Sprache, die noch nicht vergessene relationale Algebra ist \u2014 hat uns das Werkzeug gut bei den folgenden Aufgaben unterst\u00fctzt:<\/p>\n<ul>\n<li>Wie viele PHP-Fehler gab es bei dem Kunden Bitrix24 auf dem Portal p1 in der letzten Stunde und welche? Verstehen, verzeihen und schnell beheben.<\/li>\n<li>Wie viele Videoanrufe wurden in den letzten 24 Stunden auf den Plattformen in Deutschland get\u00e4tigt, mit welcher Qualit\u00e4t und gab es Schwierigkeiten mit dem Kanal\/Netzwerk?<\/li>\n<li>Wie gut funktioniert die Systemfunktionalit\u00e4t (unsere C-Erweiterung f\u00fcr PHP), die aus den Quellcodes im letzten Update des Services kompiliert und an die Kunden ausgerollt wurde? Gibt es Segfaults?<\/li>\n<li>Werden die Kundendaten im PHP-Speicher abgelegt? Gibt es keine Fehler bez\u00fcglich des \u00dcberschreitens des zugewiesenen Speichers: \u201eout of memory\u201c? Finden und beheben.<\/li>\n<\/ul>\n<p>\nHier ist ein konkretes Beispiel. Trotz sorgf\u00e4ltiger und mehrstufiger Tests trat beim Kunden in einem sehr untypischen Fall mit besch\u00e4digten Eingabedaten ein \u00e4rgerlicher und unerwarteter Fehler auf, die Sirene ert\u00f6nte und der Prozess der schnellen Behebung begann:<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.\" src=\"\/wp-content\/uploads\/2020\/08\/8a802dba41b5d1a85c0dc41dfbf8b84e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZus\u00e4tzlich erm\u00f6glicht Kibana, Benachrichtigungen zu bestimmten Ereignissen zu organisieren, und in kurzer Zeit wurden Dutzende von Mitarbeitern aus verschiedenen Abteilungen \u2013 von Support und Entwicklung bis QA \u2013 Werkzeuge im Unternehmen.<\/p>\n<p>Die Aktivit\u00e4t jeder Abteilung innerhalb des Unternehmens kann bequem \u00fcberwacht und gemessen werden \u2013 anstelle der manuellen Analyse von Logs auf Servern gen\u00fcgt es, einmal das Parsing der Logs und deren Versand an den Elastic-Cluster einzurichten, um beispielsweise die Betrachtung im Kibana-Dashboard der verkauften zweik\u00f6pfigen K\u00e4tzchen, die im vergangenen Mondmonat auf 3D-Druckern hergestellt wurden, zu genie\u00dfen.<\/p>\n<h3>Basisgesch\u00e4ftsanalyse<\/h3>\n<p>\nJeder wei\u00df, dass die Gesch\u00e4ftsanalyse in Unternehmen oft mit einer extrem aktiven Nutzung von, ja, ja, Excel beginnt. Aber das Wichtigste ist, dass sie dort nicht endet. Das Spiel wird noch zus\u00e4tzlich angefacht durch Google Analytics \u2013 man gew\u00f6hnt sich schnell an das Gute.<\/p>\n<p>In unserem harmonisch wachsenden Unternehmen tauchten hier und da \u201ePropheten\u201c f\u00fcr eine intensivere Arbeit mit gr\u00f6\u00dferen Datenmengen auf. Regelm\u00e4\u00dfig gab es Anforderungen an tiefere und facettenreichere Berichte, und die Bem\u00fchungen von Mitarbeitern aus verschiedenen Abteilungen f\u00fchrten vor einiger Zeit zur Organisation einer einfachen und praktischen L\u00f6sung \u2013 der Anbindung von ClickHouse und PowerBI.<\/p>\n<p>Lange Zeit half diese flexible L\u00f6sung ausgezeichnet, aber allm\u00e4hlich wurde klar, dass ClickHouse nicht dehnbar ist und man nicht so mit ihm umgehen kann.<\/p>\n<p>Hier ist es wichtig zu verstehen, dass ClickHouse, wie Druid, wie Vertica, wie Amazon RedShift (basierend auf Postgres), analytische Engines sind, die f\u00fcr recht bequeme Analysen (Summen, Aggregationen, Minimum-Maximum pro Spalte und ein wenig Join) optimiert sind, da sie f\u00fcr die effiziente Speicherung von Spalten relationaler Tabellen organisiert sind, im Gegensatz zu dem bekannten MySQL und anderen (row-oriented) Datenbanken.<\/p>\n<p>Im Grunde genommen ist ClickHouse nur eine gr\u00f6\u00dfere \"Datenbank\", mit nicht sehr bequemer punktueller Einspeisung (so ist es gedacht, alles in Ordnung), aber mit angenehmer Analyse und einer Reihe von interessanten leistungsstarken Funktionen zur Datenverarbeitung. Ja, man kann sogar einen Cluster erstellen \u2013 aber, verstehen Sie, es ist nicht ganz richtig, N\u00e4gel mit einem Mikroskop zu h\u00e4mmern und wir begannen, nach anderen L\u00f6sungen zu suchen.<\/p>\n<h3>Nachfrage nach Python und Analysten<\/h3>\n<p>\nIn unserem Unternehmen gibt es viele Entwickler, die fast jeden Tag seit 10-20 Jahren in PHP, JavaScript, C#, C\/C++, Java, Go, Rust, Python, Bash programmieren. Au\u00dferdem gibt es viele erfahrene Systemadministratoren, die nicht eine, sondern mehrere v\u00f6llig unglaublich Katastrophen \u00fcberstanden haben, die nicht in die Gesetze der Statistik passen (zum Beispiel, wenn die meisten Festplatten in einem RAID-10 bei einem starken Blitzschlag zerst\u00f6rt werden). Unter solchen Bedingungen war lange Zeit unklar, was ein \"Analyst mit Python\" ist. Python ist wie PHP, nur mit einem etwas l\u00e4ngeren Namen und weniger Substanzen, die das Bewusstsein im Quellcode des Interpreters ver\u00e4ndern. Doch w\u00e4hrend immer neue analytische Berichte erstellt wurden, begannen die erfahrenen Entwickler mehr und mehr die Bedeutung der Spezialisierung auf Werkzeuge wie numpy, pandas, matplotlib, seaborn zu erkennen.<br \/>\nEine entscheidende Rolle spielten wahrscheinlich die pl\u00f6tzlichen Ohnmachtsanf\u00e4lle der Mitarbeiter in Kombination mit den Worten \"logistische Regression\" und der Demonstration des effektiven Aufbaus von Berichten \u00fcber gro\u00dfe Datenmengen mit, ja, pyspark.<\/p>\n<p>Apache Spark und seine funktionale Paradigmen, auf die die relationale Algebra hervorragend passt, haben so einen Eindruck bei den Entwicklern hinterlassen, die an MySQL gew\u00f6hnt sind, dass die Notwendigkeit, erfahrene Analysten in den Reihen zu haben, offensichtlich wurde.<\/p>\n<h3>Die weiteren Versuche von Apache Spark\/Hadoop abzuheben, und was nicht ganz nach Plan verlief<\/h3>\n<p>\nEs stellte sich jedoch bald heraus, dass mit Spark offenbar etwas grundlegend nicht stimmte oder man einfach seine H\u00e4nde besser waschen sollte. Wenn das Hadoop\/MapReduce\/Lucene-Stack von erfahrenen Programmierern erstellt wurde, was offensichtlich ist, wenn man sich die Quellcodes in Java oder Doug Cutting Ideen in Lucene ansieht, dann ist Spark pl\u00f6tzlich in einer sehr umstrittenen, praktischen Hinsicht und im Moment nicht mehr entwickelten exotischen Sprache Scala geschrieben. Das regelm\u00e4\u00dfige Versagen von Berechnungen im Spark-Cluster aufgrund der unlogischen und wenig transparenten Speicherverwaltung f\u00fcr Reduce-Operationen (da viele Schl\u00fcssel auf einmal ankommen) hat um ihn einen Nimbus des Wachstums geschaffen. Zus\u00e4tzlich wurde die Situation durch eine Vielzahl von seltsamen offenen Ports, tempor\u00e4ren Dateien, die an den unverst\u00e4ndlichsten Orten wuchsen, und ein Netz von jar-Abh\u00e4ngigkeiten versch\u00e4rft \u2014 das rief bei den Systemadministratoren ein vertrautes Gef\u00fchl hervor: loderne Hass (oder vielleicht h\u00e4tte man die H\u00e4nde mit Seife waschen sollen).<\/p>\n<p>Wir haben als Ergebnis mehrere interne Analyseprojekte \u201e\u00fcberlebt\u201c, die intensiv Apache Spark (einschlie\u00dflich Spark Streaming, Spark SQL) und das Hadoop-\u00d6kosystem (und so weiter) nutzten. Obwohl wir im Laufe der Zeit gelernt haben, \u201edas\u201c ganz gut zu handhaben und zu \u00fcberwachen und \u201ees\u201c praktisch nicht mehr pl\u00f6tzlich aufgrund der ver\u00e4nderten Datenmuster und der Unausgewogenheit des gleichm\u00e4\u00dfigen Hashing von RDD fiel, wurde der Wunsch, etwas Fertiges, Aktualisiertes und Administriertes irgendwo in der Cloud zu nehmen, immer st\u00e4rker. <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/emr\/\">EMR<\/a><\/noindex> und haben anschlie\u00dfend versucht, die Aufgaben bereits darauf zu l\u00f6sen. EMR ist Amazons fertiger Apache Spark mit zus\u00e4tzlicher Software aus dem \u00d6kosystem, \u00e4hnlich wie die Cloudera\/Hortonworks-Bundles.<\/p>\n<h3>Ein \u201egummibereites\u201c Dateispeicher f\u00fcr Analysen \u2013 ein dringender Bedarf<\/h3>\n<p>\nDie Erfahrung der \u201eZubereitung\u201c von Hadoop\/Spark mit Verbrennungen an verschiedenen K\u00f6rperstellen blieb nicht ohne Ergebnis. Es zeichnete sich immer klarer die Notwendigkeit ab, einen einheitlichen, kosteng\u00fcnstigen und zuverl\u00e4ssigen Dateispeicher zu schaffen, der gegen Hardwareausf\u00e4lle resistent w\u00e4re und in dem Dateien in verschiedenen Formaten aus verschiedenen Systemen gespeichert werden k\u00f6nnten, um daraus effektive Datenabfragen f\u00fcr Berichte in angemessener Zeit zu erstellen.<\/p>\n<p>Es w\u00e4re auch w\u00fcnschenswert, dass die Software-Updates dieser Plattform nicht zu einem nervenaufreibenden Neujahrsnacht-Albtraum werden, bei dem man 20-seitige Java-Tracebacks lesen und kilometerlange detaillierte Protokolle des Clusterbetriebs mit Hilfe des Spark History Servers und einer Lupe mit Beleuchtung analysieren muss. Ich m\u00f6chte ein einfaches und transparentes Werkzeug haben, das keine regelm\u00e4\u00dfigen Tiefenuntersuchungen erfordert, wenn der Entwickler die Standard-MapReduce-Anfrage nicht mehr ausf\u00fchren kann, weil der Arbeitsspeicher des Reduce-Datenarbeiters bei ung\u00fcnstigen Partitionsalgorithmen nicht mehr ausreicht.<\/p>\n<h3>Amazon S3 \u2013 ein Kandidat f\u00fcr DataLake?<\/h3>\n<p>\nDie Erfahrungen mit Hadoop\/MapReduce haben gezeigt, dass eine skalierbare, zuverl\u00e4ssige Dateispeicherl\u00f6sung sowie skalierbare Worker n\u00f6tig sind, die n\u00e4her an den Daten arbeiten, um nicht st\u00e4ndig Daten \u00fcber das Netzwerk zu bewegen. Die Worker sollten in der Lage sein, Daten in verschiedenen Formaten zu lesen, aber idealerweise keine unn\u00f6tigen Informationen lesen und die Daten im Voraus in Formate speichern, die f\u00fcr die Worker praktisch sind.<\/p>\n<p><b>Nochmal - das Hauptkonzept.<\/b> Ich habe kein Interesse daran, gro\u00dfe Daten in eine einzige Cluster-Analysemotor zu laden, der irgendwann ohnehin \u00fcberfordert ist und dann unsch\u00f6n shardet werden muss. Ich m\u00f6chte einfach Dateien in einem verst\u00e4ndlichen Format speichern und mit verschiedenen, aber intuitiven Werkzeugen effiziente Analyseanfragen durchf\u00fchren. Es werden zunehmend mehr Dateien in verschiedenen Formaten generiert, und es w\u00e4re besser, nicht den Motor zu sharden, sondern die Rohdaten. Wir ben\u00f6tigen einen skalierbaren und universellen DataLake, haben wir beschlossen...<\/p>\n<p>Was w\u00e4re, wenn wir die Dateien in einem vertrauten und von vielen bekannten skalierbaren Cloud-Speicher wie Amazon S3 speichern, ohne uns um die eigene Zubereitung von H\u00e4hnchen zu k\u00fcmmern?<\/p>\n<p>Klar, personenbezogene Daten sind \"no go\", aber was ist mit anderen Daten, wenn wir sie dorthin bringen und \"effektiv verarbeiten\"?<\/p>\n<h3>Das clusterbasierte Big Data-Analyse-\u00d6kosystem von Amazon Web Services \u2013 sehr vereinfacht gesagt.<\/h3>\n<p>\nNach unseren Erfahrungen mit AWS wird dort schon lange und aktiv Apache Hadoop\/MapReduce unter verschiedenen Aspekten verwendet, beispielsweise im Dienst DataPipeline (ich beneide meine Kollegen, die haben gelernt, wie man es richtig zubereitet). Hier haben wir Backups aus verschiedenen Diensten von DynamoDB-Tabellen eingerichtet:<br \/>\n<img decoding=\"async\" alt=\"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.\" src=\"\/wp-content\/uploads\/2020\/08\/058dc54ed032a7bf3e9e129646202440.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnd diese werden seit mehreren Jahren regelm\u00e4\u00dfig auf den integrierten Clustern von Hadoop\/MapReduce wie die Uhr ausgef\u00fchrt. \"Einmal eingerichtet und vergessen\":<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.\" src=\"\/wp-content\/uploads\/2020\/08\/a6569da8cafdb96c63250bb32bf51704.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAu\u00dferdem kann man effektiv Daten-Satanismus betreiben, indem man Jupiter-Notebooks in der Cloud f\u00fcr Analysten hochzieht und AWS SageMaker f\u00fcr das Training und Deployment von KI-Modellen verwendet. So sieht das bei uns aus:<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.\" src=\"\/wp-content\/uploads\/2020\/08\/c825d979c9278a8edf8e1e747ef6def8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa, man kann sich oder dem Analysten ein Notebook in der Cloud einrichten und es an ein Hadoop\/Spark-Cluster anschlie\u00dfen, die Daten berechnen und anschlie\u00dfend alles \u201afesthalten\u2018:<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.\" src=\"\/wp-content\/uploads\/2020\/08\/73cea18c54d2a9ce8d0441463991808b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs ist wirklich praktisch f\u00fcr einzelne Analyseprojekte und f\u00fcr einige von ihnen haben wir erfolgreich den EMR-Service f\u00fcr gro\u00dfangelegte Berechnungen und Analysen genutzt. Und wie sieht es mit einer systematischen L\u00f6sung f\u00fcr DataLake aus, wird das klappen? In diesem Moment waren wir am Rande von Hoffnung und Verzweiflung und setzten unsere Suche fort.<\/p>\n<h3>AWS Glue \u2013 ordentlich verpacktes Apache Spark \u201eauf Steroiden\u201c<\/h3>\n<p>\nEs stellte sich heraus, dass AWS eine \u201eeigene\u201c Version des Stacks \u201eHive\/Pig\/Spark\u201c hat. Die Rolle von Hive, also das Katalogisieren von Dateien und ihren Typen im DataLake, \u00fcbernimmt der Service \u201eDatenkatalog\u201c, der nicht einmal seine Kompatibilit\u00e4t mit dem Apache Hive-Format verheimlicht. In diesen Service m\u00fcssen Sie Informationen dar\u00fcber einf\u00fcgen, wo sich Ihre Dateien befinden und in welchem Format sie vorliegen. Die Daten k\u00f6nnen nicht nur in s3, sondern auch in einer Datenbank gespeichert sein, aber das ist nicht Thema dieses Beitrags. So ist unser Datenkatalog f\u00fcr DataLake organisiert:<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.\" src=\"\/wp-content\/uploads\/2020\/08\/adb45d09698fdacbf41c86bbadde8bb2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie Dateien sind registriert, alles bestens. Wenn die Dateien aktualisiert wurden, starten wir entweder manuell oder nach einem Zeitplan Crawler, die die Informationen \u00fcber sie aus dem See aktualisieren und speichern. Anschlie\u00dfend k\u00f6nnen die Daten aus dem See verarbeitet und die Ergebnisse irgendwohin exportiert werden. Im einfachsten Fall exportieren wir sie ebenfalls in s3. Die Datenverarbeitung kann \u00fcberall erfolgen, aber es wird empfohlen, den Verarbeitungsprozess auf einem Apache Spark-Cluster mit erweiterten M\u00f6glichkeiten \u00fcber die AWS Glue API einzurichten. Im Grunde kann man den guten alten und vertrauten Code in Python unter Verwendung der Bibliothek pyspark nehmen und seine Ausf\u00fchrung auf N Knoten eines Clusters mit einer bestimmten Leistung einrichten, einschlie\u00dflich Monitoring, ohne sich mit den Tiefen von Hadoop zu besch\u00e4ftigen und Docker-Mocker-Container hin und her zu ziehen und Abh\u00e4ngigkeitskonflikte zu beseitigen.<\/p>\n<p><b>Noch einmal \u2013 eine einfache Idee.<\/b> Es ist nicht n\u00f6tig, Apache Spark einzurichten, man muss nur Python-Code f\u00fcr pyspark schreiben, lokal auf dem Desktop testen und dann auf einem gro\u00dfen Cluster in der Cloud ausf\u00fchren, indem man angibt, wo die Quelldaten liegen und wo das Ergebnis gespeichert werden soll. Manchmal ist das notwendig und n\u00fctzlich, und so ist es bei uns eingerichtet:<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.\" src=\"\/wp-content\/uploads\/2020\/08\/dc03181573bb3f5cfcc3a8760bc7e07b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSo, wenn man etwas auf einem Spark-Cluster mit Daten in s3 berechnen muss, schreibt man Python\/pyspark-Code, testet ihn und ab ins Cloud.<\/p>\n<p>Und was ist mit der Orchestrierung? Und wenn die Aufgabe gefallen und verschwunden ist? Ja, es wird vorgeschlagen, eine sch\u00f6ne Pipeline im Stil von Apache Pig zu erstellen, und wir haben sie sogar ausprobiert, aber beschlossen, vorerst unsere tiefgehend angepasste Orchestrierung in PHP und JavaScript zu verwenden (ich verstehe, dass ein kognitiver Dissonanz entsteht, aber es funktioniert, schon jahrelang und ohne Fehler).<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.\" src=\"\/wp-content\/uploads\/2020\/08\/e00ed2047c5c6492e36fccc82e7278a3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Das Format der im See gespeicherten Dateien ist der Schl\u00fcssel zur Leistung<\/h3>\n<p>\nEs ist sehr, sehr wichtig, zwei weitere entscheidende Punkte zu verstehen. Damit die Anfragen zu den Daten der Dateien im See so schnell wie m\u00f6glich ausgef\u00fchrt werden und die Leistung beim Hinzuf\u00fcgen neuer Informationen nicht sinkt, m\u00fcssen Sie:<\/p>\n<ul>\n<li>Die Spalten der Dateien separat speichern (um nicht alle Zeilen lesen zu m\u00fcssen, um zu verstehen, was in den Spalten steht). Daf\u00fcr haben wir das Parquet-Format mit Kompression gew\u00e4hlt.<\/li>\n<li>Es ist sehr wichtig, die Dateien nach Ordnern zu shardieren: Sprache, Jahr, Monat, Tag, Woche. Engines, die diesen Sharding-Typ verstehen, werden nur in die ben\u00f6tigten Ordner schauen, ohne alle Daten durchzugehen.<\/li>\n<\/ul>\n<p>\nIm Grunde genommen legen Sie auf diese Weise die Ausgangsdaten in der effektivsten Form f\u00fcr die dar\u00fcber liegenden Analyse-Engines zur Verf\u00fcgung, die ebenfalls selektiv in die shardierten Ordner gehen und nur die ben\u00f6tigten Spalten aus den Dateien lesen k\u00f6nnen. Es ist nicht n\u00f6tig, die Daten irgendwo zu \"laden\" (das Speicher k\u00f6nnte sonst einfach platzen) \u2014 legen Sie sie einfach gleich sinnvoll im richtigen Format in das Dateisystem. Selbstverst\u00e4ndlich sollte hier klar sein, dass es nicht sehr sinnvoll ist, eine riesige CSV-Datei im DataLake zu speichern, die man zuerst zeilenweise mit einem Cluster lesen muss, um die Spalten zu extrahieren \u2014 denken Sie noch einmal \u00fcber die beiden obigen Punkte nach, wenn Sie nicht verstehen, wozu das alles gut sein soll.<\/p>\n<h3>AWS Athena \u2014 der \"Teufel\" aus der Tabakdose<\/h3>\n<p>\nUnd hier, w\u00e4hrend wir den See erstellen, sind wir zuf\u00e4llig auf Amazon Athena gesto\u00dfen. Pl\u00f6tzlich stellte sich heraus, dass wir, indem wir unsere riesigen Log-Dateien ordentlich nach Shards-Ordnern im richtigen (parquet) spaltenbasierten Format anordnen, sehr schnell \u00e4u\u00dferst informative Abfragen durchf\u00fchren und Berichte OHNE, ohne Apache Spark\/Glue-Cluster erstellen k\u00f6nnen.<\/p>\n<p>Die Athena-Engine, die mit Daten in S3 arbeitet, basiert auf dem legend\u00e4ren <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/big-data\/what-is-presto\/\">Presto<\/a><\/noindex> \u2014 Vertreter der MPP (massive parallel processing) Ans\u00e4tze zur Datenverarbeitung, die Daten dort entnehmen, wo sie liegen, von s3 und Hadoop bis hin zu Cassandra und einfachen Textdateien. Man muss lediglich Athena auffordern, die SQL-Abfrage auszuf\u00fchren, und der Rest \u201efunktioniert schnell und selbstst\u00e4ndig\u201c. Es ist wichtig zu erw\u00e4hnen, dass Athena \u201eintelligent\u201c ist, nur die ben\u00f6tigten shard-gerechten Ordner aufruft und nur die ben\u00f6tigten Spalten aus der Abfrage liest.<\/p>\n<p>Die Anfragen an Athena werden ebenfalls interessant abgerechnet. Wir bezahlen f\u00fcr <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/athena\/pricing\/\">das Volumen der gescannten Daten<\/a><\/noindex>. Das hei\u00dft, nicht f\u00fcr die Anzahl der Maschinen im Cluster pro Minute, sondern\u2026 f\u00fcr die tats\u00e4chlich gescannten, auf 100-500 Maschinen, nur die notwendigen Daten zur Ausf\u00fchrung der Abfrage.<\/p>\n<p>Und wenn man nur die ben\u00f6tigten Spalten aus den richtig shard-gerechten Ordnern abfragt, stellt sich heraus, dass uns der Service Athena nur einige Dutzend Dollar im Monat kostet. Na, das ist doch prima, fast kostenlos im Vergleich zu Analytics auf Clustern!<\/p>\n<p>\u00dcbrigens, so shardieren wir unsere Daten in s3:<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.\" src=\"\/wp-content\/uploads\/2020\/08\/00bd9ae48c1cd13f3c4f7d32692c9209.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn der Folge haben innerhalb kurzer Zeit in der Firma vollkommen verschiedene Abteilungen, von der Informationssicherheit bis zur Analyse, begonnen, aktiv Anfragen an Athena zu stellen und schnell, in Sekunden, n\u00fctzliche Antworten aus den \"gro\u00dfen\" Daten \u00fcber ziemlich lange Zeitr\u00e4ume zu erhalten: Monate, Halbjahre usw.<\/p>\n<p>Aber wir sind weitergegangen und haben begonnen, die Antworten in die Cloud zu holen <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/ug\/connect-with-odbc.html\">\u00fcber den ODBC-Treiber<\/a><\/noindex>: Ein Analyst schreibt in der gewohnten Konsole eine SQL-Abfrage, die auf 100-500 Maschinen \u201ef\u00fcr einen kleinen Preis\u201c die Daten in s3 durchforstet und die Antwort normalerweise in wenigen Sekunden zur\u00fcckgibt. Bequem. Und schnell. Es ist immer noch kaum zu glauben.<\/p>\n<p>Insgesamt haben wir, nachdem wir entschieden haben, die Daten in s3 im effektiven Spaltenformat und mit einer sinnvollen Shardung der Daten nach Ordnern zu speichern\u2026 ein DataLake und eine schnelle und g\u00fcnstige Analysesoftware - kostenlos. Und es wurde sehr beliebt im Unternehmen, da es SQL versteht und um ein Vielfaches schneller arbeitet als bei Start\/Stop\/Feinabstimmung von Clustern. \"Und wenn das Ergebnis dasselbe ist, warum mehr bezahlen?\"<\/p>\n<p>Eine Anfrage an Athena sieht ungef\u00e4hr so aus. Wenn gew\u00fcnscht, kann man nat\u00fcrlich eine ausreichend <noindex><a rel=\"nofollow\" href=\"https:\/\/prestodb.io\/docs\/0.172\/index.html\">komplexe und mehrseitige SQL-Abfrage<\/a><\/noindex>, aber wir beschr\u00e4nken uns auf eine einfache Gruppierung. Schauen wir, welche Antwortcodes der Kunde vor einigen Wochen in den Protokollen des Webservers hatte und stellen wir sicher, dass es keine Fehler gab:<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir ein hochgradig effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum gerade so.\" src=\"\/wp-content\/uploads\/2020\/08\/30028991467b9e52f597faa617d374b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Das DBMS Tarantool ist ein attraktives, zukunftstr\u00e4chtiges Produkt zur Erstellung von hochbelasteten Anwendungen.<\/h3>\n<p>\nNach einem, wenn auch nicht langen, daf\u00fcr aber schmerzhaften Weg, bei dem wir st\u00e4ndig Risiken, den Schwierigkeitsgrad und die Kosten f\u00fcr den Support angemessen bewertet haben, fanden wir eine L\u00f6sung f\u00fcr DataLake und Analytics, die uns sowohl mit ihrer Geschwindigkeit als auch mit den Besitzkosten begeistert.<\/p>\n<p>Es stellte sich heraus, dass es selbst f\u00fcr erfahrene Entwickler, die niemals Architekten gewesen sind und es nicht gewohnt sind, Quadrate auf Quadraten mit Pfeilen zu zeichnen und 50 Begriffe aus dem Hadoop-\u00d6kosystem zu kennen, durchaus m\u00f6glich ist, ein effizientes, schnelles und kosteng\u00fcnstiges DataLake f\u00fcr die Bed\u00fcrfnisse ganz unterschiedlicher Unternehmensabteilungen zu erstellen.<\/p>\n<p>Zu Beginn war der Kopf voller Information \u00fcber eine Vielzahl von sowohl offenen als auch geschlossenen Software-Zoo und das Bewusstsein der Verantwortung gegen\u00fcber zuk\u00fcnftigen Generationen. Beginnen Sie einfach, Ihren DataLake mit einfachen Tools aufzubauen: nagios\/munin -&gt; elastic\/kibana -&gt; Hadoop\/Spark\/s3 ..., w\u00e4hrend Sie Feedback sammeln und die physikalischen Prozesse tiefgehend verstehen. Alles Komplexe und Unklare sollten Sie den Feinden und Wettbewerbern \u00fcberlassen.<\/p>\n<p>Wenn Sie nicht in die Cloud m\u00f6chten und es lieben, Open-Source-Projekte zu unterst\u00fctzen, zu aktualisieren und zu patchen, k\u00f6nnen Sie ein \u00e4hnliches System wie das unsere lokal auf preiswerten B\u00fcrorechnern mit Hadoop und Presto oben drauf aufbauen. Das Wichtigste ist, nicht stehen zu bleiben und voranzukommen, zu z\u00e4hlen, einfache und klare L\u00f6sungen zu suchen, und alles wird auf jeden Fall gelingen! Viel Gl\u00fcck an alle und bis zum n\u00e4chsten Mal!<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/bitrix\/blog\/516374\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0443\u044e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e. \u0410 \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f\/\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u043f\u0430\u0440\u0443 \u043c\u0430\u0448\u0438\u043d \u2014 \u043e\u0441\u043e\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043d\u0430\u0432\u044f\u0437\u0447\u0438\u0432\u044b\u0439 \u0434\u0443\u0440\u043d\u043e\u0439 \u0441\u043e\u043d \u043d\u0430\u044f\u0432\u0443, \u0432\u0441\u0435 \u0440\u0435\u0437\u043a\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u043e\u0441\u044c \u0434\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92509,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92508","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e\u0435 DataLake \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-28T05:42:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-28T05:42:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wie wir ein hoch effizientes und kosteng\u00fcnstiges DataLake organisiert haben und warum genau so | ProHoster","description":"Wir leben in einer erstaunlichen Zeit, in der man schnell und einfach mehrere fertige Open-Source-Tools verbinden, sie mit 'abgeschaltetem Bewusstsein' nach den Ratschl\u00e4gen von stackoverflow konfigurieren kann, ohne sich mit 'viele Buchstaben' auseinanderzusetzen, und sie starten kann.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e\u0435 DataLake \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a | ProHoster","og:description":"\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-28T05:42:10+00:00","article:modified_time":"2020-08-28T05:42:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92508","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:07:39","updated":"2022-10-01 09:50:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/92508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=92508"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/92508\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/92509"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=92508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=92508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=92508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}