gip-inclusion / data-inclusion Goto Github PK
View Code? Open in Web Editor NEWdata·inclusion aggrège les données de l'insertion sociale et professionnelle
Home Page: https://api.data.inclusion.beta.gouv.fr/api/v0/docs
License: MIT License
data·inclusion aggrège les données de l'insertion sociale et professionnelle
Home Page: https://api.data.inclusion.beta.gouv.fr/api/v0/docs
License: MIT License
Conversion en html via https://github.com/showdownjs/showdown
Actuellement on ne mappe que la L4 (numéro, rue), mais près de 1500 adresses ont également des mentions de ZI, d'étage, de BP, etc.
En priorité les sources qui sont collectées régulièrement
So far I haven't succeeded in properly reading an Excel file with pd.read_excel
and an object downloaded from S3.
Here is what I've tried:
with boto3 client
obj: dict = boto3_client.get_object(
Bucket=os.environ['SCALEWAY_BUCKET'],
Key=s3_filepath)
df = pd.read_excel(obj['Body'], dtype=str, engine='openpyxl')
Output
--> 516 self.handles.handle.seek(0)
517 try:
518 self.book = self.load_workbook(self.handles.handle)
UnsupportedOperation: seek
Même si nous avons expérimenté la siretisation automatique, ce n'est pas une feature proposée systématiquement aux données en entrée.
Un jour peut-être !
Lorsque les données seront en prod (semaine du 27 février)
À faire sur Grist, à présenter au rdv partenaires du jeudi.
PythonVirtualenvOperator
ou DockerOperator
Afin d’autonomiser les producteurs de données et passer moins de temps à traiter leurs données, nous leur mettons à disposition des tableaux Grist.
Il est temps d’importer ces tableaux dans notre base de données.
Actuellement, les tâches Airflow :
Cette stratégie n'est pas optimale car les nouvelles tentatives ont peu de chance de réussir car trop rapprochées.
Je suggère donc :
retry_exponential_backoff = True
profiles.yml
Plutôt en termes de bonnes pratiques
Principalement les requêtes d'extraction et de géocodage :
https://github.com/betagouv/data-inclusion/tree/main/pipeline/src/data_inclusion/scripts/tasks
Par exemple:
./dags/settings.py
-> ./dags/data_inclusion/settings.py
Ceci afin d'éviter les conflits d'import dans les dags.
Un service est présent dans Dora : https://api.dora.fabrique.social.gouv.fr/api/v1/services/a273c324-ef67-42f7-b2f0-a834405c711a/
Mais absent de nos données. Le soucis a été rapporté par mail par Collectif Emploi.
int__validated_services
et int__validated_structures
filtre déjà les lignes invalides. Il s'agit d'ajouter un ou plusieurs modèles pour lister les erreurs de validation.
dbt_metabase
pourrait permettre de synchroniser les modèles (doc, nom, etc.) avec metabaseLes données du réseau alpha sont récupérées via un notebook qui exécute un script Scrapy.
Les données sont hébergées de manière statiques sur S3 (elles ne sont pas régulièrement mises à jour)
Les données de la Base de Ressources Partenariale ODSPEP combinent structures et services : chaque ligne de la BRP contient à la fois les données du service et de la structure qui le propose.
Notre process doit donc :
Actuellement, 1. est OK, mais 2. n'est pas testé et 3. est à refaire.
Nous dépendons à présent des données du COG de l'INSEE pour labelliser les données ODSPEP (services.zone_diffusion_nom
).
Afin de faciliter l'import de ces données, une fois par an, nous avons besoin d'un DAG.
par exemple, une source n'est plus présente dans le jeu de données "final"
seeds : https://docs.getdbt.com/docs/build/seeds
Ces données vont nous permettre de facilement labellisé les données géographiques pour lesquelles nous avons un code :
Pour les autres nous devrons chercher ailleurs :
(après réflexion je vais plutôt rédiger mes issues en 🇫🇷 )
La médiation numérique rapporte qu’ils publient les informations de prise de RDV dans le jeu de données services qu’il publie sur data.gouv.fr : https://www.data.gouv.fr/fr/datasets/lieux-de-mediation-numerique-sur-le-territoire-national-fournis-par-conseiller-numerique-1/
Mais cette information ne se retrouve pas sur notre Open Data.
Pour qu'un email soit envoyé en cas d'échec dans n'importe quel DAG :
AIRFLOW__EMAIL__DEFAULT_EMAIL_ON_FAILURE
sur True
email_on_failure
(booléen)The sources step is partially implemented.
Either
Clean is:
Remember: all the data we deal with in dbt must be in an intermediate table, not in the source table.
Exemples de noms de structures problématiques, qui peuvent potentiellement limiter le matching et la déduplication (les guillemets proviennent des données) :
Donc il faudrait :
ODS PEP RES_PARTENARIALE
table has a PERIMETRE_GEO_RSP
column that indicates the range of the availability of the service. From the documentation:
0 - National
1 - Régional (liste des régions dans la table DD009_REGION_RESSOURCE)
2 - Direction territoriale OFII (liste des OFII dans la table DD009_DIR_TERRITORIALE_OFII)
3 - Département (liste des départements dans la table DD009_DEPARTEMENT_RESSOURCE)
4 - Bassin d'emploi (liste des bassins dans la table DD009_BASSIN_RESSOURCE)
5 - Commune (liste des communes dans la table DD009_COMMUNE_RESSOURCE)
Problem: the RES_PARTENARIALE
doesn't mention directly the place that would map with zone_diffusion_code
(commune, département, etc.) and zone_diffusion_nom
, we must get it from the address of the structure.
To do:
ADRESSE
via the RES_PARTENARIALE.ID_ADR
(in sources or intermediate?)PERIMETRE_GEO_RSP
Ajout du document Grist dans /pipeline/settings.py
"origin": "grist"
datagouv nous a renvoyé une 500 sur un téléchargement du dataset hinaura, mais le résultat n'est pas vérifié et ne déclenche pas d'exception.
Il faudrait réutiliser ce snippet:
Découper notamment le dag main
e.g. pouvoir géocoder source par source
dbt
qui est évidemment le mieux adapté à notre usage.Les données ODSPEP sont converties au format data.inclusion à partir d'un format intermédiaire, une version normalisée de fichiers Excel envoyés en 2022.
Fichier Excel => format intermédiaire normalisé => data.inclusion
Afin de faciliter le chargement des données reçues en janvier 2023, nous convertissons ces données au même format normalisé. Ce format normalisé se compose de plusieurs fichiers :
Première étape : faire le mapping.
Champ cible | Champ source 2023 | Commentaire |
---|---|---|
ID_RES | RES_PARTENARIALE.ID_RES | |
LIBELLE_SERVICE | RES_PARTENARIALE.LIBELLE_COURT_RSP | |
DESCRIPTION_SERVICE | RES_PARTENARIALE.SERVICE_DESCRIPTION_RSP | |
STRUCTURE | RES_PARTENARIALE.NOM_STRUCTURE_RSP | |
SERVICE_RSP | RES_PARTENARIALE.SERVICE_RSP | |
ID_ADR | RES_PARTENARIALE.ID_ADR | |
L1_IDENTIFICATION_DEST_ADR | ADRESSE.L1_IDENTIFICATION_DEST_ADR | |
L2_IDENTITE_DEST_ADR | ADRESSE.L2_IDENTITE_DEST_ADR | |
L4_NUMERO_LIB_VOIE_ADR | ADRESSE.L4_NUMERO_LIB_VOIE_ADR | |
L3_COMPLEMENT_ADR | ADRESSE.L3_COMPLEMENT_ADR | |
L5_MENTION_ADR | ADRESSE.L5_MENTION_ADR | |
L7_PAYS_ADR | ADRESSE.L7_PAYS_ADR | |
LATITUDE_ADR | ADRESSE.LATITUDE_ADR | |
LONGITUDE_ADR | ADRESSE.LONGITUDE_ADR | |
EST_NORMALISEE_ADR | ADRESSE.EST_NORMALISEE_ADR | |
CODE_COMMUNE_ADR | ADRESSE.CODE_COMMUNE_ADR | |
CODE_POSTAL_ADR | ADRESSE.CODE_POSTAL_ADR | |
LIBELLE_COMMUNE_ADR | ADRESSE.LIBELLE_COMMUNE_ADR | |
DATE DERNIERE MAJ | RES_PARTENARIALE.DATE_DERNIERE_MODIF_RSP |
Définir la stratégie de tests pour ces sources
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.