2. Données tabulaires

Les données tabulaires, c’est-à-dire celles pouvant être représentés sous forme d’un tableau comportant des lignes et des colonnes, peuvent être stockées au moyen de différents formats de fichiers. 

2.1 Format CSV (fortement recommandé)

Aux fins de diffusion en données ouvertes tabulaires sur le portail Données Québec, le format Comma-separated values (CSV) est le format recommandé. Le CSV est un format ouvert qui existe depuis les années 1970, standardisé en 2005 selon la norme RFC 4180. Il s’agit d’un format de texte brut dans lequel la première ligne désigne l’en-tête des colonnes. Les lignes suivantes correspondent à des enregistrements uniques où chaque colonne (champ) est un attribut spécifique de cet enregistrement. Les champs du fichier CSV sont délimités par un séparateur, traditionnellement la virgule.

Le format CSV est fortement recommandé.

Le CSV est largement utilisé pour stocker et échanger des données tabulaires de manière simple et efficace. C’est un format qui est lisible par pratiquement tous les logiciels, ce qui en fait un des formats les plus interopérables : éditeurs de texte (exemples : Bloc-notes, Notepad++, VS Code, Sublime Text), tableurs (exemples : Microsoft Excel, Google Sheets, LibreOffice Calc), bases de données (exemples : MySQL, PostgreSQL), langages de programmation (exemples : Python, R, JavaScript), logiciels comptables (Sage, QuickBooks, FreshBooks, Cegid), outils de BI, etc.

De plus, le portail Données Québec offre des fonctionnalités additionnelles pour les données diffusées en format CSV dont le poids est de moins de 300 Mo :

  • Il affiche automatiquement le contenu d’un fichier CSV dans une vue tabulaire où l’utilisateur du portail peut trier et filtrer les données;
  • Il permet de consulter ou d’extraire les données directement à partir de l’API de Données Québec.

 

Structure du CSV

Dans le but de simplifier l’interprétation des CSV et de faciliter leur interopérabilité, les diffuseurs doivent respecter les quelques règles suivantes :

  • la première ligne du fichier désigne l’en-tête des colonnes :
    • les en-têtes ne comportent pas de caractères spéciaux, d’accents ou d’espaces (exemple : utiliser « municipalite » plutôt que « municipalité »),
    • les minuscules sont à privilégier (exemple : utiliser « municipalite » plutôt que « Municipalite ».
    • la barre de soulignement est utilisée au lieu des espaces (exemple : utiliser « nom_municipalite » plutôt que « nom de la municipalité »;
  • les lignes suivantes donnent les valeurs des données (enregistrements);
  • les éléments de chaque colonne sont séparés par une virgule « , »;
    • Par souci d’uniformisation des données, le portail Données Québec recommande l’utilisation de la virgule (et non du point-virgule) comme séparateur. Le point, plutôt que la virgule, est utilisé pour les nombres décimaux.
  • les guillemets anglais «  » » sont utilisés pour délimiter les champs de texte pour éviter qu’une virgule dans du texte soit considérée comme un séparateur de colonne;
  • un retour de ligne indique la fin d’un enregistrement et le début du suivant.

 

Encodage

L’encodage en UTF-8 est nécessaire, car il prend en charge tous les caractères internationaux (accents français, caractères spéciaux, etc.). Cela permet d’éviter des problématiques d’encodage et de lecture des caractères spéciaux (exemple : « Ã© » à la place de « é »).

 

Outils de validation

Lors du téléversement du fichier CSV sur le portail Données Québec, un outil vérifie si les lignes directrices sont respectées. Un rapport est généré lorsque des incohérences sont relevées dans le fichier, indiquant les erreurs à corriger.

Il est également possible de valider le contenu d’un CSV à l’aide d’outils en ligne tels que CSV Lint : http://csvlint.io.

 

Exemple d’un fichier CSV conforme

Un fichier fictif donnant l’adresse de différents bureaux pourrait ressembler à ce qui suit, en format CSV.

services_offerts,capacite_pers,nom_bureau,adresse_bureau
Paiement seulement,200,Beauport,"425, boulevard Raymond"
Comptoir poste,20,Bourassa,"2456, route 125"
Paiement seulement,20,Centre de santé,"1300, route 199"
Tous les services,400,Centre de repos,"105, rue Blanchard"
Paiement seulement,20,Boulevard des Cèdres,"860, boulevard de la Carrière"
Tous les services,400,Centre de vie,"280, ch. du Bassin"

Ce fichier sera représenté de la façon suivante, lorsque le CSV est importé dans Excel.

services_offertscapacite_persnom_bureauadresse_bureau
Paiement seulement200Beauport425, boulevard Raymond
Comptoir poste20Bourassa2456, route 125
Paiement seulement20Centre de santé1300, route 199
Tous les services400Centre de repos105, rue Blanchard
Paiement seulement20Boulevard des Cèdres860, boulevard de la Carrière
Tous les services400Centre de vie280, ch. du Bassin

2.2 Formats XLSX et ODS (à utiliser sous certaines conditions)

Pour diverses raisons, un diffuseur de données pourrait vouloir offrir d’autres formats que le CSV si sa clientèle a un besoin connu d’utiliser ces formats. Un jeu de données demeure conforme aux lignes directrices seulement si les autres formats sont offerts comme ressources complémentaires, en plus du format ouvert recommandé (CSV).

Les formats XLSX et ODS sont offerts comme ressources complémentaires, en plus du format CSV

Les formats utilisés par les logiciels tableurs courants, tels que Microsoft Excel (XLSX) et LibreOffice ou OpenOffice Calc (ODS), ne doivent jamais être privilégiés comme format principal de données. Ces formats sont à éviter pour les raisons suivantes :

  • les formats propriétaires limitent ou compliquent l’interopérabilité avec certains logiciels;
  • dans certains cas, les outils de visualisation du portail ne peuvent pas afficher le contenu de ces fichiers;
  • il est impossible d’accéder au contenu de ces fichiers par l’intermédiaire de l’API de Données Québec.

Les formats de logiciels tableurs permettent certaines mises en forme qui sont à proscrire, notamment la fusion de cellules et la présence d’onglets. Lorsque les formats XLSX et ODS doivent être utilisés pour des raisons particulières, on doit prendre en considération les éléments suivants :

  • le fichier ne doit contenir aucun formatage;
  • la première ligne désigne l’en-tête des colonnes :
    • les en-têtes ne comportent pas de caractères spéciaux, d’accents ou d’espaces;
    • pour les en-têtes, la barre de soulignement est utilisée au lieu des espaces;
  • l’utilisation d’onglets doit être évitée;
  • l’utilisation de fonctions dynamiques doit être évitée;
  • la fusion de cellules est à proscrire.

 

Conversion ou exportation de fichiers

En cas de conversion de format de fichier ou d’exportation, par exemple de XLSX à CSV ou l’inverse, il est important de vérifier que l’intégrité des données est préservée, notamment les caractères spéciaux et les formats de nombres, car la corruption de fichiers lors d’une conversion est fréquente.

2.3 Format PARQUET (recommandé pour les données volumineuses)

Le format Apache PARQUET est un format ouvert qui organise les données en colonnes, c’est-à-dire que chaque colonne est stockée séparément, contrairement au format CSV, dans lequel les données sont organisées en lignes. C’est un format particulièrement performant pour le stockage et l’analyse de grands volumes de données structurées (données massives ou big data). Il optimise la compression et la rapidité des requêtes et est compatible avec la majorité des langages de programmation et des outils analytiques. C’est donc un format recommandé lorsque les données tabulaires sont particulièrement volumineuses.

Le format PARQUET est recommandé pour les données tabulaires volumineuses.

Note : Le CSV peut stocker différents types de données, y compris du texte, des nombres, des dates et des valeurs booléennes. Les considérations propres aux types de champ sont décrites à la section 5 – Considérations pour les différents types de données, alors que les règles s’appliquant à plusieurs formats de fichiers sont décrites à la section 7 – Considérations générales relatives aux fichiers.