Mi interessa sapere se qualcuno qui ha mai incontrato una situazione in cui la fonte non è sempre unico quando si tratta con le istantanee in DBT.
Ho un dati lago in cui i dati arrivano in una aggiungere solo base. Ogni volta che la fonte è aggiornato, una nuova registrazione viene creata la relativa tabella dati lago.
Dal momento in cui il DBT soluzione è ran, la mia fonte potrebbe avere più di 1 riga con id univoco, in quanto i dati sono cambiati più di una volta dall'ultima esecuzione.
Idealmente, mi piacerebbe aggiornare i rispettivi dbt_valid_to colonne di snapshot tabella con i primi updated_at registrare da sorgente e successivamente aggiungere il nuovo record per la snapshot tabella: le più recenti updated_at record corrente.
Io so come ottenere questo utilizzando la finestra di funzioni, ma non sono sicuro di come gestire la situazione con dbt.
Mi chiedo se qualcuno ha affrontato questo stesso problema di prima.
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 |