DBT Snímky s unikátní záznamy ve zdroji

0

Otázka

Mám zájem vědět, jestli někdo někdy narazil na situaci, kdy zdroj není vždy jedinečné při jednání s snímky v DBT.
Mám data lake, kde data dorazí na přidávací pouze základ. Pokaždé, když zdroj je aktualizován, nové zaznamenán je vytvořen na příslušné tabulce v datovém jezeře.
Když DBT řešení je běžel, můj zdroj by mohl mít více než 1 řádek s jedinečným id jako data změnila o více než jednou, protože v poslední běh.
V ideálním případě bych chtěl aktualizovat příslušné dbt_valid_to sloupce ze snímku tabulka s nejstarší updated_at záznam ze zdroje a následně přidat nové záznamy na snímku tabulka výrobu poslední updated_at záznam stávající. Vím, jak tohoto dosáhnout pomocí funkcí okna, ale nejste si jisti, jak zvládnout takovou situaci s dbt. Zajímalo by mě, jestli má někdo čelí stejný problém předtím.

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

Nejlepší odpověď

0

Standardní snímky provozovat za předpokladu, že zdrojové tabulky jsme snapshotting jsou změněny bez ukládání historie. To je na rozdíl od chování, máme zde (v podstatě zdrojové tabulky jsme snapshotting není nic jiného, než připojit pouze protokolu událostí) - což znamená, že může dostat pryč s jednoduše pomocí nudný incremental model k dosažení stejného SCD2 výsledek, který snímky nám.

Mám nějaký ukázkový kód, tady, kde zrovna jsem, že to může být trochu pomoci https://gist.github.com/jeremyyeo/3a23f3fbcb72f10a17fc4d31b8a47854

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

Souhlasím s tím, že by bylo velmi výhodné, pokud dbt snímky měl strategii, která by mohla zahrnovat deduplikace, ale to není podporován dnes.

Nejjednodušší práci kolem by bylo jeviště, pohled po proudu od zdroje, který má okno funkce popsat. Pak můžete snímek zobrazit.

Nicméně, vidím potenciál pro nový snímek strategie, která zpracovává připojit pouze zdrojů. Možná chcete prohlédnout dbt Snímek dokumenty a strategie zdrojový kód na stávající strategie vidět, pokud byste chtěli, aby se nové!

2021-11-24 01:37:58

V jiných jazycích

Tato stránka je v jiných jazycích

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