DBT Instantáneas no con los registros únicos de la fuente

0

Pregunta

Estoy interesado en saber si alguien de aquí ha venido a través de una situación en la que la fuente no es siempre única cuando se trata con instantáneas en el DBT.
He de datos lago donde llegan los datos en un anexar sólo la base. Cada vez que la fuente se actualiza, una nueva registrado es creado en la respectiva tabla de datos en el lago.
Por el momento el DBT solución que se corrió, mi origen podría tener más de 1 fila con el código único de identificación como de los datos ha cambiado más de una vez desde la última ejecución.
Idealmente, me gustaría actualizar los respectivos dbt_valid_to columnas de la instantánea de la tabla con los primeros updated_at registro de la fuente y, posteriormente, agregar los registros nuevos a la instantánea de la tabla de fabricación de la última updated_at registro de la actual. Sé cómo conseguir esto utilizando las funciones de la ventana, pero no sabe cómo manejar esta situación con dbt. Me pregunto si alguien se ha enfrentado a este mismo 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                 | 
dbt google-bigquery
2021-11-24 00:37:24
2

Mejor respuesta

0

Estándar instantáneas operan bajo la suposición de que la tabla de origen que estamos instantáneas están siendo modificados sin el almacenamiento de la historia. Esto es opuesto a la conducta que tenemos aquí (básicamente la tabla de origen que estamos instantáneas no es nada más que un anexar única de registro de eventos) - lo que significa que podemos obtener con sólo el uso de un viejo y aburrido incremental modelo para lograr el mismo DREPANICITOSIS2 resultado que las instantáneas nos dan.

Tengo algo de código de ejemplo aquí donde yo hice eso que puede ser de alguna ayuda https://gist.github.com/jeremyyeo/3a23f3fbcb72f10a17fc4d31b8a47854

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

Estoy de acuerdo en que sería muy conveniente si dbt instantáneas tenía una estrategia que podría implicar la deduplicación, pero no se admite en la actualidad.

La más sencilla de evitar que sería una etapa de vista aguas abajo de la fuente que tiene la función de la ventana que usted describe. Entonces usted instantánea que ver.

Sin embargo, veo potencial para una nueva instantánea de la estrategia que se encarga de anexar sólo fuentes. Tal vez le gustaría pasearme por la dbt Instantánea docs y estrategias de código fuente en las estrategias existentes para ver si le gustaría hacer una nueva!

2021-11-24 01:37:58

En otros idiomas

Esta página está en otros idiomas

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