Skip to content

Commit

Permalink
docs: add airflow step to docs about filling meter data gaps
Browse files Browse the repository at this point in the history
  • Loading branch information
diegoquintanav committed Nov 25, 2024
1 parent c4f15dd commit 0be90a8
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions docs/desenvolupadors/2024-11-25-fill-missing-signals-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ description: Passes a seguir a l'hora d'omplir forats de dades de senyals manual
lang: ca_ES
tags: [pipe, jardiner, forats]
date: 2024-11-25
slug: omplir-forats-dades-dset

---
# Omplir forats de dades de senyals

Actualment, el sistema de monitoratge de senyals de les plantes pot tenir forats de dades. Aquests forats poden ser deguts a problemes de comunicació, errors en la recollida de dades, etc.
Expand All @@ -24,6 +24,8 @@ Segons el escenari, el procediment a seguir és diferent.

## Dades de comptadors

### Descripció del script d'ingesta {#script-ingesta}

Actualment les dades de comptadors es llegeixen diàriament amb un DAG d'Airflow ([aqui](https://airflow.somenergia.coop/dags/dset_reader_meters_dag_v2/)). Aquest DAG llegeix executa un script que es pot trobar a [aquí](https://gitlab.somenergia.coop/et/somenergia-plant-reader/-/blob/main/scripts/read_dset_meters.py).

De manera resumida, el script fa el següent:
Expand All @@ -37,6 +39,17 @@ De manera resumida, el script fa el següent:
4. Aixó té un _caveat_ que afecta a forats: si hi ha un forat però tenim dades més recents, no les podrem detectar per que ja tenim una mesura més recent.
5. Per això, si hi ha un forat, s'ha de fer manualment.


### Resum

Tot el procediment es pot resumir de la manera següent

1. Buscar i eliminar dades en el rang que es vol reomplir les dades
2. Tornar a descarregar les dades amb el [script d'ingesta](#script-ingesta)
3. Aturar DAGs d'Airflow que materialitzen dades en temps real amb `dbt
4. Tirar `dbt` amb `--full-refresh`
5. Tornar a activar DAGs desactivats

### Esborrar i tornar a llegir les dades

Per omplir forats de dades de comptadors, s'ha de seguir el següent procediment:
Expand Down Expand Up @@ -103,6 +116,10 @@ Per omplir forats de dades de comptadors, s'ha de seguir el següent procediment
5. Si les dades s'han omplert correctament, ja hauràs acabat. Si no, revisa els logs del script per veure si hi ha hagut algun error.

### Aturar DAGs que materialitzen dades amb dbt {#aturar-dags-materialitzacio}

Actualment hi ha un [DAG d'Airflow](https://airflow.somenergia.coop/dags/dset_materialize_dag_v1/) que está constantment materalitztant les últimes capes del pipe per que els models finals vagin més rápid. Abans de tocar les dades amb `dbt` al següent pas, caldrà aturar aquest DAG per que en altre cas la db bloquejarà un dels dos processos.
### Executar `dbt --full-refresh`
Amb els forats omplerts, s'han de refer i propagar calculs fets amb dbt al passat amb les dades noves. Com no fem aquest calcul cada vegada al ser molt intensiu, només el fem per els últims dos dies de dades. Aquesta lógica es troba [aquí](https://gitlab.somenergia.coop/et/somenergia-jardiner/-/blob/0364c13c43983bdc0bd931f8cd33100ebfb3eee3/dbt_jardiner/models/jardiner/intermediate/dset/int_dset_responses__values_incremental.sql#L34)
Expand All @@ -114,4 +131,8 @@ Per això, s'ha de fer un `dbt --full-refresh` per que dbt torni a calcular les
dbt build -s tag:jardiner --store-failures --full-refresh --target prod
```
Aquesta tasca és molt intensiva i pot trigar molta estona. Per això, s'ha de fer amb cura i en un moment de baixa càrrega.
Aquesta tasca és molt intensiva i pot trigar molta estona. Per això, s'ha de fer amb cura i en un moment de baixa càrrega.

### Activat DAGs que materialitzen dades amb dbt {#activar-dags-materialitzacio}

No oblidar-se de activar els DAGs que s'han desactivat en [les passes anteriors](#aturar-dags-materialitzacio)

0 comments on commit 0be90a8

Please sign in to comment.