Kursusel oli kokku 9 moodulit, kus iga juurde anti ka ports kohustuslikku kirjandust lugeda. Loomulikult sel ajal ma seda ei jõudnud lugeda, kuid võtan nüüd eesmärgiks kuu aega järjest lugeda. Vaatame, kuhu jõuame. Lugemine suvalises järjekorras.
dbt: What is dbt? moodulist 3: andmete integreerimine, annab kerge ülevaate transformatsioonitööriistast, mida kursusel kasutati.
dbt (data build tool) on transformatsiooni tööriist. Andmed peavad olema juba toodud sihtsüsteemi. dbt-ga saab neid muuta ja kihtidesse medaljoni arhidektuuri põhiselt jaotada. Kogu projekt saab kindla struktuuri - andmete päritolu (lineage), testid, mõõdikud ja andmehalduse reeglid (governance). Me saame ülevaate, kuidas on andmed omavahel seotud, mida andmed tähendavad ja kuidas muudatused neid mõjutavad.
- Andmete päritolu (linage): kust andmed tulevad ja kuidas need liiguvad ühest tabelist teise.
- Automaatsed testid, kas andmed vastavad ootustele, kui ei annab dbt vea.
- Milline peab olema mudeli väljund. Nt on meil order_id, mis peab olema int, stringi korral annab dbt vea.
- Mõõdikud kasutavad sama põhimõtet, nt käibemaksu arvutatakse sama moodi.
- Andmehaldus ehk reeglid, mis tagavad andmete usaldusväärsuse ja kvaliteedi.
NB! dbt sõnavara
Enne kui artikli lugemisega edasi läheme, on vaja täpsustada mõningast sõnavara, mida dbt kasutab. dbt mudel (model) tähendab tabelit või viewd (vaadet). Medaljoni arhidektuuri pronks, hõbe ja kuld asemel on kasutusel: staging (toorandmed), indermediate (puhastamine, muudatused) ja marts (äripoolele valmis kasutuseks). Mõtle neist kui kaustadest, kus vastava kihi failid asuvad.
Analoogne tarkvaraarendusele ja dbt keel
dbt kasutab oma töös tarkvaraarendusest tuttavaid põhimõtteid:
- versioonihaldus, kus muudatused ja kes need tegi salvestatakse Githubis. Vajadusel saab näiteks vanemat versiooni tagasivõtta.
- modulaarsus, kus suurem andmetöötlus jagatakse väiksemateks mudeliteks. Iga mudel täidab ühte konkreetset ülesannet, mis lihtsustab hooldamist ja uuendamist.
- CI/CD (Continuous Integration / Continuous Deployment) muudatuste automaatne kontroll ja juurutamine. Lihtsustatult tehakse mingi muudatus, kui see läbib automaatsed kontrollid, rakendatakse muudatust. Kui ei läbi teste, siis muudatus ei jõustu.
- dokumentatsiooni automaatne genereerimine
- sama dbt projekti saab kasutada erinevatel platvormidel (nt Snowflake, BigQuery)
Mis dbt eriliseks? Andmestikke saab luua SQL-iga, millega andmeid päritakse ja muudetakse. Et veelgi võimalusi laiendada, siis kasutatakse keeli:
- Jinja - mallide loomiseks, kus kasutusel muutujad, tingimused või korduvkasutatavad makrod.
- YAML - dokumentatsiooni, mudelite, konfiguratsioonide, testide kirjeldamiseks.
- dbt käsud - näiteks ref(), source().
dbt sobib andmetorus ainult transformatsiooni etappi. Muud etapid tuleb katta teiste tööriistadega.
Allikas: https://docs.getdbt.com/docs/introduction?version=2.0