- 90päivää aktiivinen oston jälkeenactive_window_days
- 180päivää ilman ostoa ennen poistumaachurn_after_days
- 4error-tason tarkistusta historiallejoka ajossa
- 1asiakasversio myyntiriviä kohdenmuuten dbt-testi epäonnistuu
Versiot, ei päällekirjoitusta
Jos kysytte ”viime vuosineljänneksen aktiivisia asiakkaita” kahdesti kuukauden välein, alusta, joka kirjoittaa asiakkaan attribuutit suoraan yli, voi antaa kaksi eri vastausta. Tässä attribuutti sen sijaan versioidaan (SCD-tyyppi 2). Tässä aineistossa muuttuva attribuutti on asiakkaan maa.
Uusi versio alkaa vain, kun arvo todella eroaa edellisestä. Saman arvon näkeminen uudelleen ei muuta mitään, eikä puuttuvaa arvoa koskaan tulkita muutokseksi. Jokainen versio on voimassa havaintohetkestä seuraavan version alkuun; nykyisellä versiolla ei ole loppua.
Neljä havaintoa yhden asiakkaan maasta: United Kingdom, uudelleen United Kingdom, tyhjä arvo ja sitten France. Vain muutos arvoon France aloittaa uuden version. Versio 1 on voimassa ensimmäisestä havainnosta siihen asti, kun France havaitaan; versio 2 on voimassa siitä eteenpäin ja on nykyinen versio.
Jokainen myynti liitetään versioon, joka oli voimassa myynnin hetkellä, joten viime vuosineljänneksen raportti säilyttää viime vuosineljänneksen maan senkin jälkeen, kun asiakas muuttaa.
Tila ostopäivistä
Aktiivinen, passiivinen ja poistunut eivät ole lippuja, joita joku asettaa raportissa. Ne johdetaan ostopäivistä ja kahdesta raja-arvosta, jotka ovat tiedostossa config/customer_status.toml. Osto aktiivisen jakson sisällä vain pidentää sitä; osto poistuman jälkeen aloittaa uuden aktiivisen jakson, joka merkitään uudelleenaktivoitumiseksi, ja aiemmat tilat säilytetään, jotta uudelleenaktivoitumiset voidaan laskea ajan mittaan.
active_window_days = 90 · churn_after_days = 180 · config/customer_status.tomlKun asiakas ostaa päivänä d, hän on aktiivinen päivään d plus 90 asti, passiivinen päivään d plus 180 asti ja poistunut siitä eteenpäin seuraavaan ostoon asti. Poistuneen asiakkaan osto merkitään uudelleenaktivoitumiseksi. Aktiivisen tai passiivisen asiakkaan osto vain aloittaa uuden aktiivisen jakson.
Kun raja-arvoa muutetaan ja ajo toistetaan, koko historia rakennetaan uudelleen samalla tavalla. Tila lasketaan jokaiselle asiakkaalle uudelleen joka ajossa, joten myöhässä saapuva osto käsitellään ilman erikoistapauksia, ja tiloja ilmoitetaan vain datan viimeiseen päivään asti: malli ei koskaan väitä asiakkaan poistuneen datan päättymisen jälkeen.
Historian tarkistusportit
Historiataulut tarkistetaan ennen kuin mikään lukee niitä. Kaikkien neljän tarkistuksen vakavuustaso on error: epäonnistuminen pysäyttää ajon. Sen jälkeen dbt-testi varmistaa liitoksen, josta jokainen raportti riippuu.
Silver-kerroksen asiakashavainnoista rakennetaan versioitu historia. Sille ajetaan neljä error-tason tarkistusta: yksilöllinen avain asiakasta ja voimassaolon alkupäivää kohden, täsmälleen yksi nykyinen versio asiakasta kohden, yhtenäiset aikavälit ilman aukkoja tai päällekkäisyyksiä sekä positiivinen aikavälin pituus. Sen jälkeen dbt-testi liittää jokaisen myyntirivin asiakasversioon, joka oli voimassa myynnin hetkellä, ja epäonnistuu, jos jokin rivi osuu muuhun kuin täsmälleen yhteen versioon.
- SilverAsiakashavainnotJokainen kerta, kun asiakas nähdään, ja tuolloin nähdyt attribuutit.
- silver.
customer_ observation
- silver.
- RakennusVersioitu historiaVersio alkaa vain todellisesta muutoksesta.
- valid_
from - valid_
to - is_
current
4 × errorpysäyttää ajon - valid_
- TarkistusAikavälien portitYksilöllinen avain · yksi nykyinen versio · yhtenäinen · positiivinen pituus.dbt-testiepäonnistuu, jos osumia ≠ 1
- GoldMyynti ↔ versioJokainen myyntirivi liitetään täsmälleen yhteen versioon myynnin hetkellä.
- dim_
customer - fct_
transaction_ line
- dim_