Kapitel 1. Analytik Technik
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Die historische Entwicklung der Analytik umfasst wichtige Meilensteine und Technologien, die den Bereich zu dem gemacht haben, was er heute ist. Es begann mit dem Aufkommen des Data Warehousing in den 1980er Jahren, das den grundlegenden Rahmen für die Organisation und Analyse von Geschäftsdaten schuf. Bill Inmon, ein Informatiker, der in den 1980er und 1990er Jahren immer wieder auf veröffentlichte, gilt als derjenige, der die erste solide theoretische Grundlage für Data Warehousing schuf.
Eine weitere Welle der Entwicklung folgte, als Ralph Kimball, ein weiterer führender Vertreter des Data Warehousing und der Business Intelligence (BI), 1996 sein einflussreiches Werk, The Data Warehouse Toolkit, veröffentlichte. Kimballs Arbeit legte den Grundstein für die dimensionale Modellierung und markierte einen weiteren wichtigen Meilenstein in der Entwicklung der Analytik. Die Beiträge von Inmon und Kimball, die sich über das späte 20. Jahrhundert erstrecken, haben die Landschaft des Data Warehousing und der Analytik entscheidend mitgeprägt.
In den frühen 2000er Jahren entstand mit dem Aufkommen von Tech-Giganten wie Google und Amazon der Bedarf an fortschrittlicheren Lösungen für die Verarbeitung großer Datenmengen, was zur Veröffentlichung des Google File System und Apache Hadoop führte. Dies markierte die Ära des Big Data Engineering, in der Fachleute das Hadoop-Framework zur Verarbeitung großer Datenmengen nutzten.
Der Aufstieg von Public Cloud-Providern wie Amazon Web Services (AWS) hat die Entwicklung und den Einsatz von Software- und Datenanwendungen revolutioniert. Eines der bahnbrechenden Angebote von AWS war Amazon Redshift, das 2012 eingeführt wurde. Es stellte eine interessante Mischung aus Online Analytical Processing (OLAP) und traditionellen Datenbanktechnologien dar. In den Anfängen von Redshift mussten Datenbankadministratoren Aufgaben wie Vakuumierung und Skalierung erledigen, um eine optimale Leistung zu gewährleisten.
Im Laufe der Zeit haben sich die cloudbasierten Technologien weiterentwickelt, und auch Redshift selbst wurde erheblich verbessert. Unter Beibehaltung seiner Kernkompetenzen haben neuere Versionen von Redshift zusammen mit Cloud-nativen Plattformen wie Google BigQuery und Snowflake viele dieser Verwaltungsaufgaben rationalisiert und bieten Unternehmen aller Größen fortschrittliche Datenverarbeitungsfunktionen. Diese Entwicklung unterstreicht die kontinuierliche Innovation im Ökosystem der Cloud-Datenverarbeitung.
Der moderne Data Stack, bestehend aus Tools wie Apache Airflow, Data Build Tool (dbt) und Looker, hat die Daten-Workflows weiter verändert. Mit diesen Fortschritten wurde der Begriff "Big-Data-Ingenieur" obsolet und machte Platz für eine breitere und umfassendere Rolle des Dateningenieurs. Dieser Wandel wurde in den einflussreichen Artikeln von Maxime Beauchemin - dem Erfinder von Apache Superset und Airflow und einem der ersten Dateningenieure bei Facebook und Airbnb - erkannt, insbesondere in seinem Artikel "The Rise of the Data Engineer", der die wachsende Bedeutung des Data Engineering in der Branche hervorhob. All diese rasanten Entwicklungen im Datenbereich haben zu erheblichen Veränderungen in der Rolle der Datenexperten geführt. Mit dem Aufkommen von Daten-Tools werden einfache Aufgaben zu strategischen Aufgaben.
Dateningenieure haben heute eine vielseitige Aufgabe, die Datenmodellierung, Qualitätssicherung, Sicherheit, Datenmanagement, Architekturdesign und Orchestrierung umfasst. Sie wenden zunehmend Praktiken und Konzepte der Softwareentwicklung an, wie z. B. funktionale Datentechnik und deklarative Programmierung, um ihre Arbeitsabläufe zu verbessern. Obwohl Python und die strukturierte Abfragesprache (SQL) als unverzichtbare Sprachen für Data Engineers gelten, ist es wichtig zu wissen, dass die Wahl der Programmiersprachen in diesem Bereich sehr unterschiedlich ausfallen kann. Je nach den spezifischen Anforderungen und Vorlieben ihrer Projekte können Ingenieure auch andere Sprachen wie Java (häufig für die Verwaltung von Apache Spark und Beam verwendet), Scala (ebenfalls im Spark- und Beam-Ökosystem weit verbreitet), Go und andere verwenden. Die Kombination von Sprachen wie Java und SQL ist auch unter Dateningenieuren in großen Unternehmen weit verbreitet.
Unternehmen setzen zunehmend auf dezentralisierte Datenteams, Self-Service-Plattformen und alternative Möglichkeiten der Datenspeicherung. Da Dateningenieure gezwungen sind, sich an all diese Marktveränderungen anzupassen, sehen wir oft, dass einige eine eher technische Rolle übernehmen und sich auf die Entwicklung von Plattformen konzentrieren. Andere Dateningenieure arbeiten näher am Geschäft und entwerfen, implementieren und warten Systeme, die Rohdaten in hochwertige Informationen umwandeln, während sie sich an diese beschleunigte Branche anpassen, die jeden Tag neue Tools auf den Markt bringt und die fantastische Welt des Analytics Engineering hervorbringt.
In diesem Kapitel geben wir eine Einführung in den Bereich des Analytics Engineering und seine Rolle im datengesteuerten Entscheidungsprozess. Wir erörtern die Bedeutung des Analytik-Engineerings in der heutigen datengesteuerten Welt und die wichtigsten Aufgaben eines Analytik-Engineers. Außerdem werden wir erkunden, wie der Lebenszyklus des Analytics Engineering genutzt wird, um den Analyseprozess zu steuern und die Qualität und Genauigkeit der gewonnenen Daten und Erkenntnisse zu gewährleisten. Wir werden uns auch mit den aktuellen Trends und Technologien befassen, die das Feld der Analysetechnik prägen, von der Geschichte bis zur Gegenwart. Dabei werden wir auf neu entstehende Konzepte wie Data Mesh eingehen und die grundlegenden Entscheidungen zwischen Extrahier-, Lade- und Transformationsstrategien (ELT) und Extrahier-, Transformations- und Ladestrategien (ETL) sowie die vielen Datenmodellierungstechniken diskutieren, die weltweit eingesetzt werden.
Datenbanken und ihr Einfluss auf Analytics Engineering
Schon seit langem rücken Daten immer mehr in den Mittelpunkt des Interesses von Unternehmen, die der Konkurrenz einen Schritt voraus sein wollen, ihre internen Prozesse verbessern oder einfach nur das Verhalten ihrer Kunden verstehen wollen. Mit neuen Tools, neuen Arbeitsweisen und neuen Wissensgebieten wie Data Science und BI wird es heutzutage immer schwieriger, die Datenlandschaft vollständig zu überblicken und zu verstehen.
Der natürliche Fortschritt der Technologie hat zu einem Überangebot an Tools für die Datenanalyse, -visualisierung und -speicherung geführt, von denen jedes einzelne einzigartige Funktionen und Möglichkeiten bietet. Der beschleunigte Einsatz dieser Tools hat jedoch zu einer fragmentierten Landschaft geführt, die von Einzelpersonen und Organisationen verlangt, dass sie mit den neuesten technologischen Entwicklungen Schritt halten und gleichzeitig eine umsichtige Entscheidung über deren Nutzung treffen müssen. Manchmal schafft diese Fülle Verwirrung und erfordert einen ständigen Lern- und Anpassungsprozess.
Die Entwicklung der Arbeitspraktiken geht mit einer Diversifizierung der Werkzeuge einher. Dynamische und agile Methoden haben die traditionellen Ansätze zur Datenverwaltung und -analyse ersetzt. Iterative Verfahren und funktionsübergreifende Zusammenarbeit bringen Flexibilität und Schnelligkeit in Datenprojekte, stellen aber auch eine Herausforderung dar, wenn es darum geht, Arbeitsabläufe zwischen verschiedenen Teams und Rollen zu harmonisieren. Effektive Kommunikation und Abstimmung sind von entscheidender Bedeutung, da die verschiedenen Facetten des Datenprozesses zusammenwachsen und ein umfassendes Verständnis dieser neuen Arbeitsmethoden erforderlich ist.
Spezialisierte Bereiche wie Data Science und BI haben die Komplexität des Datenbereichs ebenfalls erhöht. Data Scientists wenden fortschrittliche statistische und maschinelle Lerntechniken an, um komplexe Muster zu erkennen, während BI-Experten wertvolle Informationen aus Rohdaten extrahieren, um praktische Erkenntnisse zu gewinnen. In diesen spezialisierten Bereichen werden raffinierte Techniken eingesetzt, die eine regelmäßige Weiterentwicklung und Weiterbildung erfordern. Die erfolgreiche Anwendung dieser Verfahren erfordert ein engagiertes Engagement in der Ausbildung und einen flexiblen Ansatz beim Erwerb von Fähigkeiten.
Die Ausbreitung von Daten im digitalen Bereich bringt unvorhersehbare Mengen, Arten und Geschwindigkeiten mit sich. Die Datenflut und die komplexen Eigenschaften heutiger Datenquellen, wie z. B. Geräte aus dem Internet der Dinge (IoT) und unorganisierte Texte, machen das Datenmanagement noch anspruchsvoller. Die Details der Aufnahme, Umwandlung und Bewertung der Datenpräzision werden immer deutlicher, was den Bedarf an starken Methoden unterstreicht, die zuverlässige und präzise Erkenntnisse garantieren.
Die Vielschichtigkeit der Datenwelt macht sie noch komplexer. Durch die Zusammenführung von Fähigkeiten aus verschiedenen Bereichen wie Informatik, Statistik und fachspezifischen Kenntnissen ist eine kooperative und kommunikative Strategie erforderlich. Diese multidisziplinäre Interaktion unterstreicht die Bedeutung von effizienter Teamarbeit und Wissensaustausch.
Aber das war nicht immer so. Jahrzehntelang waren Tabellenkalkulationen die Standardtechnologie für das Speichern, Verwalten und Analysieren von Daten auf allen Ebenen, sowohl für das betriebliche Management als auch für die Analyse, um sie zu verstehen. Doch mit der zunehmenden Komplexität der Unternehmen stieg auch der Bedarf an datenbezogenen Entscheidungsprozessen. Und die erste davon kam in Form einer Revolution namens Datenbanken. Datenbanken sind eine organisierte Sammlung von strukturierten Informationen oder Daten, die normalerweise elektronisch in einem Computersystem gespeichert werden. Diese Daten können in Form von Text, Zahlen, Bildern oder anderen Arten von digitalen Informationen vorliegen. Die Daten werden in einer Weise gespeichert, die den Zugriff und das Abrufen von Daten anhand eines vordefinierten Schemas erleichtert.
Datenbanken sind ein wesentlicher Bestandteil der Analytik, da sie eine Möglichkeit bieten, große Datenmengen effizient zu speichern, zu organisieren und abzurufen. So können Analysten leicht auf die Daten zugreifen, die sie für komplexe Analysen benötigen, um Erkenntnisse zu gewinnen, die sonst nur schwer oder gar nicht zu gewinnen wären. Außerdem können Datenbanken so konfiguriert werden, dass sie die Datenintegrität gewährleisten. Das garantiert, dass die analysierten Daten korrekt und konsistent sind, und macht die Analyse dadurch zuverlässiger und vertrauenswürdiger.
Eine der gängigsten Möglichkeiten, Datenbanken für Analysen zu nutzen, ist die Data-Warehousing-Technik, d.h. der Aufbau und die Nutzung eines Data Warehouse. Ein Data Warehouse ist ein großer, zentraler Datenspeicher, der die Nutzung von Daten vereinfachen soll. Die Daten in einem Data Warehouse werden in der Regel aus einer Vielzahl von Quellen extrahiert, z. B. aus Transaktionssystemen, externen Datenfeeds und anderen Datenbanken. Die Daten werden dann bereinigt, umgewandelt und in ein einziges, konsistentes Datenmodell integriert, das in der Regel einer dimensionalen Modellierungstechnik wie dem Sternschema oder Data Vault folgt.
Eine weitere wichtige Anwendung von Datenbanken in der Analytik ist der Prozess des Data Mining. Beim Data Mining werden statistische und maschinelle Lernverfahren eingesetzt, um Muster und Beziehungen in großen Datenbeständen aufzudecken. Auf diese Weise lassen sich Trends erkennen, zukünftiges Verhalten vorhersagen und andere Arten von Vorhersagen treffen.
Datenbanktechnologien und Datenwissenschaftler/innen haben somit eine entscheidende Rolle bei der Entstehung von Data Science gespielt, da sie eine Möglichkeit bieten, große Datenmengen effizient zu speichern, zu organisieren und abzurufen, so dass Datenwissenschaftler/innen mit großen Datensätzen arbeiten und sich auf das Wesentliche konzentrieren können: Wissen aus Daten zu gewinnen.
Die Verwendung von SQL und anderen Programmiersprachen wie Python oder Scala, die eine Interaktion mit Datenbanken ermöglichen, hat es Datenwissenschaftlern ermöglicht, komplexe Datenabfragen und -manipulationen durchzuführen. Auch der Einsatz von Datenvisualisierungstools wie Tableau und Microsoft Power BI, die sich problemlos in Datenbanken integrieren lassen, hat es Datenwissenschaftlern erleichtert, ihre Ergebnisse auf klare und intuitive Weise zu präsentieren.
Mit dem Aufkommen von Big Data und dem wachsenden Bedarf, riesige Datenmengen zu speichern und zu verarbeiten, sind verschiedene Datenbanktechnologien entstanden, um den unterschiedlichen Anforderungen gerecht zu werden. Datenanalysten nutzen Datenbanken für eine Vielzahl von Anwendungen, wie z. B. Data Warehousing, Data Mining und die Integration mit BI-Tools wie Tableau.
Es ist jedoch wichtig, sich mit diesen Anwendungsfällen näher zu befassen, um die Notwendigkeit von Analytics Engineering zu verstehen. Wenn BI-Tools direkt mit operativen Datenbanken (Online Transaction Processing [OLTP] Replikate) verbunden werden, kann die Leistung und Skalierbarkeit eingeschränkt sein. Dieser Ansatz mag für kleinere Datensätze und einfache Abfragen gut funktionieren, aber wenn das Datenvolumen wächst und die Komplexität der Analysen zunimmt, kann dies zu Leistungsengpässen und suboptimalen Antwortzeiten führen.
An dieser Stelle kommt Analytics Engineering ins Spiel. Analytics Engineers sind Experten für die Optimierung von Daten-Workflows, die Umwandlung und Aggregation von Daten, um sicherzustellen, dass sie im richtigen Format für analytische Aufgaben vorliegen. Sie entwerfen und pflegen Datenpipelines , die Daten aus verschiedenen Quellen in optimierte Data Warehouses oder Data Lakes übertragen. Auf diese Weise helfen sie Unternehmen, die Grenzen direkter OLTP-Verbindungen zu überwinden und ermöglichen schnellere und effizientere Datenanalysen mit Tools wie Tableau. Im Wesentlichen überbrückt Analytics Engineering die Lücke zwischen Rohdaten und verwertbaren Erkenntnissen und sorgt dafür, dass Datenanalysten und Wissenschaftler effektiv mit großen, komplexen Datensätzen arbeiten können.
Cloud Computing und seine Auswirkungen auf die Analysetechnik
In den letzten Jahrzehnten stand die Welt vor einer Reihe komplizierter Herausforderungen mit erheblichen technischen Auswirkungen. Wirtschaftliche Abschwünge haben Innovationen in Finanztechnologien und Risikomanagementsystemen vorangetrieben. Geopolitische Spannungen haben Fortschritte in der Cybersicherheit erforderlich gemacht, um kritische Infrastrukturen und sensible Daten zu schützen. Globale Gesundheitskrisen haben gezeigt, wie wichtig fortschrittliche Datenanalysen und Prognosemodelle für die Überwachung und das Management von Krankheiten sind. Außerdem hat die dringende Notwendigkeit, den Klimawandel zu bekämpfen, die Entwicklung von Spitzentechnologien für erneuerbare Energien und nachhaltige technische Lösungen zur Erreichung der Klimaziele vorangetrieben.
Inmitten dieser Herausforderungen ist das Streben nach Gewinn und Wachstum nach wie vor ein wichtiger Antrieb für Unternehmen weltweit. Der Wert menschlicher Arbeitszeit hat jedoch eine neue Dimension angenommen, die zu erheblichen Veränderungen in der Art und Weise führt, wie Unternehmen arbeiten und wie Cloud Computing ihnen entgegenkommt. Dieser Wandel spiegelt sich in der zunehmenden Akzeptanz von verwalteten und serverlosen Angeboten wider, die die Abhängigkeit von Vollzeit-Supportmitarbeitern wie Datenbankadministratoren verringern.
In dem Maße, in dem sich die Unternehmen an diese sich verändernde Landschaft anpassen, sind Innovation, Differenzierung und Nachhaltigkeit von Geschäftsmodellen und -strategien zu wesentlichen Überlegungen für Unternehmen geworden, die in einer sich schnell verändernden Welt erfolgreich sein wollen. Die Informationstechnologie- und Systembranche hat in diesem Zusammenhang eine gute Gelegenheit gefunden, ihre Fähigkeiten auszubauen, um Unternehmen dabei zu helfen, diese Welt der Unsicherheit und des Drucks zu überwinden. Die Rationalisierung von Betriebsmodellen ist dringend notwendig geworden und erfordert eine Neubewertung von Rechenzentren und Preisstrukturen. Außerdem müssen sich die Produkt- und Dienstleistungsangebote vor allem auf Benutzerfreundlichkeit, geringere Latenzzeiten, verbesserte Sicherheit, eine breitere Palette von Echtzeit-Tools, mehr Integration, mehr Intelligenz, weniger Code und eine schnellere Markteinführung konzentrieren.
Unternehmen haben erkannt, wie wichtig es ist, in innovative Tools zu investieren, die digitale Transformation voranzutreiben und einen datenzentrierten Ansatz für die Entscheidungsfindung zu wählen, um mehr Flexibilität und Wettbewerbsvorteile zu erzielen. Um diese Ziele zu erreichen, konzentrieren sich viele auf die Nutzung von gut kuratierten Daten aus internen und externen Quellen. Diese sorgfältig strukturierten Daten können wertvolle Einblicke in die Unternehmensleistung liefern.
In der Branche wird die Praxis der Erstellung, Visualisierung und Analyse von verknüpften Geschäftsdaten in einem zugänglichen Format gemeinhin als Datenanalyse bezeichnet. Historisch gesehen ist sie auch als Business Intelligence bekannt, und die beiden Begriffe sind eng miteinander verbunden. Während BI ein Teilbereich der Analytik ist und sich auf die geschäftsorientierte Entscheidungsfindung konzentriert, umfasst die Datenanalyse ein breiteres Spektrum, das auch die Produktanalyse, die betriebliche Analyse und verschiedene andere Spezialgebiete umfasst. Sowohl BI als auch Datenanalyse spielen eine zentrale Rolle, wenn es darum geht, Unternehmen durch datengestützte Erkenntnisse Wettbewerbsvorteile zu verschaffen.
Obwohl die Datenanalyse zahlreiche Vorteile für die Verbesserung und Neugestaltung von Geschäftsstrategien und die Leistungsüberwachung bietet, erfordert sie erhebliche finanzielle Investitionen in Server, Softwarelizenzen und Fachpersonal wie Dateningenieure, Datenwissenschaftler und Datenvisualisierungsspezialisten. In Zeiten der Wirtschaftskrise können die hohen Anschaffungs- und Betriebskosten für IT-Hardware, Software und Spezialisten als unpraktisch und unattraktiv empfunden werden.
Infolgedessen verlieren On-Premises-Lösungen, bei denen die Infrastruktur für die Datenanalyse im eigenen Unternehmen eingerichtet und verwaltet wird, oft ihren Reiz. Das gilt besonders für Neulinge, die mit dem Konzept der Datenanalyse nicht vertraut sind. Vor-Ort-Lösungen erfordern in der Regel erhebliche Investitionen in Hardware, Software und laufende Wartung. Außerdem sind sie im Vergleich zu cloudbasierten Datenanalyselösungen weniger flexibel und skalierbar. Diese Verschiebung der Präferenzen macht den Weg frei für neue cloudbasierte Datenanalyselösungen, die ähnliche Geschäftsanforderungen erfüllen wie die traditionelle Datenanalyse. Anstatt sich jedoch auf Server und Software vor Ort zu verlassen, nutzen Cloud-basierte Lösungen Cloud-Computing-Dienste, um die Bereitstellung zu beschleunigen und die Infrastrukturkosten zu minimieren.
Der zunehmende Einsatz von Cloud Computing in verschiedenen Branchen hat Softwareanbieter wie Microsoft, Google und Amazon dazu veranlasst, fortschrittliche Tools für Datenanalyse und Data Warehousing zu entwickeln. Diese Tools sind für den Betrieb im Cloud Computing-Paradigma konzipiert und nutzen gemeinsam genutzte Netzwerkressourcen, um eine bessere Zugänglichkeit und eine rationelle Bereitstellung zu ermöglichen. Ein anschauliches Beispiel für diesen Trend ist die umfassende Datenanalyseplattform von Microsoft , Microsoft Fabric.
Parallel dazu zeichnet sich dbt von dbt Labs, auf das wir später in diesem Buch näher eingehen, als vielseitiges Hybrid-Produkt aus. dbt ist wie Hadoop eine Open-Source-Lösung, die den Nutzern die Flexibilität bietet, sie je nach Bedarf in der Cloud oder vor Ort einzusetzen. In seiner Cloud-Version lässt sich dbt nahtlos in führende Cloud-Plattformen integrieren, darunter Microsoft Azure, Google Cloud Platform (GCP) und AWS. Der Open-Source-Charakter gibt Unternehmen die Möglichkeit, ihre Bereitstellung an ihre individuellen Anforderungen und Infrastrukturpräferenzen anzupassen.
Cloud-basierte Datenanalyselösungen und -plattformen sind zwar ein globaler Trend und ein zentrales Konzept der modernen Datenplattform, aber es ist wichtig zu wissen, dass Cloud-Computing-Lösungen sowohl Vorteile als auch Risiken mit sich bringen, die nicht übersehen werden sollten. Zu diesen Risiken gehören potenzielle Sicherheitsprobleme, der physische Standort der Server und die Kosten, die mit der Abkehr von einem bestimmten Anbieter verbunden sind.
Nichtsdestotrotz verändern Cloud-Technologien derzeit die Art und Weise, wie Unternehmen Informationssysteme und Technologielösungen einsetzen und konstruieren, und die Datenanalyse ist da keine Ausnahme. Deshalb ist es wichtig zu erkennen, dass der Wechsel in die Cloud bald nicht mehr nur eine Option, sondern eine Notwendigkeit sein wird. Es ist wichtig, die Vorteile von Analyselösungen in Form von Dienstleistungen zu verstehen. Andernfalls könnte die Bereitstellung zeitnaher Informationen für Entscheidungsträger mit lokalen Lösungen, denen es an Flexibilität und Skalierbarkeit mangelt, zu einer immer größeren Herausforderung werden, wenn dieser Übergang nicht in Angriff genommen wird.
Obwohl Cloud-Technologien verschiedene Vorteile wie Größenvorteile und Flexibilität bieten, bringen sie auch Probleme mit der Informationssicherheit mit sich. Die Konzentration von Daten in Cloud-Infrastrukturen macht sie zu attraktiven Zielen für unbefugte Angriffe. Um in der Cloud erfolgreich zu sein, müssen Unternehmen die mit dem Cloud Computing verbundenen Risiken verstehen und abmildern. Zu den wichtigsten Risiken gehören Datenschutz, Kontrollverlust, unvollständige oder unsichere Löschung von Daten, unbefugter interner Zugriff, Datenverfügbarkeit und komplexe Kostenkalkulation.
Der Datenschutz ist ein wichtiges Thema für , da es schwierig ist, zu überprüfen, ob die Anbieter ihre Daten im Einklang mit Gesetzen und Standards behandeln, auch wenn öffentliche Prüfberichte der Anbieter dazu beitragen können, Vertrauen aufzubauen. In nicht integrierten Szenarien vervielfachen sich die Datensicherheitsrisiken, da die Daten zwischen verschiedenen Systemen und Rechenzentren fließen und das Risiko des Abfangens und der Synchronisierung steigt. Ein weiteres wichtiges Risiko ist die Anbieterabhängigkeit, die entsteht, wenn die Verantwortung für das Datenmanagement allein bei einem Dienstleister liegt, so dass die Möglichkeit, zu anderen Lösungen zu wechseln, eingeschränkt wird. Diese Art der Abhängigkeit schränkt die Kontrolle über die Entscheidungsfindung und die Datenhoheit einer Organisation ein. Dies sind zwar nur einige bekannte Risiken, aber wir können bereits verstehen, dass Unternehmen diese Risiken in den Griff bekommen müssen, um die Vorteile von cloudbasierten Datenanalyselösungen effektiv zu nutzen. Dies erfordert sorgfältige Überlegungen, die Einhaltung von Sicherheitsstandards und bewährten Methoden sowie eine kontinuierliche Kostenkontrolle, um die Rentabilität der Investition zu messen.
Wenn alle Risiken in einer angemessenen Datenstrategie richtig angegangen und gemildert werden, die darlegt, wie ein Unternehmen seine Daten verwaltet, einschließlich der Cloud-Strategie, der Technologie, der Prozesse, der Mitarbeiter und der Regeln, kann ein Unternehmen im Vergleich zu einem Unternehmen ohne Datenstrategie einen erheblichen Wettbewerbsvorteil erzielen. Durch die Konzentration auf Cloud Computing und die Nutzung einer Cloud-Datenplattform können Unternehmen Rohdaten in aussagekräftige Erkenntnisse umwandeln und den Aufbau einer soliden Datengrundlage beschleunigen. Dies ermöglicht eine effiziente Beschaffung, Strukturierung und Analyse relevanter Daten und unterstützt sogar die Einführung von KI-Technologien, während gleichzeitig die Wertschöpfung in kürzerer Zeit und zu geringeren Kosten als bei herkömmlichen Methoden erfolgt.
Interessanterweise ist die Beziehung zwischen einer Cloud-Datenplattform, Analytik und KI symbiotisch. Die Implementierung einer Cloud-Datenplattform beschleunigt die Einführung einer analytikgesteuerten Architektur und ermöglicht die vollständige Umsetzung von KI-Initiativen. Sie versetzt Unternehmen in die Lage, alle relevanten Daten zu nutzen, unternehmensweite Erkenntnisse zu gewinnen und neue Geschäftsmöglichkeiten zu erschließen. Da nicht mehr mehrere Tools verwaltet werden müssen, können sich Unternehmen auf die Datenmodernisierung konzentrieren, die Entdeckung von Erkenntnissen beschleunigen und von bestehenden Technologiepartnerschaften profitieren und so ihre KI-Reise vorantreiben.
Deshalb kann man mit Fug und Recht behaupten, dass Cloud Computing ein zentraler Bestandteil sowohl moderner Datenplattformen als auch der cloudbasierten Analyse- und KI-Plattformen ist, die jeden Tag kontinuierlich wachsen und so zur Disruption dieser Branche beitragen.
Der Lebenszyklus der Datenanalyse
Der Lebenszyklus der Datenanalyse ist eine Reihe von Schritten zur Umwandlung von Rohdaten in wertvolle und leicht konsumierbare Datenprodukte. Diese können von gut verwalteten Datensätzen bis hin zu Dashboards, Berichten, APIs oder sogar Webanwendungen reichen. Mit anderen Worten: Er beschreibt, wie Daten erstellt, gesammelt, verarbeitet, genutzt und analysiert werden, um ein bestimmtes Produkt oder Geschäftsziel zu erreichen.
Die zunehmende Komplexität der Unternehmensdynamik wirkt sich direkt darauf aus, wie mit Daten umgegangen wird. Zahlreiche Personen müssen dieselben Daten nutzen, aber mit unterschiedlichen Zielen. Während ein leitender Angestellter vielleicht nur ein paar wichtige Leistungsindikatoren benötigt, um die Unternehmensleistung zu verfolgen, braucht ein mittlerer Manager vielleicht einen detaillierteren Bericht, um tägliche Entscheidungen zu treffen.
Dies verdeutlicht die Notwendigkeit eines geregelten und standardisierten Ansatzes für die Erstellung und Pflege von Datenprodukten, die auf derselben Datengrundlage basieren. Angesichts der vielen Entscheidungen, die ein Unternehmen in Bezug auf seine Data Governance, Technologien und Managementprozesse treffen muss, ist ein strukturierter Ansatz von grundlegender Bedeutung, um die Datenstrategie eines Unternehmens zu dokumentieren und kontinuierlich zu aktualisieren.
Der Data Analytics Lifecycle ist daher ein wichtiger Rahmen für das Verständnis und die Abbildung der Phasen und Prozesse bei der Erstellung und Pflege einer Analyselösung(Abbildung 1-1). Er ist ein wesentliches Konzept in der Datenwissenschaft und -analyse und bietet einen strukturierten Ansatz für die Verwaltung der verschiedenen Aufgaben und Aktivitäten, die für die Erstellung einer effektiven Analyselösung erforderlich sind.
Der Lebenszyklus der Datenanalyse umfasst in der Regel die folgenden Phasen:
- Problemdefinition
-
In der ersten Phase des Analysezyklus geht es darum, das Problem zu verstehen, das gelöst werden muss. Dazu gehört es, die Unternehmensziele, die verfügbaren Daten und die zur Lösung des Problems benötigten Ressourcen zu ermitteln.
- Datenmodellierung
-
Nachdem die geschäftlichen Anforderungen identifiziert und eine Bewertung der Datenquellen vorgenommen wurde, kannst du mit der Modellierung deiner Daten nach der Modellierungstechnik beginnen, die deinen Anforderungen am besten entspricht. Du kannst eine Rautenstrategie, ein Sternschema, einen Data Vault oder sogar eine vollständig denormalisierte Technik wählen. All diese Konzepte werden in Kapitel 2 besprochen.
- Dateneingabe und -umwandlung
-
Die nächste Phase besteht darin, die Daten aus den Quellsystemen von zu übernehmen und so aufzubereiten, dass sie zu den erstellten Modellen passen. Je nach der allgemeinen Informationsarchitektur kannst du dich für eine Schema-on-Write-Strategie entscheiden, bei der du mehr Aufwand in die Umwandlung der Rohdaten direkt in deine Modelle steckst, oder für eine Schema-on-Read-Strategie, bei der du die Daten mit minimalen Transformationen aufnimmst und speicherst und umfangreiche Transformationen auf die nachgelagerten Schichten deiner Datenplattform überträgst.
- Speicherung und Strukturierung von Daten
-
Sobald die Datenpipelines entworfen und möglicherweise implementiert sind, musst du dich für die zu verwendenden Dateiformate entscheiden - einfaches Apache Parquet oder fortschrittlichere Formate wie Delta Lake oder Apache Iceberg - sowie für die Partitionierungsstrategien und die zu verwendenden Speicherkomponenten - ein Cloud-basierter Objektspeicher wie Amazon Simple Storage Service (S3) oder eine eher Data Warehouse-ähnliche Plattform wie Redshift, BigQuery oder Snowflake.
- Datenvisualisierung und -analyse
-
Sobald die Daten verfügbar sind, besteht der nächste Schritt darin, sie zu erkunden, zu visualisieren oder Dashboards zu erstellen, die die Entscheidungsfindung direkt unterstützen oder die Überwachung von Geschäftsprozessen ermöglichen. Diese Phase ist sehr geschäftsorientiert und sollte in enger Abstimmung mit den Interessengruppen des Unternehmens erstellt werden.
- Überwachung, Prüfung und Dokumentation der Datenqualität
-
Obwohl sie als letzte Phase des Analysezyklus dargestellt wird , sollte die Datenqualität ein durchgängiges Anliegen sein und über den gesamten Fluss hinweg sichergestellt werden. Dazu gehört die Implementierung aller Qualitätskontrollen, um sicherzustellen, dass die Stakeholder den offengelegten Datenmodellen vertrauen können, die Dokumentation aller Transformationen und semantischen Bedeutungen und die Gewährleistung angemessener Tests entlang der Pipelines, während die Daten weiter fließen.
Hinweis
Mit dbt lassen sich mehrere dieser Komponenten einfacher und effizienter einsetzen, weil wir sie parallel und über den gesamten Lebenszyklus hinweg entwickeln können. Dokumentation, Tests und Qualität werden zu gemeinsamen, parallel ausgeführten Aufgaben. Dies wird in Kapitel 4 ausführlich erläutert.
Der Analyse-Lebenszyklus ist ein Schlüsselkonzept, das es Unternehmen ermöglicht, Datenentwicklungs-, Wissenschafts- und Analyseprozesse strukturiert und einheitlich anzugehen. Durch die Einhaltung eines strukturierten Prozesses können Unternehmen sicherstellen, dass sie das richtige Problem lösen, die richtigen Daten verwenden und Datenprodukte erstellen, die genau und zuverlässig sind, was letztendlich zu einer besseren Entscheidungsfindung und besseren Geschäftsergebnissen führt.
Die neue Rolle des Analytics Engineer
Wie in den vorangegangenen Abschnitten erwähnt, können Datenwissenschaftler/innen und Analytiker/innen jetzt ganz einfach auf die Daten zugreifen, die sie für komplexe Analysen benötigen, um Erkenntnisse zu gewinnen, die sonst nur schwer oder gar nicht zu erlangen wären. Da die Menge der gespeicherten und analysierten Daten jedoch immer weiter wächst, wird es für Unternehmen immer wichtiger, Datenspezialisten zu haben, die ihnen bei der Verwaltung dieser Daten helfen und die erforderliche Infrastruktur bereitstellen.
Der kürzlich geschaffene Zweig der spezialisierten Dateningenieure, die sogenannten Analytics Engineers, spielt eine wichtige Rolle bei der Entwicklung und Pflege von Datenbanken und Datenpipelines, damit sich Data Scientists und Analysten auf fortgeschrittenere Analyseaufgaben konzentrieren können. Analytik-Ingenieure sind für den Entwurf, den Aufbau und die Pflege der Datenarchitektur verantwortlich, die es Unternehmen ermöglicht, Daten in wertvolle Erkenntnisse umzuwandeln und datengesteuerte Entscheidungen zu treffen.
Außerdem bedeutet die Umstellung von traditionellen ETL-Prozessen mit erzwungenen Schemata beim Schreiben auf einen ELT-Ansatz mit Schema beim Lesen, dass die Daten nun in den Daten-Repositories landen, bevor sie umgewandelt wurden. Das ist eine Chance für supertechnische Analysten, die sowohl das Geschäft sehr gut kennen als auch über die technischen Fähigkeiten verfügen, die Rohdaten in saubere, gut definierte Datensätze zu modellieren - Analytikingenieure. Wenn du diese Art von Fähigkeiten in der Welt der Data Warehouses und des ETL-Paradigmas suchen würdest, bräuchtest du Spezialisten, die sowohl Softwareentwicklung als auch Datenanalyse beherrschen - und die wären viel schwerer zu finden.
Der Analytik-Ingenieur fungiert als Brücke zwischen Datenplattform-Ingenieuren, die sich auf den Aufbau der technischen Infrastruktur für Datenplattformen konzentrieren, und Datenanalysten, die sich auf die Umwandlung von Daten in aufschlussreiche Datenprodukte konzentrieren. Ihre Aufgabe ist es, gut getestete, aktuelle und dokumentierte Datensätze zu erstellen, die der Rest des Unternehmens nutzen kann, um seine eigenen Fragen zu beantworten. Sie sind technisch versiert genug, um bewährte Methoden der Softwareentwicklung wie Versionskontrolle, kontinuierliche Integration und kontinuierliches Deployment (CI/CD) anzuwenden, müssen aber auch in der Lage sein, effektiv mit den Beteiligten zu kommunizieren.
Wir können eine Analogie zum Bauwesen ziehen: Datenplattform-Ingenieure sind das Fundament eines Analyseprojekts. Sie sind dafür verantwortlich, dass die Infrastruktur robust ist, einschließlich der Sanitäranlagen, der elektrischen Systeme und des strukturellen Fundaments. Sie legen den Grundstein für alles, was danach kommt.
Analytikingenieure können mit Architekten verglichen werden. Sie nutzen die solide Grundlage, die von den Dateningenieuren geschaffen wurde, und entwerfen Strukturen, die mit dem Geschäftsmodell übereinstimmen, von außergewöhnlichen Dashboards bis hin zu wertvollen Datenmodellen. Sie schließen die Lücke zwischen der technischen Infrastruktur und den Geschäftszielen.
Datenanalysten dienen in dieser Analogie als Innenarchitekten. Sie treten in die errichteten Gebäude ein und sorgen nicht nur dafür, dass die Inhalte auf die Nutzer abgestimmt sind, sondern auch dafür, dass sie benutzerfreundlich und auf die spezifischen Bedürfnisse der Datenkonsumenten zugeschnitten sind. Gemeinsam arbeiten diese Rollen zusammen, um eine ganzheitliche und funktionaleAnalyseumgebung zu schaffen.
Betrachtet man den Lebenszyklus der Datenanalyse, so bauen Datenplattform-Ingenieure Plattformen auf und nehmen Rohdaten in unternehmensweite Datenspeicher auf. Auf der anderen Seite nehmen die Analytiker die Rohdaten und wandeln sie um, damit sie den analytischen Datenmodellen entsprechen, die das Unternehmen für die Entscheidungsfindung benötigt.
Verantwortlichkeiten eines Analytik-Ingenieurs
Die Rolle eines Analytics Engineers wird immer wichtiger, da sowohl das Volumen und die Komplexität der Daten als auch die verschiedenen Anwendungen immer weiter zunehmen. Die Aufgaben reichen vom Entwurf und der Implementierung von Systemen zur Speicherung und Abfrage von Daten über die Erstellung und Pflege von Datenpipelines bis hin zur Entwicklung und zum Einsatz von Machine-Learning-Modellen. In dieser dynamischen Landschaft spielen Analytiker/innen eine wichtige Rolle bei der Nutzung der zunehmenden Datenressourcen und der Maximierung ihres Wertes für eine Vielzahl von Anwendungen.
Auf der Grundlage der neuesten Rollentrends besteht eine der Hauptaufgaben darin, effiziente Systeme zur Speicherung und Abfrage von Daten zu entwerfen und zu implementieren. Dazu gehört die Arbeit mit Datenbanken und Data-Warehousing-Technologien, um Datenmodelle und -strukturen zu entwerfen, die große und komplexe Datensätze verarbeiten können. Eine weitere unmittelbare Aufgabe ist die Erstellung und Pflege von Datenpipelines, die Daten aus verschiedenen Quellen extrahieren, umwandeln und zur Analyse in ein zentrales Repository laden.
Für die meisten Analytik-Ingenieure sind die Entwicklung und der Einsatz von Machine-Learning-Modellen zwar etwas weniger sichtbar, aber sie finden trotzdem statt. Dazu gehört die Zusammenarbeit mit Datenwissenschaftlern, um ihre Anforderungen zu verstehen, die Auswahl und Implementierung der geeigneten Algorithmen und die Sicherstellung, dass die Modelle richtig trainiert und mit den richtigen Trainings- und Testdaten eingesetzt werden. Wenn dies nicht der Fall ist, arbeiten Analytikingenieure am Aufbau der richtigen Datenpipelines, um die Datenwissenschaftler kontinuierlich mit den richtigen Trainings- und Testdaten zu versorgen.
Darüber hinaus sind Analytik-Ingenieure dafür verantwortlich, die Leistung von Machine-Learning-Modellen zu überwachen und aufrechtzuerhalten, indem sie sowohl bei der Strukturierung der Offline-Auswertung helfen als auch modellspezifische Metriken mit Geschäftsmetriken für die Online-Überwachung kombinieren.
Ein Analytik-Ingenieur beherrscht in der Regel Programmiersprachen und Tools wie Python, R, SQL und Spark, um Datenpipelines, Datenmodelle und maschinelle Lernmodelle zu implementieren. Sie sollten auch mit Cloud-Computing-Plattformen wie AWS, GCP oder Azure vertraut sein, um ihre Lösungen bereitzustellen und zu skalieren.
Zu den Aufgaben, die Analytik-Ingenieure und -Ingenieurinnen in verschiedenen Unternehmen haben, gehören unter anderem die folgenden:
-
Entwirfst und implementierst Systeme zur Speicherung und Abfrage von Daten, wie z.B. Datenbanken und Data Warehouses, die große und komplexe Datensätze verarbeiten können. Datenpipelines erstellen und pflegen, um Daten aus verschiedenen Quellen zu extrahieren, umzuwandeln und in ein zentrales Repository zur Analyse zu laden.
-
Stelle sicher, dass die Daten korrekt, vollständig, konsistent und zugänglich sind, indem du Datenqualitätsprüfungen durchführst, Datenflüsse verfolgst und Datensicherheitsmaßnahmen implementierst.
-
Nutze Cloud-Computing-Plattformen wie AWS, GCP oder Azure, um Analyselösungen bereitzustellen und zu skalieren sowie die Skalierbarkeit, Sicherheit und Kostenoptimierung der Dateninfrastruktur zu gewährleisten.
-
Optimiere die Leistung von Systemen zur Speicherung und Abfrage von Daten, Datenpipelines und maschinellen Lernmodellen, um sicherzustellen, dass sie das Volumen und die Komplexität der Daten bewältigen können.
-
Verwende Programmiersprachen und Tools wie Python, R, SQL und Spark, um Datenpipelines, Datenmodelle und maschinelle Lernmodelle zu implementieren.
-
Arbeite mit Datenwissenschaftlern zusammen, um ihre Anforderungen zu verstehen, geeignete Algorithmen auszuwählen und zu implementieren und sicherzustellen, dass Machine-Learning-Modelle richtig trainiert und eingesetzt werden. Überwache und pflege die Leistung von Machine-Learning-Modellen, behebe Fehler und optimiere sie bei Bedarf.
-
Halte dich über die neuesten Technologien und Trends in den Bereichen Datentechnik, maschinelles Lernen und Analytik auf dem Laufenden und suche ständig nach Möglichkeiten, die Dateninfrastruktur und die Analysefähigkeiten des Unternehmens zu verbessern.
Die Rolle eines Analysten ist breit gefächert und erfordert eine Kombination aus technischen Fähigkeiten, Problemlösungskompetenz und einem Verständnis der geschäftlichen Anforderungen. Analytiker müssen sich mit den technischen und geschäftlichen Aspekten der Datenwissenschaft auskennen und sollten in der Lage sein, die Kluft zwischen Datenwissenschaftlern und der IT zu überbrücken.
Ermöglichung von Analysen in einem Datengeflecht
Ein Datennetz ist ein modernes Rahmenwerk, das die Datenstrategie eines Unternehmens umreißt. Es ermöglicht den Teams der Geschäftsbereiche, die Verantwortung für ihre Daten und die Dienste, die den Zugang zu ihnen ermöglichen, zu übernehmen, anstatt sich nur auf ein zentrales Datenteam zu verlassen. Sie zerlegt eine monolithische Datenarchitektur in eine Reihe unabhängiger, autonomer Datendienste und ermöglicht so eine feinere Skalierung, mehr Autonomie und ein besseres Datenmanagement. Es bietet mehr Flexibilität im Umgang mit verschiedenen Datentypen und ermöglicht eine Kultur des Experimentierens, der Innovation und der Zusammenarbeit. Mit einem Data Mesh sollten Unternehmen in der Lage sein, sich schneller zu bewegen und schneller auf sich ändernde Geschäftsanforderungen zu reagieren.
Das Aufkommen der Data-Mesh-Methodik als Architekturmuster hat die Art und Weise, wie Analysten mit der Dateninfrastruktur interagieren, revolutioniert. Durch die Zerlegung einer monolithischen Datenarchitektur in eine Reihe von unabhängigen, autonomen Datendiensten, die unabhängig voneinander entwickelt, eingesetzt und betrieben werden können, können Teams die Herausforderungen der Skalierbarkeit, Verwaltbarkeit und Autonomie der Datenarchitektur auf granularere und mühelose Weise angehen.
Mit diesem neuen Ansatz können Teams ihre Dateninfrastruktur granularer skalieren und so das Risiko von Datensilos und Doppelarbeit verringern. Die Teams der einzelnen Geschäftsbereiche haben außerdem mehr Autonomie und können die besten Tools und Technologien für ihre spezifischen Bedürfnisse auswählen, aber auch zentral angebotene Dienste nutzen, um den gesamten Datenlebenszyklus zu verwalten. So können sie sich schneller bewegen, agiler sein und schnell auf sich ändernde Geschäftsanforderungen reagieren. Darüber hinaus bietet ein Data Mesh-Ansatz mehr Flexibilität bei der Handhabung verschiedener Datentypen, wie z. B. strukturierter, halbstrukturierter und unstrukturierter Daten. Außerdem ermöglicht er bessere Data Governance-Praktiken, indem er die monolithische Datenarchitektur aufbricht und eine klare Zuordnung von Datendiensten ermöglicht.
Ein Analytics Engineer kann in einer Data Mesh-Organisation einen Mehrwert schaffen, indem er sich auf den Aufbau und die Pflege unabhängiger, autonomer Datendienste konzentriert, die die Bedürfnisse mehrerer Teams und Anwendungen unterstützen, wie z.B. gemeinsam genutzte Datenmodelle, die gut verwaltet und dokumentiert werden, um eine mühelose Auffindbarkeit, Zugänglichkeit und Sicherheit der Daten zu gewährleisten.
Ein weiterer wichtiger Aspekt bei der Arbeit an einem Datengeflecht ist die Gewährleistung der Datenverwaltung und -sicherheit. Dazu gehört die Implementierung von Datenrichtlinien und -verfahren, wie z. B. Zugriffskontrollen, Datenreihenfolgen und Datenqualitätsprüfungen, um sicherzustellen, dass die Daten sicher und von hoher Qualität sind. Darüber hinaus sollten Analytiker/innen mit den Dateneigentümern und Interessenvertretern zusammenarbeiten, um alle gesetzlichen Anforderungen an die Speicherung und Verwaltung von Daten zu verstehen und einzuhalten.
Die Arbeit in einem Datennetz erfordert eine andere Denkweise als in traditionellen monolithischen Datenarchitekturen. Analytik-Ingenieure müssen sich von der Vorstellung lösen, dass Daten eine zentralisierte Ressource sind, und sie als verteilte, autonome Dienste betrachten, die verschiedene Teams nutzen können.
Daten Produkte
Ein weiterer Begriff, den wir auf verwendet haben und den es zu definieren gilt, ist der des Datenprodukts. Dabei handelt es sich um zugängliche Anwendungen, die Zugang zu datengestützten Erkenntnissen bieten, die geschäftliche Entscheidungsprozesse unterstützen oder sogar automatisieren. Intern können sie Komponenten zum Abrufen, Umwandeln, Analysieren und Interpretieren von Daten enthalten. Ein weiterer wichtiger Aspekt ist, dass Datenprodukte ihre Daten so offenlegen sollten, dass andere interne oder externe Anwendungen oder Dienste auf sie zugreifen und sie nutzen können.
Im Folgenden sind einige Beispiele für Datenprodukte aufgeführt:
-
Eine REST-API, die es Nutzern ermöglicht, ein bestimmtes Geschäftsdatenmodell abzufragen
-
Eine Datenpipeline, die Daten aus verschiedenen Quellen aufnimmt und verarbeitet
-
Ein Data Lake, der große Mengen von strukturierten und unstrukturierten Daten speichert und verwaltet
-
Ein Datenvisualisierungstool , das den Nutzern hilft, Dateneinblicke zu verstehen und zu kommunizieren
Datenprodukte können auch aus Microservices bestehen. Das sind kleine, unabhängige und fokussierte Dienste, die unabhängig entwickelt, eingesetzt und skaliert werden können. Auf sie kann über eine API zugegriffen und unternehmensweit wiederverwendet werden.
dbt als Data Mesh Enabler
dbt ist ein Open-Source-Tool ( ), das Dateningenieuren, Analytikern und Datenanalysten beim Aufbau eines Datennetzes hilft, indem es eine Möglichkeit bietet, Datendienste zu erstellen, zu testen und zu verwalten. Es ermöglicht Teams, Datenmodelle zu definieren, zu testen und zu erstellen und eine klare und gut definierte Schnittstelle für diese Modelle zu schaffen, damit andere Teams und Anwendungen sie problemlos nutzen können.
Zu den dbt-Funktionen, die die Erstellung eines Datennetzes unterstützen, gehören die folgenden:
- Fähigkeiten zur Datenmodellierung
-
Die Datenmodellierungsfunktionen ermöglichen es Teams, ihre Datenmodelle mithilfe einer einfachen und vertrauten SQL-basierten Syntax zu definieren, die es Dateningenieuren und Datenanalysten leicht macht, Datenmodelle gemeinsam zu definieren und zu testen.
- Fähigkeiten zur Datenprüfung
-
dbt bietet ein Testing Framework, mit dem Teams ihre Datenmodelle testen und sicherstellen können, dass sie genau und zuverlässig sind. Dies hilft, Fehler frühzeitig im Entwicklungsprozess zu erkennen und stellt sicher, dass die Datendienste von hoher Qualität sind.
- Daten-Dokumentation
-
Mit dbt können Datenmodelle und Dienste so dokumentiert werden, dass sie von anderen Teams und Anwendungen leicht verstanden und genutzt werden können.
- Fähigkeiten zur Datenverfolgung
-
Die Datenverfolgung ermöglicht es Teams, den Ursprung von Datenmodellen zurückzuverfolgen. So lässt sich leicht nachvollziehen, wie die Daten verwendet werden und woher sie stammen.
- Fähigkeiten zur Datenverwaltung
-
Data Governance ermöglicht die Durchsetzung von Data-Governance-Richtlinien wie Zugriffskontrollen, Data Lineage und Datenqualitätsprüfungen, die dazu beitragen, dass die Daten sicher und von hoher Qualität sind.
Auch wenn der Schwerpunkt des Analytics Engineering auf dem Entwurf und der Implementierung von Datenmodellen liegt, ist es wichtig zu wissen, dass Funktionen zur Datenverfolgung und -steuerung die Effektivität der Analytics Engineering-Prozesse erheblich steigern können. Diese Fähigkeiten sind besonders wertvoll in Szenarien, in denen Datenmodelle den Ursprung von Daten zurückverfolgen und strenge Data Governance-Richtlinien einhalten müssen. Die Einführung solcher Praktiken und Governance-Modelle, einschließlich eines Data Mesh, kann je nach den spezifischen Anforderungen und der Komplexität der Datenumgebung variieren. Viele erfolgreiche dbt-Implementierungen beginnen mit einfacheren Single-Star-Schema-Datenmodellen und können im Laufe der Zeit fortgeschrittene Konzepte wie das Data Mesh erforschen, wenn sich ihre Datenanforderungen weiterentwickeln.
Das Herz der Analysetechnik
Beider Datenumwandlung werden Daten von einem Format oder einer Struktur in ein anderes umgewandelt, um sie für eine bestimmte Anwendung oder einen bestimmten Zweck nützlicher oder geeigneter zu machen . Dieser Prozess ist notwendig, weil er es Unternehmen ermöglicht, unstrukturierte Rohdaten in wertvolle Erkenntnisse umzuwandeln, die als Grundlage für Geschäftsentscheidungen dienen, den Betrieb verbessern und das Wachstum fördern können.
Die Datenumwandlung ist ein entscheidender Schritt im Analysezyklus, und es ist wichtig, dass Unternehmen über die Werkzeuge und Technologien verfügen, um diese Aufgabe effizient und effektiv durchzuführen. Einige Beispiele für die Datenumwandlung sind das Bereinigen und Aufbereiten von Daten, das Aggregieren und Zusammenfassen von Daten sowie das Anreichern von Daten mit zusätzlichen Informationen. Der Einsatz von dbt für die Datenumwandlung ist weit verbreitet, weil es Unternehmen ermöglicht, komplexe Datenumwandlungsaufgaben schnell und einfach durchzuführen, und weil es mit anderen Tools wie Airflow für ein durchgängiges Datenpipeline-Management integriert werden kann.
dbt ist das gemba für Analysten und Unternehmensstakeholder. Der Wert für Unternehmen und Stakeholder entsteht, wenn Daten umgewandelt und in einer einfach zu nutzenden Form bereitgestellt werden.
Tipp
Gemba ist ein japanischer Begriff und bedeutet "der wahre Ort". In der Unternehmenswelt bezieht sich Gemba auf den Ort, an dem Werte geschaffen werden.
In einer ETL-Strategie wird die Datenumwandlung in der Regel durchgeführt, bevor die Daten in ein Zielsystem, wie z. B. ein Data Warehouse oder einen Data Lake, geladen werden. Die Daten werden aus verschiedenen Quellen extrahiert, so umgewandelt, dass sie der Struktur und dem Format des Zielsystems entsprechen, und dann in das Zielsystem geladen. Dieser Prozess stellt sicher, dass die Daten konsistent und system- und anwendungsübergreifend nutzbar sind.
Im Gegensatz dazu stellt die ELT-Strategie einen neueren und flexibleren Ansatz zur Datenverarbeitung dar. Bei dieser Strategie werden die Daten zunächst extrahiert und in ein Zielsystem geladen, bevor sie transformiert werden. ELT bietet mehrere Vorteile, darunter eine höhere Flexibilität und die Möglichkeit, eine größere Bandbreite an Datenanwendungen zu unterstützen als das traditionelle ETL-Paradigma. Ein großer Vorteil ist die Vielseitigkeit, mit der verschiedene Datentransformationen und Echtzeiteinblicke direkt im Zielsystem möglich sind. Diese Flexibilität ermöglicht es Unternehmen, schneller verwertbare Erkenntnisse aus ihren Daten zu gewinnen und sich an veränderte Analyseanforderungen anzupassen.
Es ist jedoch wichtig, sich darüber im Klaren zu sein, dass ELT mit höheren Kosten für Speicherung und Ingestion verbunden sein kann, da es sich um die Speicherung von Rohdaten oder minimal transformierten Daten handelt. Für viele Unternehmen sind diese Kosten aufgrund des erheblichen Nutzens - insbesondere der Flexibilität, die sie für ihren Betrieb mit sich bringen - gerechtfertigt. Deshalb hat ELT an Beliebtheit gewonnen, vor allem mit dem Aufkommen von Cloud-basierten Data-Warehousing-Lösungen und den verbesserten Möglichkeiten der Datenumwandlung und -verarbeitung, die sie bieten.
Unabhängig von der verwendeten Strategie können die Daten ohne eine ordnungsgemäße Datenbereinigung, -umwandlung und -standardisierung ungenau, unvollständig oder schwer zu verwenden sein, was zu einer schlechten Entscheidungsfindung führt.
Die Legacy-Prozesse
Traditionell waren die alten ETL-Prozesse oft komplex und zeitaufwändig und erforderten spezielle Kenntnisse für die Entwicklung, Implementierung und Wartung. Außerdem erforderten sie in der Regel umfangreiche manuelle Kodierungen und Datenmanipulationen, was sie fehleranfällig und schwer zu skalieren machte.
Außerdem waren diese Prozesse oft unflexibel und konnten nicht an veränderte Geschäftsanforderungen oder neue Datenquellen angepasst werden. Angesichts des wachsenden Volumens, der Vielfalt und der Geschwindigkeit der Daten werden die alten ETL-Prozesse zunehmend unzureichend und werden daher durch modernere und flexiblere Ansätze wie ELT ersetzt.
In der Vergangenheit wurde ETL in der Regel mit benutzerdefinierten Skripten oder speziellen visuell basierten ETL-Tools durchgeführt. Diese Skripte oder Tools extrahierten Daten aus verschiedenen Quellen, wie z.B. Flat Files oder Datenbanken, führten die notwendigen Transformationen an den Daten durch und luden die Daten dann in ein Zielsystem, wie z.B. ein Data Warehouse.
Ein Beispiel für einen Legacy-ETL-Prozess wäre die Verwendung einer Kombination aus SQL-Skripten und Programmiersprachen wie Java oder C#, um Daten aus einer relationalen Datenbank zu extrahieren, die Daten mithilfe der Programmiersprache umzuwandeln und die umgewandelten Daten dann in ein Data Warehouse zu laden. Ein weiteres Beispiel ist die Verwendung spezieller ETL-Tools wie Oracle Data Integrator oder IBM InfoSphere DataStage zum Extrahieren, Umwandeln und Laden von Daten aus verschiedenen Systemen. Diese alten ETL-Prozesse können komplex und schwierig zu warten und zu skalieren sein und erfordern oft ein eigenes Entwicklerteam.
SQL und Stored Procedures für ETL/ELT verwenden
In der Vergangenheit haben bestimmte Datenplattformen gespeicherte Prozeduren in einem relationalen Datenbankmanagementsystem (RDBMS) wie SQL Server oder Oracle für ETL-Zwecke verwendet. Stored Procedures sind vorbereiteter SQL-Code, den du in deiner Datenbank-Engine speichern kannst, damit der Code wiederholt verwendet werden kann. Je nachdem, ob es sich um einen Datenzufluss oder -abfluss handelt, werden die Skripte entweder in der Quell- oder in der Zieldatenbank ausgeführt.
Angenommen, du möchtest eine einfache Stored Procedure erstellen, um Daten aus einer Tabelle zu extrahieren, umzuwandeln und in eine andere Tabelle zu laden, wie in Beispiel 1-1 gezeigt.
Beispiel 1-1. SQL-Prozedur zum Extrahieren von Daten
CREATE
PROCEDURE
etl_example
AS
BEGIN
-- Extract data from the source table
SELECT
*
INTO
#
temp_table
FROM
source_table
;
-- Transform data
UPDATE
#
temp_table
SET
column1
=
UPPER
(
column1
),
column2
=
column2
*
2
;
-- Load data into the target table
INSERT
INTO
target_table
SELECT
*
FROM
#
temp_table
;
END
Diese Stored Procedure extrahiert zunächst mit der Anweisung SELECT INTO
alle Daten aus der Quelltabelle und speichert sie in einer temporären Tabelle (#temp_table
). Dann verwendet sie die UPDATE
Anweisung, um die Werte von column1
in Großbuchstaben zu ändern und den Wert von column2
zu verdoppeln. Schließlich lädt die Stored Procedure mit der INSERT INTO
Anweisung die Daten von #temp_table
in target_table
.
Hinweis
Hab keine Angst, wenn du mit der SQL-Syntax nicht vertraut bist. Kapitel 3 ist ganz darauf ausgerichtet, dir die Grundlagen für die Arbeit mit ihr zu vermitteln.
Es ist wichtig zu beachten, dass dies ein einfaches Beispiel ist und dass tatsächliche ETL-Prozesse oft viel komplexer sind und viele weitere Schritte beinhalten, wie z.B. die Datenvalidierung, die Behandlung von Nullwerten und Fehlern und die Protokollierung der Prozessergebnisse.
Obwohl es möglich ist, Stored Procedures für ETL-Prozesse zu verwenden, ist es wichtig zu beachten, dass ihre Verwendung einige Auswirkungen haben kann, wie z.B. die Notwendigkeit von Spezialwissen und Fachkenntnissen, um diese Prozeduren zu schreiben und zu pflegen, und die mangelnde Flexibilität und Skalierbarkeit. Darüber hinaus kann die Verwendung von Stored Procedures für ETL die Integration mit anderen Systemen und Technologien sowie die Behebung von Problemen, die während des ETL-Prozesses auftreten, erschweren.
ETL-Tools verwenden
Wie bereits erwähnt, handelt es sich bei ETL-Tools um Softwareanwendungen, die den Aufbau von Ingestion- und Transformationspipelines beschleunigen, indem sie eine visuelle Oberfläche, ein Software Development Kit (SDK) oder eine Programmierbibliothek mit vorgefertigtem Code und Artefakten bereitstellen, die zum Extrahieren, Transformieren und Laden von Daten aus verschiedenen Quellen in ein Ziel, wie z.B. ein Data Warehouse oder einen Data Lake, verwendet werden können. Sie werden in vielen Unternehmen eingesetzt, um die Übertragung von Daten aus verschiedenen Systemen und Datenbanken in ein zentrales Data Warehouse oder Data Lake zu automatisieren, wo sie analysiert werden können.
Airflow ist eine beliebte Open-Source-Plattform für die Verwaltung und Planung von Datenpipelines. Sie wurde von Airbnb entwickelt und hat in den letzten Jahren aufgrund ihrer Flexibilität und Skalierbarkeit an Beliebtheit gewonnen. Mit Airflow können Datenpipelines mithilfe von Python-Code definiert, geplant und überwacht werden, so dass sie von Dateningenieuren und Wissenschaftlern leicht erstellt werden können.
Beispiel 1-2 zeigt einen einfachen Airflow-DAG. Ein gerichteter azyklischer Graph (DAG) ist ein gerichteter Graph ohne gerichtete Zyklen.
Beispiel 1-2. Ein Luftstrom-DAG
from
airflow
import
DAG
from
airflow.operators.bash_operator
import
BashOperator
from
datetime
import
datetime
,
timedelta
default_args
=
{
'owner'
:
'me'
,
'start_date'
:
datetime
(
2022
,
1
,
1
),
'depends_on_past'
:
False
,
'retries'
:
1
,
'retry_delay'
:
timedelta
(
minutes
=
5
),
}
dag
=
DAG
(
'simple_dag'
,
default_args
=
default_args
,
schedule_interval
=
timedelta
(
hours
=
1
),
)
task1
=
BashOperator
(
task_id
=
'print_date'
,
bash_command
=
'date'
,
dag
=
dag
,
)
task2
=
BashOperator
(
task_id
=
'sleep'
,
bash_command
=
'sleep 5'
,
retries
=
3
,
dag
=
dag
,
)
task1
>>
task2
Dieser Code definiert eine DAG namens simple_dag
, die jede Stunde läuft. Er hat zwei Aufgaben, print_date
und sleep
. Die erste Aufgabe führt den Befehl date
aus, der das aktuelle Datum und die Uhrzeit ausgibt. Die zweite Aufgabe führt den Befehl sleep 5
aus, der die Aufgabe für fünf Sekunden schlafen lässt. Bei der zweiten Aufgabe ist die Anzahl der Wiederholungsversuche auf 3 eingestellt. Wenn sie also fehlschlägt, versucht sie es dreimal, bevor sie aufgibt. Die beiden Aufgaben sind durch den Operator >>
verbunden. Das bedeutet auch, dass task2
von task1
abhängt und erst ausgeführt wird, wenn task1
erfolgreich abgeschlossen wurde.
Airflow ist ein produktives Tool für die Planung und Verwaltung von ETL-Pipelines, aber es hat einige Einschränkungen. Erstens kann es sehr komplex sein, Airflow einzurichten und zu verwalten, vor allem bei großen oder komplizierten Pipelines. Zweitens ist es nicht explizit für die Datenumwandlung konzipiert und kann zusätzliche Tools oder eigenen Code erfordern, um bestimmte Arten der Datenmanipulation durchzuführen.
Hinweis
dbt kann diese Einschränkungen von Airflow umgehen, indem es eine Reihe bewährter Methoden und Konventionen für die Datenumwandlung und eine einfache, unkomplizierte Schnittstelle für die Durchführung und Verwaltung der Datenumwandlung bietet. Es kann auch in Airflow integriert werden, um eine komplette ETL/ELT-Lösung bereitzustellen, die einfach einzurichten und zu verwalten ist und gleichzeitig hohe Flexibilität und Kontrolle über die Datenpipelines bietet.
Die dbt-Revolution
dbt ist ein Open-Source-Befehlszeilen-Tool, das sich in der Datenanalysebranche zunehmender Beliebtheit erfreut, weil es den Prozess der Datentransformation und -modellierung vereinfacht und rationalisiert. Airflow hingegen ist eine leistungsstarke Open-Source-Plattform für die programmatische Erstellung, Planung und Überwachung von Workflows. Wenn dbt mit Airflow integriert wird, kann die Datenpipeline effizienter verwaltet und automatisiert werden. Airflow kann zur Planung von dbt-Läufen verwendet werden, und dbt kann die Datenumwandlungsaufgaben in der Pipeline übernehmen.
Diese Integration ermöglicht es Teams, die gesamte Datenpipeline von der Datenextraktion bis zum Laden in ein Data Warehouse zu verwalten und so sicherzustellen, dass die Daten immer aktuell und genau sind. Die Integration erleichtert die Automatisierung von Datenpipeline-Aufgaben, die Planung und Überwachung der Pipeline und die Behebung von Problemen, sobald diese auftreten.
Um die Einfachheit der Erstellung eines einfachen dbt-Modells zu veranschaulichen, stell dir vor, du möchtest ein Modell erstellen, das den Gesamtumsatz eines Unternehmens berechnet, indem es die Umsätze für jede Bestellung addiert. Das Modell könnte mithilfe einer dbt-Modelldatei definiert werden, in der der SQL-Code der Berechnung und alle erforderlichen Abhängigkeiten oder Parameter angegeben sind. Beispiel 1-3 zeigt, wie die Modelldatei aussehen könnte.
Beispiel 1-3. Ein dbt-Modell
{{
config
(
materialized
=
'table'
)
}}
select
sum
(
orders
.
revenue
)
as
total_revenue
from
{{
ref
(
'orders'
)
}}
as
orders
Einer der Hauptvorteile von dbt ist, dass Analytiker/innen wiederverwendbaren, wartbaren und testbaren Code für Datentransformationen in einer einfachen Hochsprache schreiben können, die die Komplexität des Schreibens von SQL überflüssig macht. Dies erleichtert die Zusammenarbeit im Team bei Datenprojekten und verringert das Risiko von Fehlern in der Datenpipeline.
Ein weiterer Vorteil von dbt ist, dass es ein effizienteres Datenpipeline-Management ermöglicht. Durch die Integration mit Orchestrierungs-Tools wie Airflow und anderen wie Dagster oder Prefect sowie mit dem eigenen dbt Cloud-Produkt von dbt Labs können Teams Datenpipelines effektiv planen, planen und überwachen. So wird sichergestellt, dass die Daten stets aktuell und korrekt sind. Die Synergie zwischen dbt und Orchestrierungstools wie Airflow ermöglicht eine nahtlose Datenaktualisierung und die Bereitstellung neuer Logik, ähnlich wie bei CI/CD-Verfahren in der Softwareentwicklung. Diese Integration stellt sicher, dass die Datenpipeline effizient orchestriert und ausgeführt werden kann, sobald neue Daten verfügbar sind oder Transformationen aktualisiert werden, um zuverlässige und zeitnahe Erkenntnisse zu liefern.
Insgesamt ist dbt für Unternehmen, die ihre Datenanalysefähigkeiten verbessern und ihre Datenpipelines rationalisieren wollen, weit verbreitet. Obwohl es sich noch um eine relativ neue Technologie handelt, wird sie bereits von vielen Unternehmen eingesetzt und gilt als wertvolles Werkzeug für Datenexperten. In Kapitel 4 werden wir uns näher mit dem dbt und seinen Möglichkeiten und Funktionen befassen.
Zusammenfassung
In den letzten Jahrzehnten hat sich das Datenmanagement grundlegend gewandelt: Von strukturierten Methoden der Speicherung und des Zugriffs auf Daten, wie SQL-basierten Stored Procedures, hin zu flexibleren und skalierbaren Workflows. Diese modernen Workflows werden durch leistungsstarke Tools wie Airflow und dbt unterstützt. Airflow ermöglicht eine dynamische Orchestrierung, während dbt den Analysecode auf das Niveau einer produktionsfähigen Software hebt und innovative Ansätze für die Datenprüfung und -umwandlung einführt.
In diesem dynamischen Umfeld haben sich neue Rollen herausgebildet. Der Analytics Engineer steht an der Schnittstelle zwischen Data Engineering und Data Analytics und sorgt dafür, dass zuverlässige Erkenntnisse gewonnen werden. Trotz der Entwicklung von Tools und Rollen bleibt der eigentliche Wert von Daten unverändert. Das Datenmanagement entwickelt sich jedoch zu einer Disziplin, die sich nicht nur auf die Daten selbst konzentriert, sondern auch auf die Fachleute, die mit ihnen umgehen.
Trotz dieser Fortschritte bleiben die zentralen Herausforderungen bestehen: die Beschaffung wichtiger Daten, die Einhaltung höchster Datenqualitätsstandards, die effiziente Speicherung von Daten und die Erfüllung der Erwartungen der Stakeholder an die Datenbereitstellung. Das Herzstück der Datenwertschöpfungskette ist die Wiederbelebung der Datenmodellierung. Effiziente Datenmodellierung geht über das Sammeln von Daten hinaus; sie strukturiert und organisiert Daten so, dass sie reale Beziehungen und Hierarchien widerspiegeln. In Kapitel 2 werden wir uns mit der Datenmodellierung und ihrer zentralen Rolle in der Analysetechnik befassen.
In diesem Kapitel haben wir die Entwicklung des Datenmanagements, die Entstehung der Rolle des Analytics Engineers und Konzepte wie Data Mesh und den Unterschied zwischen ELT- und ETL-Strategien untersucht. Mit diesen vielfältigen Themen wollen wir einen umfassenden Überblick über die Datenlandschaft geben.
Get Analytics Engineering mit SQL und dbt 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.