Estou interessado em saber se alguém aqui já se deparar com uma situação em que a fonte não é sempre exclusivo ao lidar com instantâneos em DBT.
Eu tenho dados de um lago, onde os dados chegam em um acréscimo única base. Cada vez que a fonte é atualizada, um novo gravado é criado na respectiva tabela de dados lago.
Pelo tempo que o DBT solução é executado, a minha origem pode ter mais de 1 linha com o id exclusivo como os dados foram alterados mais de uma vez desde a última execução.
Idealmente, eu gostaria de atualizar o respectivo dbt_valid_to colunas a partir do instantâneo tabela com as primeiras updated_at registro de origem e, posteriormente, adicionar novos registros para o instantâneo tabela fazendo com que as últimas updated_at registro atual.
Eu sei como conseguir isso usando funções de janela, mas não tem a certeza de como lidar com essa situação com o dbt.
Gostaria de saber se alguém já enfrentou esse mesmo problema de antes.
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 |