olivlawolivlaw

Din cărți

Lecția 27 · La ce să fii atent: depozitele nu mor de tehnologie, mor de lipsa unui model, a unui proprietar și a unui utilizator.

Frederick P. Brooks Jr. · The Mythical Man-Month · 1975 · The Mythical Man-Month (1975), cap. 9 — Ten Pounds in a Five-Pound Sack2 minute de citit
„Arată-mi diagramele tale de flux și ascunde-ți tabelele, și voi rămâne nedumerit. Arată-mi tabelele, și de obicei nu voi mai avea nevoie de diagrame; vor fi evidente.”Frederick P. Brooks Jr. · The Mythical Man-Month · 1975 · The Mythical Man-Month (1975), cap. 9 — Ten Pounds in a Five-Pound Sack

Un tabel bine numit și bine cheiat e cea mai bună documentație pe care o vei scrie vreodată.

Brooks spunea că tabelele explică sistemul; într-un depozit, tabelele sunt sistemul. Prima cauză de eșec e lipsa modelului: sursele copiate una lângă alta și numite „depozit”, fără fapte și dimensiuni, fără o definiție comună pentru „client” sau „venit” — deci trei rapoarte cu trei cifre. A doua e lipsa proprietarului: seturi fără cineva care răspunde de ele, fără teste, unde o coloană redenumită la sursă trece neobservată o lună. A treia e lipsa utilizatorului: un depozit construit „pentru când o să avem nevoie”, în loc de o decizie concretă de luni dimineață. Restul e o listă de verificat, pe scurt. Cheia surogat și cea naturală confundate, join-uri care multiplică rânduri. Fusuri orare și monede amestecate în aceeași coloană. Ora evenimentului confundată cu ora încărcării. NULL-ul care dispare din agregări și din join-uri fără să anunțe. Interogări nemărginite într-un sistem plătit pe citire. Date personale pe fiecare rând, fără seif și fără termen. Streaming acolo unde o încărcare zilnică era de ajuns. Și o documentație care lipsește — deși, cum spune Brooks, un tabel bine numit și bine cheiat e cea mai bună documentație pe care o vei scrie vreodată.

Brooks a mutat atenția de la diagrame la tabele. Duci ideea cu un pas mai departe: un tabel poate fi citit ca un interogatoriu. Dacă numele coloanelor se contrazic între două tabele, modelul lipsește. Dacă nimeni nu poate spune cine a decis că prețul e fără TVA, proprietarul lipsește. Dacă nimeni nu rulează interogarea aceea de două ori, utilizatorul lipsește. Ia un exemplu obișnuit: facturile gospodăriei. Dacă tu și partenerul notați cheltuielile în același fișier, dar una scrie „mâncare” și celălalt „supermarket”, veți descoperi la final de lună că nu știți cât ați cheltuit de fapt. Fișierul există; modelul comun nu. Așa arată un depozit fără model, văzut din afară. Întrebarea practică devine: cine întreabă tabelul, și ce decide cu răspunsul?

De ce contează Nicio unealtă nu compensează un model lipsă, un set fără proprietar sau un depozit fără utilizator. Toate trei se văd în tabele, dacă te uiți.

De ce eșueazădepoziteleFără model: tabelelecopiază sursa, nuFără proprietar: nimeninu observă când mintFără utilizator:construit pentru
Trei lipsuri, niciuna tehnologică.
Deschide pe YouTube ↗

← Vezi tot fluxul