Nach zwei berei­chern­den Jah­ren als Data Engi­neer hatte ich end­lich die Gele­gen­heit, in das Buch Fun­da­men­tals of Data Engi­nee­ring ein­zu­tau­chen, das von Joe Reis und Matt Hous­ley ver­fasst wurde.

Die Lek­türe die­ses Buches inspi­rierte mich dazu, meine Erfah­run­gen mit Daten mit dem theo­re­ti­schen Ver­ständ­nis zu ver­bin­den. Die Ideen des Buches brach­ten mich dazu, über meine Arbeit als Data Engi­neer nach­zu­den­ken und hal­fen mir, die Lücke zwi­schen Theo­rie und Pra­xis zu schließen.

In die­sem Blog­bei­trag möchte ich 5 wich­tige Erkennt­nisse aus die­sem Buch mit Ihnen tei­len. Ich kon­zen­triere mich auf einen Schlüs­sel­aspekt aus jedem Kapi­tel, um die­sen Blog­bei­trag infor­ma­tiv zu halten.

Worum geht es in die­sem Buch?

Fun­da­men­tals of Data Engi­nee­ring ist das Grund­la­gen­buch Nr. 1, das von vie­len erfah­re­nen Data Engi­neers emp­foh­len wird. Es hilft Daten­in­ge­nieu­ren zu ver­ste­hen, wie sie die Kon­zepte der Daten­ge­ne­rie­rung, ‑auf­nahme, ‑orches­trie­rung, ‑trans­for­ma­tion, ‑spei­che­rung und ‑ver­wal­tung anwen­den kön­nen, die in jeder Daten­um­ge­bung ent­schei­dend sind, unab­hän­gig von der zugrunde lie­gen­den Technologie.

Was ist Data Engi­nee­ring (Kapi­tel 1)

Data Engi­nee­ring ist der Ent­wurf, die Imple­men­tie­rung und die War­tung von Sys­te­men und Pro­zes­sen, die Roh­da­ten in hoch­wer­tige, kon­sis­tente Infor­ma­tio­nen umwan­deln, um nach­fol­gende Anwen­dungs­fälle wie Ana­ly­sen und maschi­nel­les Ler­nen zu unter­stüt­zen. Data Engi­nee­ring ist der Schnitt­punkt von Sicher­heit, Daten­ma­nage­ment, Data­Ops, Daten­ar­chi­tek­tur, Orches­trie­rung und Soft­ware-Engi­nee­ring. Ein Data Engi­neer ver­wal­tet den Data-Engi­nee­ring-Lebens­zy­klus, von der Beschaf­fung von Daten aus Quell­sys­te­men bis zur Bereit­stel­lung von Daten für Anwen­dungs­fälle wie Ana­lyse und maschi­nel­les Lernen.

Data Engi­nee­ring Life Cycle (Kapi­tel 2)

Der Lebens­zy­klus des Data Engi­nee­ring glie­dert sich in die fol­gen­den fünf Phasen:

  • Erzeu­gung: Quell­sys­teme: Ein Quell­sys­tem ist der Ursprung der Daten, die im Lebens­zy­klus des Data Engi­nee­ring ver­wen­det wer­den. Der Data Engi­neer muss wis­sen, wie Quell­sys­teme funk­tio­nie­ren, wie sie Daten erzeu­gen, wie oft und schnell sie Daten erzeu­gen und wel­che Arten von Daten sie erzeugen.
  • Spei­che­rung: Die Wahl einer Spei­cher­lö­sung ist der Schlüs­sel zum Erfolg im rest­li­chen Daten­le­bens­zy­klus. Wel­che Art von Spei­cher­sys­tem Sie ver­wen­den soll­ten, hängt von den Anwen­dungs­fäl­len, dem Daten­vo­lu­men, der Häu­fig­keit der Daten­ein­gabe, dem Daten­for­mat und der Größe ab.
  • Daten­ein­gabe: Batch ver­sus Strea­ming: Über­le­gen Sie, wel­che Anwen­dungs­fälle und Vor­teile das Strea­ming bie­tet, wel­ches Tool in die­sen Situa­tio­nen am bes­ten geeig­net ist und wie Sie den Kom­pro­miss begrün­den kön­nen. Strea­ming ist nicht immer ein­fach; es gibt immer zusätz­li­che Kos­ten und Kom­pli­ka­tio­nen. Die Sta­pel­ver­ar­bei­tung eig­net sich her­vor­ra­gend für viele gän­gige Auf­ga­ben, z. B. das Trai­nie­ren von Model­len und das Ver­sen­den von Wochenberichten.
  • Umwand­lung: In der Trans­for­ma­ti­ons­phase begin­nen die Daten, einen Wert für die nach­ge­la­gerte Nut­zung zu schaf­fen. In der Regel wer­den die Daten in den Quell­sys­te­men oder wäh­rend des Inges­tion-Pro­zes­ses trans­for­miert, wobei die Geschäfts­lo­gik eine wich­tige Rolle bei der Daten­trans­for­ma­tion spielt.
  • Daten bereit­stel­len: Daten haben einen Wert, wenn sie für prak­ti­sche Zwe­cke ver­wen­det wer­den. Zu den belieb­ten Ver­wen­dungs­zwe­cken von Daten gehö­ren Ana­ly­sen (ein­schließ­lich Busi­ness Intel­li­gence, ope­ra­tive Ana­ly­sen, die sich auf die fein­kör­ni­gen Details von Vor­gän­gen kon­zen­trie­ren, ein­ge­bet­tete Ana­ly­sen), ML und Reverse ETL.

Ent­wurf einer guten Daten­ar­chi­tek­tur (Kapi­tel 3)

Unter­neh­mens­ar­chi­tek­tur ist die Gestal­tung von Sys­te­men zur Unter­stüt­zung des Wan­dels in einem Unter­neh­men. Dazu müs­sen Ent­schei­dun­gen getrof­fen wer­den, die fle­xi­bel sind und nach sorg­fäl­ti­ger Abwä­gung der Kom­pro­misse geän­dert wer­den kön­nen. Zu den Grund­sät­zen der Gestal­tung einer guten Daten­ar­chi­tek­tur gehören:

  1. Gemein­same Kom­po­nen­ten klug auswählen
  2. Pla­nen Sie für Ausfälle
  3. Archi­tek­tur für Skalierbarkeit
  4. Archi­tek­tur ist Führung
  5. Immer archi­tek­to­nisch sein
  6. Lose gekop­pelte Sys­teme bauen
  7. Tref­fen Sie rever­si­ble Entscheidungen
  8. Der Sicher­heit Vor­rang geben
  9. Fin­Ops einbeziehen

Aus­wahl von Tech­no­lo­gien für den gesam­ten Lebens­zy­klus der Daten­tech­nik (Kapi­tel 4)

Bei der Aus­wahl von Daten­tech­no­lo­gien für den gesam­ten Lebens­zy­klus der Daten­tech­nik sind fol­gende Aspekte zu berücksichtigen:

  • Team­größe und Kapazitäten
  • Geschwin­dig­keit der Markteinführung
  • Inter­ope­ra­bi­li­tät: wie ver­schie­dene Tech­no­lo­gien oder Sys­teme mit­ein­an­der ver­bun­den sind, Infor­ma­tio­nen aus­tau­schen und interagieren
  • Kos­ten­op­ti­mie­rung und Geschäfts­wert: Berück­sich­ti­gung der Gesamt­be­triebs­kos­ten, der gesam­ten Oppor­tu­ni­täts­kos­ten, FinOps
  • Heute vs. Zukunft: Unver­än­der­li­che vs. tran­si­to­ri­sche Technologien
  • Unver­än­der­li­che Tech­no­lo­gien kön­nen Teile der Cloud oder Spra­chen sein, die es schon lange gibt, vor­über­ge­hende Tech­no­lo­gien sind sol­che, die kom­men und gehen.
  • Stand­ort: Vor-Ort vs. Cloud
  • Build vs. Buy: Sie ken­nen Ihren Wett­be­werbs­vor­teil und wis­sen, wo es sinn­voll ist, Res­sour­cen in die Anpas­sung zu investieren.
  • Mono­li­thisch vs. Modu­lar: Mono­li­thi­sche Sys­teme sind in sich geschlos­sen und füh­ren oft meh­rere Funk­tio­nen in einem ein­zi­gen Sys­tem aus.
  • Ser­ver­less vs. Ser­ver: Zu den wich­tigs­ten Über­le­gun­gen gehö­ren Größe und Kom­ple­xi­tät der Arbeits­last, Aus­füh­rungs­häu­fig­keit und ‑dauer, Anfra­gen und Ver­net­zung, Spra­che, Lauf­zeit­be­schrän­kun­gen und Kosten.
  • Opti­mie­rung, Leis­tung, Benchmark-Kriege
  • Die Unter­strö­mun­gen des Lebens­zy­klus der Datentechnik
  • Dazu gehö­ren Daten­ma­nage­ment, Data­Ops und Datenarchitektur.

Data Gene­ra­tion in Source Sys­tems (Kapi­tel 5)

Die Daten kön­nen von dort stammen:

  1. Dateien und unstruk­tu­rierte Daten
  2. APIs
  3. Anwen­dungs­da­ten­ban­ken (OLTP-Sys­teme)
  4. Online-Ana­ly­ti­sches Ver­ar­bei­tungs­sys­tem (OLAP)
  5. Ände­rungs­da­ten­er­fas­sung – eine Methode zum Extra­hie­ren jedes Ände­rungs­er­eig­nis­ses (Ein­fü­gen, Aktua­li­sie­ren, Löschen), das in einer Daten­bank auftritt
  6. Pro­to­kolle: Erfas­sen von Infor­ma­tio­nen über Ereig­nisse, die in Sys­te­men auftreten
  7. Daten­bank­pro­to­kolle
  8. CRUD (Erstel­len, Lesen, Aktua­li­sie­ren und Löschen)

Spei­che­rung (Kapi­tel 6)

Die Spei­che­rung ist der wich­tigste Teil des Daten­ent­wick­lungs­pro­zes­ses. Sie ist die Grund­lage für die drei Haupt­pha­sen Inge­st­ing, Trans­for­ma­tion und Serving.

  • Ein­zelne Maschine vs. Ver­teilte Spei­che­rung: Bei der ver­teil­ten Spei­che­rung wer­den die Aktio­nen zahl­rei­cher Ser­ver orga­ni­siert, um Daten schnel­ler und in grö­ße­rem Umfang zu spei­chern, abzu­ru­fen und zu ver­ar­bei­ten und gleich­zei­tig Red­un­danz zu bie­ten, falls ein Ser­ver ausfällt.
  • Even­tu­elle Vs. Starke Kon­sis­tenz: In ver­teil­ten Sys­te­men gibt es zwei gän­gige Kon­sis­tenz­mus­ter: even­tu­elle und starke Kon­sis­tenz. Even­tu­elle Kon­sis­tenz ermög­licht es Ihnen, Daten schnell zu erhal­ten, ohne zu über­prü­fen, ob Sie die neu­este Ver­sion auf allen Kno­ten haben. Dies ist ein übli­cher Kom­pro­miss in gro­ßen, ver­teil­ten Sys­te­men. Starke Kon­sis­tenz in der ver­teil­ten Daten­bank stellt sicher, dass Schreib­vor­gänge auf jedem Kno­ten zuerst mit einem Kon­sens ver­teilt wer­den und dass alle Lese­vor­gänge kon­sis­tente Ergeb­nisse lie­fern. Starke Kon­sis­tenz wird ver­wen­det, wenn Sie eine erhöhte Abfra­ge­la­tenz tole­rie­ren und bei jeder Abfrage der Daten­bank kor­rekte Daten benötigen.
  • Datei­spei­che­rung: Eine Datei ist eine Art von Daten­ele­ment, das von Betriebs­sys­te­men und Soft­ware zum Lesen, Schrei­ben und Ver­wei­sen auf Daten ver­wen­det wird.
  • Block­spei­cher: Block­spei­cher ist der Typ von Roh­spei­cher, der von SSDs und Magnet­plat­ten bereit­ge­stellt wird.
  • Objekt­spei­cher: Der Objekt­spei­cher ent­hält Objekte in allen For­men und Grö­ßen. Dabei kann es sich um jede Art von Datei han­deln – TXT, CSV, JSON, Bil­der, Videos oder Audio. Objekt­spei­cher unter­stüt­zen in der Regel keine In-Place-Updates oder Anhänge.
  • Cache- und spei­cher­ba­sierte Spei­cher­sys­teme: RAM-Spei­cher­sys­teme spei­chern Daten für schnel­len Zugriff und hohe Band­brei­ten. Wenn Daten­in­ge­nieure eine ultra­schnelle Abruf­la­tenz benö­ti­gen, hel­fen diese ultra­schnel­len Cache-Systeme.
  • Das ver­teilte Datei­sys­tem von Hadoop: Das ver­teilte Datei­sys­tem Hadoop basiert auf dem Google File Sys­tem (GFS) und wurde ursprüng­lich für die Ver­wen­dung des Map­Re­duce-Pro­gram­mier­mo­dells zur Ver­ar­bei­tung von Daten ent­wi­ckelt. Hadoop ähnelt der Objekt­spei­che­rung, aber es gibt einen gro­ßen Unter­schied: Hadoop spei­chert und ver­ar­bei­tet Daten auf den­sel­ben Kno­ten, wäh­rend Objekt­spei­cher in der Regel nicht viel Unter­stüt­zung für die Ver­ar­bei­tung von Daten auf den­sel­ben Kno­ten bieten.
  • Strea­ming-Spei­cher: Strea­ming-Daten haben einen beson­de­ren Spei­cher­be­darf. Im Falle von Nach­rich­ten­war­te­schlan­gen sind die gespei­cher­ten Daten zeit­lich begrenzt und sol­len nach einer bestimm­ten Zeit ver­schwin­den. Ver­teilte, ska­lier­bare Strea­ming-Sys­teme wie Apa­che Kafka bie­ten jetzt eine extrem lang­fris­tige Spei­che­rung von Streaming-Daten.
  • Indi­zes, Par­ti­tio­nie­rung und Clus­te­ring: Indi­zes bie­ten eine Abbil­dung der Tabelle für bestimmte Fel­der und ermög­li­chen ein extrem schnel­les Auf­fin­den ein­zel­ner Daten­sätze. Ohne Indi­zes müsste eine Daten­bank eine ganze Tabelle durch­su­chen, um die Daten­sätze zu fin­den, die eine WHERE-Bedin­gung erfül­len. Clus­ter ermög­li­chen eine fei­nere Glie­de­rung der Daten inner­halb von Par­ti­tio­nen. Ein Clus­te­ring-Schema, das in einer spal­ten­ori­en­tier­ten Daten­bank ange­wandt wird, sor­tiert Daten nach einem oder eini­gen weni­gen Fel­dern und fasst ähn­li­che Werte zusammen.

Sto­rage Abstractions

Die Spei­cher­abs­trak­tion lässt sich auf ein paar wich­tige Über­le­gun­gen reduzieren:

  • Zweck und Anwendungsfall
  • Aktua­li­sie­rungs­mus­ter
  • Kos­ten
  • Getrennte Spei­che­rung und Datenverarbeitung

Arten von Speicherabstraktionen:

  • Daten-Lager­haus: Cloud Data Warehou­ses ord­nen rie­sige Men­gen unver­ar­bei­te­ter Roh­da­ten in Data Lakes an. Cloud-Data-Warehou­ses kön­nen große Men­gen an Text und kom­pli­zier­ten JSON-Doku­men­ten ver­wal­ten. Im Gegen­satz zu Data Lakes kön­nen Cloud Data Warehou­ses keine unstruk­tu­rier­ten Daten wie Fotos, Video und Audio ver­ar­bei­ten. Cloud-Data-Warehou­ses und Objekt­spei­cher bie­ten eine Data-Lake-Lösung.
  • Data Lake: Der Data Lake war ursprüng­lich als mas­si­ver Spei­cher kon­zi­piert, in dem Daten in roher, unver­ar­bei­te­ter Form auf­be­wahrt wurden.
  • Data Lake­house: Das Data Lake­house ist eine Archi­tek­tur, die Aspekte des Data Ware­house und des Data Lake kom­bi­niert. Es han­delt sich um eine Meta­da­ten- und Datei­ver­wal­tungs­schicht, die mit Daten­ver­wal­tungs- und ‑umwand­lungs­tools ein­ge­setzt wird. Der Haupt­vor­teil von Data Lake­house gegen­über pro­prie­tä­ren Tools ist die Interoperabilität.

Inges­tion (Kapi­tel 7)

Die Daten­auf­nahme ist der Pro­zess, bei dem Daten von einem Ort zum ande­ren ver­scho­ben werden.

Wich­tige tech­ni­sche Über­le­gun­gen für die Ingestionsphase:

  • Begrenzt vs. Unbe­grenzt: Unbe­grenzte Daten sind Daten, wie sie in der Rea­li­tät vor­han­den sind, wie Ereig­nisse gesche­hen, ent­we­der spo­ra­disch oder kon­ti­nu­ier­lich, fort­lau­fend und flie­ßend. Begrenzte Daten sind eine bequeme Mög­lich­keit, Daten über eine Art von Grenze, wie z. B. die Zeit, zu grup­pie­ren. Alle Daten sind unbe­grenzt, bis sie begrenzt werden.
  • Häu­fig­keit: Batch (häu­fig), Micro-Batch (halb-fre­quent) oder Echt­zeit (sehr häufig)
  • Syn­chron vs. asyn­chron: Bei der syn­chro­nen Daten­über­nahme haben Quelle, Daten­über­nahme und Ziel kom­plexe Abhän­gig­kei­ten und sind eng mit­ein­an­der ver­bun­den. Bei der asyn­chro­nen Daten­über­nahme kön­nen die Abhän­gig­kei­ten nun auf der Ebene ein­zel­ner Ereig­nisse statt­fin­den, ähn­lich wie in einem Soft­ware-Backend, das aus Micro­ser­vices besteht.
  • Serialisierung/Deserialisierung: Seria­li­sie­rung bedeu­tet die Kodie­rung der Daten aus einer Quelle und die Vor­be­rei­tung von Daten­struk­tu­ren für die Über­tra­gung und Zwi­schen­spei­che­rung. Stel­len Sie bei der Auf­nahme von Daten sicher, dass Ihr Ziel die emp­fan­ge­nen Daten dese­ria­li­sie­ren kann.
  • Durch­satz und Ska­lier­bar­keit: Ver­wen­den Sie ver­wal­tete Dienste, die die Ska­lie­rung des Durch­sat­zes für Sie übernehmen.
  • Zuver­läs­sig­keit und Dau­er­haf­tig­keit: Zuver­läs­sig­keit bedeu­tet eine hohe Betriebs­zeit und ein ange­mes­se­nes Fail­over für Inges­tion-Sys­teme; Halt­bar­keit bedeu­tet, dass sicher­ge­stellt wird, dass Daten nicht ver­lo­ren gehen oder beschä­digt werden.
  • Pay­load: Ein Nutz­da­ten­pa­ket ist der Daten­satz, den Sie auf­neh­men, und weist Merk­male wie Art, Form, Größe, Schema und Daten­ty­pen sowie Meta­da­ten auf.
  • Push vs. Pull vs. Pol­ling: Push – das Quell­sys­tem sen­det Daten an das Ziel, Pull – das Ziel liest Daten direkt von der Quelle, Pol­ling – die Daten­quelle wird regel­mä­ßig auf Ände­run­gen überprüft.

Über­le­gun­gen zum Nach­rich­ten- und Stream-Ingestion:

  • Sche­ma­ent­wick­lung: Fel­der kön­nen hin­zu­ge­fügt oder ent­fernt wer­den, oder Wert­ty­pen kön­nen sich ändern – ver­wen­den Sie ein Sche­ma­re­gis­ter, eine War­te­schlange für tote Buch­sta­ben und kom­mu­ni­zie­ren Sie effek­tiv über mög­li­che Schemaänderungen.
  • Spät ein­tref­fende Daten
  • Bestel­lung und mehr­fa­che Lie­fe­rung: Strea­ming-Platt­for­men sind in der Regel aus ver­teil­ten Sys­te­men auf­ge­baut, was zu eini­gen Kom­pli­ka­tio­nen füh­ren kann. Nach­rich­ten kön­nen außer der Reihe und mehr als ein­mal zuge­stellt wer­den (at-least-once-Lie­fe­rung).
  • Feh­ler­be­hand­lung und Dead-Let­ter-Queues: Dead-Let­ter-Queue trennt pro­ble­ma­ti­sche Ereig­nisse von Ereig­nis­sen, die vom Kon­su­men­ten akzep­tiert wer­den können.
  • Ver­brau­cher Pull und Push
  • Stand­ort: Je näher die Daten­auf­nahme am Ursprung der Daten liegt, desto bes­ser sind Band­breite und Latenz. Dies muss jedoch gegen die Kos­ten abge­wo­gen wer­den, die ent­ste­hen, wenn Daten zwi­schen Regio­nen ver­scho­ben wer­den, um Ana­ly­sen mit einem kom­bi­nier­ten Daten­satz durchzuführen.

Abfra­gen, Model­lie­rung und Umwand­lung (Kapi­tel 8)

Eine Abfrage ermög­licht es Ihnen, Daten abzu­ru­fen und zu verarbeiten.

Ver­bes­se­rung der Abfrageleistung:

  • Opti­mie­ren Sie Ihre JOIN-Stra­te­gie und Ihr Schema (erstel­len Sie vor­ver­knüpfte Tabel­len und schu­len Sie die Benut­zer, diese zu nut­zen oder inner­halb von mate­ria­li­sier­ten Ansich­ten zu ver­knüp­fen, ver­bes­sern Sie die Leis­tung für kom­plexe Ver­knüp­fun­gen, ver­wen­den Sie Com­mon Table Expres­si­ons (CTEs) anstelle von ver­schach­tel­ten Unter­ab­fra­gen oder tem­po­rä­ren Tabellen)
  • Ver­wen­den Sie den erklär­ten Plan und ver­ste­hen Sie die Leis­tung Ihrer Abfrage
  • Ver­mei­den Sie voll­stän­dige Tabellenscans
  • Wis­sen, wie Ihre Daten­bank mit Über­tra­gun­gen umgeht (z. B. Unter­schiede zwi­schen Pos­gresSQL, Big­Query und MongoDB)
  • Vaku­um­ie­ren Sie tote Daten­sätze (ent­fer­nen Sie tote Daten­sätze in einem Pro­zess, der Vaku­um­ie­rung genannt wird)
  • Nut­zen Sie zwi­schen­ge­spei­cherte Abfrageergebnisse

Slowly chan­ging dimen­sion (SCD):

Eine sich lang­sam ändernde Bema­ßung (SCD) ist erfor­der­lich, um Ände­run­gen in den Bema­ßun­gen zu verfolgen.

Typ 1: Über­schrei­ben Sie vor­han­dene Dimen­si­ons­da­ten­sätze – Sie haben kei­nen Zugriff auf die gelösch­ten his­to­ri­schen Dimensionsdatensätze.

Typ 2: Füh­ren Sie eine voll­stän­dige His­to­rie der Dimen­si­ons­da­ten­sätze. Wenn sich ein Daten­satz ändert, wird die­ser spe­zi­elle Daten­satz als geän­dert gekenn­zeich­net und ein neuer Dimen­si­ons­da­ten­satz erstellt, der den aktu­el­len Sta­tus der Attri­bute widerspiegelt.

Typ 3: Ein SCD des Typs 3 ähnelt einem SCD des Typs 2, aber anstatt eine neue Zeile zu erstel­len, wird bei einer Ände­rung in einem SCD des Typs 3 ein neues Feld erstellt.

Batch Trans­for­ma­tion — JOINs

  • Ver­teilte Ver­knüp­fung: eine logi­sche Ver­knüp­fung (die durch die Abfra­ge­lo­gik defi­nierte Ver­knüp­fung) muss in viel klei­nere Kno­ten­ver­knüp­fun­gen unter­teilt wer­den, die auf ein­zel­nen Ser­vern im Clus­ter aus­ge­führt werden
  • Broad­cast Join: in der Regel asym­me­trisch, mit einer gro­ßen Tabelle, die über die Kno­ten ver­teilt ist, und einer klei­nen Tabelle, die leicht auf einen ein­zel­nen Kno­ten passt
  • Shuffle-Hash-Join: Wenn keine der bei­den Tabel­len klein genug ist, um auf einen ein­zel­nen Kno­ten zu pas­sen, ver­wen­det das Abfra­ge­pro­gramm einen Shuffle-Hash-Join

Die­ses Kapi­tel ent­hält eine Menge detail­lier­tes Wis­sen über die Umwand­lung und ich möchte Sie ermu­ti­gen, es gründ­lich zu lesen.

Bereit­stel­lung von Daten für Ana­ly­sen, Machine Lear­ning und Reverse ETL (Kapi­tel 9)

Ein guter Daten­in­ge­nieur sollte die Ser­ving-Phase als Chance sehen, um zu ler­nen, was funk­tio­niert und was ver­bes­sert wer­den kann. Nut­zen Sie das Feed­back der Stake­hol­der als Gele­gen­heit, um das zu ver­bes­sern, was Sie ent­wi­ckelt haben. Die Men­schen müs­sen den Daten, die Sie bereit­stel­len, ver­trauen. Sie müs­sen Ihre Anwen­dungs­fälle und Benut­zer, die zu erstel­len­den Daten­pro­dukte und die Art und Weise, wie Sie die Daten bereit­stel­len wer­den, verstehen.

Sicher­heit, Daten­schutz und die Zukunft des Data Engi­nee­rings (Kapi­tel 10 und 11)

Sicher­heit muss zur Gewohn­heit wer­den; zu den Grund­sät­zen, die es zu beach­ten gilt, gehö­ren das Prin­zip der gerings­ten Pri­vi­le­gien, die stän­dige Siche­rung der Daten, das Patchen und Aktua­li­sie­ren von Sys­te­men und die Verschlüsselung.

Ver­ein­fachte, benut­zer­freund­li­che Tools sen­ken wei­ter­hin die Ein­stiegs­hürde für die Daten­tech­nik. Die zuneh­mende Ver­ein­fa­chung von Daten­tools und die Ent­ste­hung und Doku­men­ta­tion von Best Prac­ti­ces bedeu­tet, dass Data Engi­nee­ring immer „unter­neh­mens­ge­rech­ter“ wird. Dies ermög­licht es Daten­in­ge­nieu­ren, die an neuen Werk­zeu­gen arbei­ten, Mög­lich­kei­ten in den Abs­trak­tio­nen von Daten­ma­nage­ment, Data­Ops und all den ande­ren Unter­strö­mun­gen des Data Engi­nee­ring zu finden.

Schluss­fol­ge­rung

Die­ses Buch ist ein unver­zicht­ba­res Hilfs­mit­tel in der sich stän­dig wei­ter­ent­wi­ckeln­den Welt der Daten­tech­nik. Es ver­mit­telt das grund­le­gende Ver­ständ­nis, das man braucht, um im Data Engi­nee­ring erfolg­reich zu sein. Als nächs­tes plane ich, Desig­ning Data-Inten­sive Appli­ca­ti­ons von Mar­tin Klepp­mann zu lesen.

Wenn Sie dem Data Engi­nee­ring Things Book Club noch nicht bei­getre­ten sind, tun Sie es bitte! Die­ses Buch ist das erste Buch, das wir lesen wer­den, und im August wird es eine Ver­an­stal­tung geben.

Quelle: medium.com