- 1 067 371laskuriviä lähteessäkaksi välilehteä, joulukuu 2009 – joulukuu 2011
- SHA-256kiinnitetty lähdearkistomuuttunut lähdetiedosto keskeyttää haun
- 3vaihetta ajetaan CI:ssä uudelleen idempotenssin todistamiseksiBronze, Silver, asiakashistoria
- 4kerrosta laatuporttejahylätyt rivit karanteeniin raakatietueen kanssa
Päästä päähän
Yksi Databricks-ajo käsittelee kerrokset järjestyksessä, ja kalenteri, asiakashistoria ja simuloidut kampanjat rakennetaan rinnakkain Silver-kerroksesta. Jokainen vaihe kirjaa ajonsa tauluun ops.pipeline_runs ja tarkistuksensa tauluun ops.dq_results.
Haku lataa julkisen arkiston ja tarkistaa sen koon ja SHA-256-tarkistussumman. Bronze tallentaa jokaisen sarakkeen tekstinä alkuperätietoineen, kerran tiedostoa kohden. Silver soveltaa kanonista mallia yhdellä atomisella MERGE-operaatiolla entiteettiä kohden error-tason laatuporttien takana ja siirtää hylätyt rivit karanteeniin. Gold rakennetaan dbt:llä, mukaan lukien kalenteri-, asiakashistoria- ja kampanjataulut, ja se testataan Silveriä vasten. Vienti kirjoittaa Parquet-tiedostot ja täsmäytyssummat BI-käyttöön.
- HakuKiinnitetty latausKoko ja SHA-256 tarkistetaan, kolme uudelleenyritystä, atominen manifesti.
- landing/
koko + SHA-256haku epäonnistuu - landing/
- BronzeSellaisenaanJokainen sarake tekstinä alkuperätietoineen; jo sisäänluettu tiedosto ohitetaan.
- bronze.
*
rivimääräterror pysäyttää ajon - bronze.
- SilverKanoninen malliYksi atominen MERGE entiteettiä kohden, porttien takana ennen kirjoitusta ja sen jälkeen.
- transaction_
line - customer
- product
- quarantine
laatuportit→ karanteeni - transaction_
- GoldFaktat, dimensiot, martitdbt-mallit ja -testit sekä kalenteri-, asiakas- ja kampanjataulut.
- fct_
transaction_ line - dim_
date - mart_
*
täsmää Silveriindbt-testi - fct_
- VientiPower BI:lleParquet sekä summat, jotka Power BI:n semanttisen mallin on toistettava täsmälleen.
- *.
parquet - reconciliation.
json
- *.
Data
UCI Online Retail II: brittiläinen verkkokauppias, joka myy lahjatavaroita ja jonka asiakkaista monet ovat tukkuostajia. Kaksi välilehteä, joissa on 525 461 ja 541 910 riviä, kattavat ajan 1.12.2009–9.12.2011. Ne ovat päällekkäin yhdeksän päivän ajalta, joten 22 523 riviä esiintyy molemmissa. Kunkin rivin toinen esiintymä poistetaan kaksoiskappaleena, jotta riviä ei lasketa kahdesti. Viidesosasta neljäsosaan riveistä puuttuu asiakastunnus: nämä rivit lasketaan silti myyntiin mutta eivät asiakasmittareihin.
Laatuportit
Kaksi vakavuustasoa ja yksi sääntö: error pysäyttää dataputken, warn kirjataan ja ajo jatkuu. Validoinnissa hylättyjä rivejä ei pudoteta hiljaa: ne siirtyvät tauluun silver.quarantine raakatietueen kanssa, joten jokainen aukko voidaan selittää.
Bronze tarkistaa, että rivimäärät vastaavat ladattua tiedostoa ja lähderivit ovat yksilöllisiä, ja varoittaa täsmälleen samoista riveistä. Silver tarkistaa ennen kirjoitusta, että avaimet ovat yksilöllisiä, pakolliset kentät ovat mukana, rivityypit ovat kelvollisia, summa on määrä kertaa hinta ja myyntimäärät ovat positiivisia; kirjoituksen jälkeen se tarkistaa, että viittaukset ovat olemassa ja ettei Silverissä ole minkään tiedoston osalta enempää rivejä kuin Bronzessa. Rivit, joilta puuttuu tunniste tai joiden arvoja ei voi jäsentää, siirtyvät karanteeniin. Goldin dbt-testit täsmäyttävät nettomyynnin ja rivimäärät Silveriin.
Käyttöönotto ja CI
Alusta on määritelty koodina. Terraform luo tallennustilan, Databricks-työtilan ja Unity Catalogin skeemoineen ja käyttöoikeuksineen. Databricks Asset Bundle määrittelee ajon kehitys- ja tuotantoympäristöön; tuotannossa se ajetaan palvelutunnuksella (service principal). Jokainen muutos käynnistää kolme CI-työtä, joista viimeinen ajaa koko dataputken oikealla aineistolla.
Jokaisessa muutoksessa ajetaan kolme CI-työtä. Python-tarkistukset: lint, muotoilu, testit ja clean room -skannaus. Infrastruktuuri ja tietoturva: salaisuuksien skannaus koko historiasta, Terraformin muotoilu ja validointi sekä bundlen skeemavalidointi. Dataputki oikealla datalla: jokainen vaihe hausta vientiin, ja Bronze, Silver ja asiakashistoria ajetaan uudelleen idempotenssin todistamiseksi. Käyttöönotossa on Terraform-moduulit tallennustilalle, Databricks-työtilalle ja Unity Catalogille sekä Databricks Asset Bundle, jossa on dev- ja prod-kohteet.