DBT Momentky s nie jedinečné záznamy v zdrojovom

0

Otázka

Mám záujem vedieť, či niekto tu má niekedy narazili na situáciu, v ktorej zdrojom nie je vždy jedinečný, pri jednaní s snímky v DBT.
Mám údajov jazero, kde sa dáta príde na pridávať len základ. Zakaždým, keď je zdroj aktualizované, nové nahraté je vytvorený na príslušné tabuľky v údajovom jazero.
V čase DBT riešenie je bežal, môj zdroj by mohol mať viac ako 1 riadok s jedinečným id ako dátový zmenilo viac ako raz od poslednej spustiť.
V ideálnom prípade, by som chcel aktualizovať príslušné dbt_valid_to stĺpcov z snímku tabuľka s najskôr updated_at záznam zo zdroja a následne pridávať nové záznamy na snímku tabuľka takže najnovšie updated_at nahrať aktuálny. Viem, ako to dosiahnuť použitím funkcie okna, ale nie ste si istí ako zvládnuť takúto situáciu s dbt. Zaujímalo by ma, či niekto má stretávajú to rovnaký problém, pred.

Snapshot Table

| **id** |   **some_attribute** |   **valid_from**      |   **valid_to**          |
|  123   |      ABCD            |   2021-01-01 00:00:00 |    2021-06-30 00:00:00  | 
|  123   |      ZABC            |   2021-06-30 00:00:00 |      null               |

Source Table

|**id**|**some_attribute**|   **updated_at**    |
| 123  |   ABCD           | 2021-01-01 00:00:00 |-> already been loaded to snapshot
| 123  |   ZABC           | 2021-06-30 00:00:00 |-> already been loaded to snapshot
 -------------------------------------------
| 123  |   ZZAB           | 2021-11-21 00:10:00 |
| 123  |   FXAB           | 2021-11-21 15:11:00 |

Snapshot Desired Result

| **id** |   **some_attribute** |   **valid_from**      |   **valid_to**          |
|  123   |      ABCD            |   2021-01-01 00:00:00 |    2021-06-30 00:00:00  | 
|  123   |      ZABC            |   2021-06-30 00:00:00 |    2021-11-21 00:10:00  |
|  123   |      ZZAB            |   2021-11-21 00:10:00 |    2021-11-21 15:11:00  | 
|  123   |      FXAB            |   2021-11-21 15:11:00 |    null                 | 
dbt google-bigquery
2021-11-24 00:37:24
2

Najlepšiu odpoveď

0

Štandardné momentky fungovať za predpokladu, že zdrojová tabuľka sme snapshotting sú zmenené bez ukladanie histórie. Toto je v protiklade k správaniu máme tu (v podstate tabuľke zdroj sme snapshotting je nič viac než pridávať len denníka udalostí), čo znamená, že môžeme dostať preč s jednoducho pomocou nudné staré incremental model na dosiahnutie rovnakého SCD2 výsledok, ktorý momentky nám.

Mám nejaké vzorky kód tu, kde som robil len to, že môžu byť niektoré pomôcť, https://gist.github.com/jeremyyeo/3a23f3fbcb72f10a17fc4d31b8a47854

2021-11-30 22:19:55
-1

Súhlasím s tým, že by bolo veľmi vhodné, ak dbt momentky mal stratégiu, ktorá by mohla zahŕňať deduplication, ale to nie je podporovaná dnes.

Najjednoduchší obísť by etape výhľad po prúde zdroj, ktorý má okno funkcie, ktoré popisujete. Potom si snímky, ktoré chcete zobraziť.

Však vidím potenciál pre nový snímok stratégie, ktoré rukoväte pridávať iba zdrojov. Možno by ste chceli preštudovať na dbt Snímky, dokumenty a stratégie source kód na existujúce stratégie vidieť, ak by ste chceli, aby nový!

2021-11-24 01:37:58

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................