Le format Parquet pour la diffusion de données

Un choix technique au service des utilisateurs

Cédric Bobinec

Insee, Pôle Didoc

Lino Galiana

Insee, Direction des statistiques démographiques et sociales

26 novembre 2025

Contexte

  • Destinés à des utilisateurs avancés:
    • Construire d’autres croisements ou regroupements que ceux proposés sur insee.fr
    • Des précautions d’emploi à respecter (pondérations)

Avant Parquet: le recensement de la population (RP)

  • Jusqu’à 100 variables et 25 millions de lignes
  • Diffusion en CSV zippés ou DBase (format propriétaire)

Exemple: Recensement de la Population

Enjeux

  • Plusieurs approches pour diffuser des données:
    • Fichier vs API
  • Le choix d’un mode de diffusion répond à un arbitrage entre plusieurs critères :
    • Public cible
    • Finalité (traitement, analyse, diffusion)
    • Volumétrie
    • Interopérabilité

Limites des formats usuels

  • Les formats usuels (CSV, JSON, XML) sont utiles pour :
    • Le traitement de faibles volumes de données
    • La diffusion de données simples
  • Limités pour le traitement de données volumineuses ou complexes
    • Non-compressés : fichiers lourds
    • Orientés ligne : peu adaptés aux traitements analytiques
    • Pas de métadonnées : problèmes à la lecture

Parquet: quel avantage ?

  • Un format interopérable :
    • Très bien intégré aux outils des utilisateurs experts (, ou grâce à Arrow et DuckDB)
  • Un format optimisé :
    • Lecture et traitement du fichier accélérés
  • Un format fiable :
    • Données conformes à l’intention du producteur…

Quel gain de confort pour les utilisateurs ?

Pour en savoir plus, formation de l’Insee aux bonnes pratiques et

Un guide pour accompagner la diffusion

  • Accompagner les utilisateurs avancés ;
  • Donner envie à de nouveaux utilisateurs d’explorer ;
  • Illustrer la richesse des données avec des exemples ;
  • Créer un guide modifiable de manière contributive ;
  • Faire comprendre que ce choix technique innovant est au service du confort des utilisateurs.

Des exemples s’appuyant sur les outils des utilisateurs

Classer les départements en fonction du nombre de centenaires recensés

individus_recenses DEPT
1 334 75
1 175 13
963 69
952 06
duckdb.sql(
"""
SELECT
  SUM(IPONDI) AS individus_recenses,
  DEPT
FROM table_individu
  WHERE AGED >= 100
GROUP BY DEPT
ORDER BY individus_recenses DESC
"""
)
query <- paste0(
  "SELECT SUM(IPONDI) AS individus_recenses, DEPT ",
  "FROM table_individu ",
  "WHERE AGED >= 100 ",
  "GROUP BY DEPT ",
  "ORDER BY individus_recenses DESC"
)
dbGetQuery(con, query)
table_individu %>%
  filter(AGED >= 100) %>%
  group_by(DEPT) %>%
  summarise(individus_recenses = as.integer(sum(IPONDI)), .groups = "drop") %>%
  arrange(desc(individus_recenses))
```{ojs}
db.query(
`
SELECT
  SUM(IPONDI) AS individus_recenses,
  DEPT
FROM table_individu
  WHERE AGED >= 100
GROUP BY DEPT
ORDER BY individus_recenses DESC
`
)
```

Parquet fin 2025

  • Quelques bonnes pratiques à mettre en oeuvre:
    • Optimiser les types des variables, trier les observations…
    • Mauviere (2024) donne de nombreux conseils utiles.

Conclusion: quelles perspectives pour la diffusion de données ?

  • Un complément aux API de données
    • Approche simple et efficace pour la récupération de données brutes
  • Permet des alternatives à Shiny ou Streamlit pour les portails de dataviz
    • Des dataviz complexes sur des serveurs statiques avec DuckDB 🦆 dans le navigateur

Après Parquet: le recensement de la population (RP)

Retours utilisateurs après la première diffusion du RP en Parquet (fin 2023)

Références

Mauviere, Eric. 2024. « Comment bien préparer son Parquet ». 16 mai 2024. https://www.icem7.fr/outils/comment-bien-preparer-son-parquet/.