betagouv / preuve-covoiturage

Registre de preuve de covoiturage
https://app.covoiturage.beta.gouv.fr
Apache License 2.0
34 stars 12 forks source link

Update du format de données de l'action d'export csv pour l'open data #1411

Closed P3rceval closed 1 year ago

P3rceval commented 3 years ago

On repart du format du dernier export réalisé (cf https://www.data.gouv.fr/fr/datasets/trajets-realises-en-covoiturage-registre-de-preuve-de-covoiturage/) On utilise l'action BuildExport

jonathanfallon commented 3 years ago

:warning: les lon/lat doivent être tronquées en fonction de la densité de population pour avoir un carroyage dynamique et assurer l'anonymisation des données !

jonathanfallon commented 3 years ago

Demande des opérateurs pour pouvoir faire des recoupements :

Voir la doc technique pour le schema

jonathanfallon commented 3 years ago

Mise à jour des colonnes operator_journey_id, operator_driver_id et operator_passenger_id dans trip.list.

La mise à jour est trop longue pour être passée dans une migration. Les requêtes sont exécutées via un one-off container et un script.

#!/bin/bash

# install db client
dbclient-fetcher postgresql 12

# export connection vars for PostgreSQL
export $(DATABASE_URL=$APP_POSTGRES_URL npx pgexplode)

# timestamp the start
date

# update operator_journey_id
psql -c 'update trip.list set operator_journey_id = aa.journey_id from acquisition.acquisitions aa where trip.list.journey_id = aa._id;'

# bench for first query
date

# update operator_driver_id and operator_passenger_id
psql -c "update trip.list tl set operator_driver_id = aa.payload#>>'{driver,identity,operator_user_id}', operator_passenger_id = aa.payload#>>'{passenger,identity,operator_user_id}' from acquisition.acquisitions aa where tl.journey_id = aa._id;"

# timestamp the end
date

Le script doit être lancé dans un container détaché (--detached) pour éviter les problèmes de timeout. Malheureusement, il n'est pas possible d'uploader le script (-f script.sh) vers le container avec le mode détaché. Solution : on upload le script sur un S3 public et on le lance via un wget dans le container.

scalingo -a pdc-prod r --detached "wget -q -O - https://my-s3-bucket/script.sh | bash"

Monitoring

scalingo -a pdc-prod logs -f | less -p one-off
nmrgt commented 2 years ago

@nicolas-viennot-beta on peut fermer ?

nicolas-viennot-beta commented 2 years ago

@P3rceval : est-ce ok pour toi de clore ce ticket ? (pas possible pour moi de le tester)

nmrgt commented 2 years ago

@P3rceval on peut fermer ?

github-actions[bot] commented 2 years ago

Ce ticket est marqué comme obsolète car cela fait 60 jours qu'il n'y a pas eu d'activité dessus. Retirez ce label ou ajoutez un commentaire sinon ce ticket sera fermé dans 5 jours.

github-actions[bot] commented 1 year ago

Ce ticket a été fermé car cela fait 5 jours qu'il a été marqué comme obsolète sans activité