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 |