Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Bei meiner Arbeit an Datenpipelines war der teuerste Vorfall, den ich erlebt habe, auf einen Fehler zurückzuführen: Eine Pipeline hat monatelang Daten falsch umgewandelt, und das Problem blieb unentdeckt, bis unsere Kunden bemerkten, dass die Daten falsch waren.

Wie so oft haben viele Probleme zu diesem Ergebnis geführt. Die Daten waren sehr unterschiedlich, was die Überwachung der Datenqualität erschwerte. Wir hatten zwar Testdaten, aber die waren nicht mehr aktuell. Die einzige Möglichkeit, Code-Änderungen zu testen, war ein kompletter Pipeline-Lauf, der sowohl langwierig als auch kostspielig war. Wir wussten, dass sich die Datenquelle auf unvorhersehbare Weise ändern konnte, aber wir hatten keine Datenvalidierung in der Pipeline, um Änderungen zu erkennen.

Wir hätten diesen Fehler mit einer schemabasierten Validierung abfangen können, die du in diesem Buch kennenlernst. Stattdessen haben wir einen erheblichen Teil unserer jährlichen Cloud-Rechnung für die Neuberechnung der fehlerhaften Daten ausgegeben. Als ob das nicht schon schlimm genug wäre, kostete uns das auch noch das Vertrauen unserer Kunden, so dass die Gültigkeit des Projekts in Frage gestellt wurde. Ein Multimillionen-Dollar-Vertrag mit einem Dutzend Aufträgen zur Erbringung eines Dienstes, der fast 100 Millionen Menschen geholfen hat, stand auf dem Spiel. Fehler dieses Ausmaßes sind etwas, dem jeder Dateningenieur mit großer Verantwortung im Laufe seiner Karriere ausgesetzt sein wird.

Wenn du versuchst, die Kosten für Cloud-Datenpipelines einzudämmen, bist du oft mit Kompromissen konfrontiert. Erfülle die Leistungsanforderungen, aber reduziere die Verschwendung von Rechenzyklen. Nutze die Beobachtbarkeit zur Fehlersuche, zur Kostenreduzierung und zur Entwicklung von Designs, aber gib nicht zu viel Geld für Überwachung und Protokollierung aus. Verbessere die Testabdeckung, aber unvorhersehbare Datenänderungen machen die Testannahmen ungültig und Cloud-Service-Schnittstellen verursachen zusätzliche Kosten und Komplexität. Nutze kostengünstige, unterbrechbare Compute-Instanzen, aber opfere nicht die Stabilität der Pipeline.

In diesem Buch habe ich zusammengefasst, was du wissen musst, um mit solchen Kompromissen schnell und erfolgreich umzugehen. Mit dem Schwerpunkt auf effektiver Überwachung, der Entwicklung und dem Testen von Datenpipelines und gezielten Ratschlägen für die Gestaltung von Cloud Compute und Speicherung wird dieses Buch dich von Anfang an auf Erfolgskurs bringen und dich in die Lage versetzen, die Entwicklung von Datenpipelines auf kosteneffiziente Weise zu steuern.

Ich habe diese Ansätze in Batch- und Streaming-Systemen eingesetzt, die von einigen tausend Zeilen bis hin zu Petabytes an Daten reichen und sowohl gut definierte, strukturierte Daten als auch semistrukturierte Quellen mit häufigen Änderungen umfassen.

Für wen dieses Buch ist

Ich habe den Inhalt auf ein mittleres bis fortgeschrittenes Publikum ausgerichtet. Ich gehe davon aus, dass du mit den bewährten Methoden der Softwareentwicklung vertraut bist, einige Grundlagen über die Arbeit mit Cloud Compute und Speicherung hast und eine allgemeine Vorstellung davon hast, wie Batch- und Streaming-Datenpipelines funktionieren.

Dieses Buch basiert auf meinen Erfahrungen bei der täglichen Entwicklung von Datenpipelines. Wenn dies eine Arbeit ist, die du bereits machst oder in Zukunft machen willst, kannst du dieses Buch als virtuellen Mentor betrachten, der dich auf häufige Fallstricke hinweist und dir Anleitungen gibt, die aus der Arbeit an einer Vielzahl von Datenpipeline-Projekten gewonnen wurden.

Wenn du aus dem Bereich der Datenanalyse kommst, findest du hier Tipps zu bewährten Methoden, die dir helfen, testbare und erweiterbare Pipelines zu erstellen. So kannst du die Analyse mit der Datenerfassung und -speicherung verbinden, um durchgängige Systeme zu schaffen.

Entwicklungsgeschwindigkeit und kostenbewusstes Design sind Bereiche, die jeder - vom einzelnen Mitarbeiter bis zum Manager - im Blick haben sollte. In diesem Buch findest du Tipps, wie du Qualität in den Entwicklungsprozess einbauen, Cloud-Ressourcen effizient nutzen und Kosten senken kannst. Außerdem erfährst du, welche Elemente in die Überwachung einfließen, um nicht nur den Zustand und die Leistung des Systems im Auge zu behalten, sondern auch zu erkennen, wo ein Redesign in Betracht gezogen werden sollte.

Wenn du Data-Engineering-Teams leitest, findest du hier hilfreiche Tipps zu effektiven Entwicklungspraktiken, zu Bereichen, in denen die Kosten eskalieren können, und zu einem Gesamtkonzept für die Einführung der richtigen Praktiken, die deinem Team zum Erfolg verhelfen.

Was du lernen wirst

Wenn du Folgendes lernen oder deine Fähigkeiten verbessern möchtest, wird dieses Buch ein nützlicher Leitfaden sein:

  • Reduziere die Cloud-Ausgaben mit kostengünstigeren Cloud-Service-Angeboten und intelligenten Designstrategien.

  • Minimiere die Verschwendung ohne Leistungseinbußen, indem du die Rechenressourcen richtig dimensionierst.

  • Treibe die Entwicklung der Pipeline voran, beuge Leistungsproblemen vor und behebe sie schnell mit kostengünstiger Überwachung und Protokollierung.

  • Richte Entwicklungs- und Testumgebungen ein, die die Kosten für Cloud-Dienste minimieren.

  • Erstelle Codebases für Datenpipelines, die testbar und erweiterbar sind, um die Entwicklungszeit zu verkürzen und die Entwicklung der Pipelines zu beschleunigen.

  • Begrenzen Sie kostspielige Datenausfallzeiten1 indem du die Datenqualität und den Betrieb der Pipeline durch Validierung und Tests verbesserst.

Was dieses Buch nicht ist

Dies ist kein Architekturbuch. Es gibt zwar Aspekte, die mit der Architektur und den Systemanforderungen zu tun haben, aber ich werde nicht auf verschiedene Architekturansätze oder Kompromisse eingehen. Ich behandle keine Themen wie Data Governance, Datenkatalogisierung oder Data Lineage.

Ich gebe zwar Ratschläge zum Umgang mit den Kompromissen zwischen Kosten und Leistung, die beim Aufbau von Datenpipelines in der Cloud entstehen, aber dieses Buch ist kein Buch über Finanzoperationen (FinOps). Während ein FinOps-Buch dich zum Beispiel anweisen würde, nach ungenutzten Compute-Instance-Stunden Ausschau zu halten, um die Kosten zu senken, geht dieses Buch bis ins kleinste Detail auf die Reduzierung der Instance-Stunden und der damit verbundenen Kosten ein.

Der Gestaltungsbereich von Datenpipelines wächst und verändert sich ständig. Der größte Nutzen, den ich bieten kann, ist die Beschreibung von Entwurfstechniken, die unter einer Vielzahl von Umständen angewendet werden können, während sich das Feld weiterentwickelt. Wo es relevant ist, erwähne ich einige spezifische, vollständig verwaltete Dateneingabedienste wie Amazon Web Services (AWS) Glue oder Google Dataflow, aber der Schwerpunkt dieses Buches liegt auf Klassen von Diensten, die für viele Anbieter gelten. Wenn du diese grundlegenden Dienste verstehst, kannst du das Beste aus den vom Anbieter verwalteten Diensten herausholen.

Zu den Cloud-Service-Angeboten, auf die ich mich konzentriere, gehören Objektspeicher wie AWS S3 und GCS, serverlose Funktionen wie AWS Lambda und Cluster-Computing-Services wie AWS Elastic Compute (EC2), AWS Elastic MapReduce (EMR) und Kubernetes. Die Verwaltung von Systemgrenzen, das Identitätsmanagement und die Sicherheit sind zwar Aspekte dieses Ansatzes, aber ich werde diese Themen in diesem Buch nicht behandeln.

In diesem Buch gebe ich keine Ratschläge zu Datenbankdiensten, da die Wahl der Datenbanken und Konfigurationen stark von den spezifischen Anwendungsfällen abhängt.

Du wirst lernen, was du protokollieren und überwachen musst, aber ich werde nicht im Detail darauf eingehen, wie du die Überwachung einrichtest, da die Überwachungs-Tools von Unternehmen zu Unternehmen unterschiedlich sind.

Laufendes Beispiel

Um verschiedene Aspekte der kosteneffizienten Entwicklung von Datenpipelines zu veranschaulichen, enthält dieses Buch ein laufendes Beispiel einer fiktiven Social-Media-Seite, Herons on Demand (HoD). HoD wurde von Lou und Sylvia gegründet, Freunden aus der Kindheit, die sich über ihre Liebe zur Beobachtung von Reihern, majestätischen Küstenvögeln, die überall auf der Welt zu sehen sind, verbunden haben. Jetzt sind sie etablierte Softwareentwickler und machen sich selbstständig, um ihren Traum zu verwirklichen, anderen dabei zu helfen, diese schwer zu fassenden Kreaturen per Video zu beobachten und ihnen Orte zu empfehlen, an denen sie Reiher in echt sehen können.

Mit einer Kreditkarte melden sich Lou und Sylvia bei einem Cloud-Provider (CSP) an. So haben sie sofort Zugang zu Speicherung, Rechenleistung, Datenbanken und Webhosting, die alle von Grund auf neu eingerichtet werden müssten. Sylvia und Lou fangen zwar klein an, aber sie wollen Reiherinhalte für Vogelfreunde auf der ganzen Welt bereitstellen. Deshalb sind die weltweiten Verfügbarkeitszonen, die ihr CSP anbietet, ein zusätzliches Verkaufsargument.

Du magst vielleicht skeptisch sein, dass das Interesse an Reihern groß genug ist, um ein Unternehmen darauf zu setzen, aber anscheinend gab es in diesem Bereich ein großes ungenutztes Potenzial. Innerhalb weniger Monate geht HoD viral und Millionen von Nutzern tauschen Daten über Reiher aus. Da Lou und Sylvia die HoD-Plattform in der Cloud aufgebaut haben, kann sie schnell auf die Nachfrage reagieren. Die Cloud-Rechnung übersteigt ihre Kreditkarte, aber glücklicherweise erklärt sich ein reiherbesessener Milliardär bereit, in ihr Unternehmen zu investieren. Damit ist die Cloud-Rechnung vorerst vom Tisch.

Der Erfolg von HoD führt zu einem riesigen Datensatz mit Reiherinformationen. Lou, Sylvia und ihr Investor überlegen, wie diese Informationen in neue Produkte und Dienstleistungen umgewandelt werden können. Während sie über diese Frage nachdenken, meldet sich ein ornithologisches Labor der Universität. Das Labor erforscht die Migration von Reihern und glaubt, dass der HoD-Datensatz dabei helfen könnte, neue und gefährdete Zuggebiete zu identifizieren. Lou und Sylvia sind begeistert von der Aussicht, Reiher zu retten, aber der Milliardär ist weniger optimistisch. "Es gibt kein Geld dafür, Forschern zu helfen", sagt sie.

Lou und Sylvia lassen sich nicht unterkriegen und entwickeln ein Produkt, das die Reiheridentifizierung als Dienstleistung (HIaaS) anbietet. Dieser Dienst würde Kundendaten verarbeiten und nach übereinstimmenden Informationen in der HoD-Datenbank suchen, sodass die Kunden mit hoher Sicherheit Reiher identifizieren können. Die Übernahme des Hochschulprojekts wäre eine gute Möglichkeit, um mit dem Aufbau von Datenpipelines zu beginnen und dieses Angebot zu testen.

Die Milliardärin ist einverstanden, aber sie will eine gewisse Rendite sehen. Sie fordert Lou und Sylvia auf, HIaaS kosteneffizient zu gestalten und dabei sowohl die Cloud-Kosten als auch die Personalzeit zu begrenzen. Mit diesen Vorgaben im Hinterkopf machen sie mit dem Auftrag der Universität weiter.

In diesem Buch verwendete Konventionen

Um die Dinge interessant zu halten, habe ich mir fiktive, aber von realen Ereignissen inspirierte Szenarien ausgedacht, um die Konzepte im Buch zu illustrieren. Die Namen der Unschuldigen wurden geschützt. Bei der Herstellung dieses Buches kamen keine Reiher zu Schaden.

Wenn ich über die Cloud, Cloud-Services oder CSPs spreche, meine ich vor allem die öffentliche Cloud, wie AWS, Azure und Google Cloud.

Mit dem Begriff Compute bezeichne ich Recheninstanzen, auch bekannt als virtuelle Maschinen (VMs). Wenn ich von Speicherung spreche, meine ich Cloud-Objektspeicherung wie AWS Simple Storage Service (S3).

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv

Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.

Constant width

Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.

Constant width bold

Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.

Constant width italic

Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.

Tipp

Dieses Element steht für einen Tipp oder eine Anregung.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Warnung

Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.

Code-Beispiele verwenden

Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter https://github.com/gizm00/oreilly_dataeng_book zum Download bereit .

Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Genehmigung erforderlich.

Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Cost-Effective Data Pipelines von Sev Leonard (O'Reilly). Copyright 2023 MXLeonard LLC, 978-1-492-09864-5."

Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter kontaktieren

O'Reilly Online Learning

Hinweis

Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter https://oreilly.com.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/cost-effective-data-pipelines aufrufen .

Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter https://oreilly.com.

Du findest uns auf LinkedIn: https://linkedin.com/company/oreilly-media.

Folge uns auf Twitter: https://twitter.com/oreillymedia.

Sieh uns auf YouTube: https://youtube.com/oreillymedia.

Danksagungen

Ein Buch zu schreiben ist ein gigantisches Unterfangen. Ich bin vielen Leuten sehr dankbar, dass sie dabei geholfen haben, Cost-Effective Data Pipelines Wirklichkeit werden zu lassen.

Danke an Jess Haberman, meine erste Akquisitionslektorin, für all die Möglichkeiten, die du mir geboten hast, und für deine Hilfe bei der Ausarbeitung dieses Buches. Danke an Jenny Kim, die mich mit Jess bekannt gemacht hat! Danke an Aaron Black, meinen zweiten Akquisitionslektor, vor allem für das Brainstorming, um den richtigen Titel und Untertitel zu finden. Danke an meine Entwicklungslektorin Virginia Wilson, die meine vielen Fragen beantwortet hat, mir meine Ängste als Erstautorin genommen hat und mir geholfen hat, eine bessere Autorin zu werden.

Ich schätze mich sehr glücklich, dass ich eine solide Bank von technischen Prüfern hatte. Sie haben dieses Buch auf jeden Fall besser gemacht. Vielen Dank an die Rezensenten der einzelnen Kapitel, von denen die meisten seit über einem Jahr mit mir unterwegs sind: Bar Shirtcliff, Nancy Lin, Milind Chaudhari, Rachel Shadoan und Vinoo Ganesh. Vielen Dank an meine Buchrezensenten: Arnie Wernick, Isaac Potoczny-Jones, Joe Reis, Matt Housley und Sam Kimbrel. Danke auch an Navin Kumar für dein Feedback.

Dieses Buch wurde an Abenden und Wochenenden geschrieben, in der relativ geringen Zeit, die ich für mich, meine Familie und meine Freunde habe. Ohne all eure Liebe und Unterstützung hätte ich das nicht geschafft. Danke, Vanessa, für deine Weisheit und Ermutigung. Danke, Grey, dass du gesagt hast, du freust dich darauf, dass das Buch fertig ist, damit wir wieder Zeit miteinander verbringen können. Und vor allem danke ich meinem wunderbaren Partner Gibbs dafür, dass er sich um eine Autorin kümmert, die einen Vollzeit-Startup-Job hat, während er selbst einen Vollzeit-Job hat. Danke für deine Liebe, deine Ermutigung und deine Geduld. Danke, dass du mich ans Essen erinnerst, dafür sorgst, dass unser Haus nicht im Chaos versinkt, und dass du deine Begeisterung für Flora und Fauna mit mir teilst. Eine lobende Erwähnung geht an Party Cat, die in mein Büro gestürmt ist, um mir zu sagen, dass es Zeit ist, mit dem Schreiben aufzuhören und sie zu füttern.

Emotional war es eine große Herausforderung, sich während einer Pandemie zu engagieren und dabei zuzusehen, wie jahrzehntelange Fortschritte bei der Gleichberechtigung scheinbar über Nacht zunichte gemacht wurden. Dieses Buch ist allen gewidmet, die vom Faschismus betroffen sind. Mögen wir sicher, glücklich, gesund und frei von Leid sein.

1 Der von Barr Moses geprägte Begriff " Datenausfallzeit " bezieht sich auf Zeiträume, in denen Daten falsch, unvollständig oder gar nicht vorhanden sind.

Get Kosteneffiziente Datenpipelines now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.