Qu’est ce qu’un CSV?

Tout d’abord, commençons par un peu de vocabulaire, CSV signifie Coma Separated Values. Ce qui peut être traduit par « valeurs séparées par des virgules » mais cela compte aussi les points-virgules, tabulations, guillemets. C’est un type de fichier texte, qui, quand on l’ouvre avec dans un tableur comme Excel, a ses informations rangées en colonnes et lignes . 
Et dans cet article, nous allons vous expliquer quelle est la structure d’un fichier CSV brut, et comment l’analyser dans Drop to Kibana.

Nous prenons en exemple le fichier csv des sites des prélèvements COVID-19 disponible en open data, et déjà utilisé lors de mon précédant article  qui explique la prise en main de Kibana pour un débutant.

La première ligne, ou l’en-tête du csv.

La première ligne du fichier CSV nous indique le nom des catégories. 

Chaque ligne du texte correspond à toutes les informations disponibles, dans notre cas, sur un site de prélèvement COVID-19. Les virgules (ou autre séparation) délimitent chaque champ, chaque information bien précise, comme un nombre, une adresse , une localisation ou une date (pour voir un peu mieux les champs, je vous conseille cette vidéo, à partir de 14min42).

Regardons un peu plus près avec notre fichier :

csv fichier brut - Octave.io Blog
csv: un fichier brut

La première ligne, que l’on appelle l’en-tête, montre le nom des différentes catégories. Lorsque l’on regarde sur le site où l’on peut télécharger le fichier, il y est indiqué que les catégories correspondent à :

  • ID : Identifiant
  • id_ej : Finess juridique
  • finess : Finess géographique
  • rs : Raison sociale
  • adresse : Adresse
  • cpl_loc : Complément localisation
  • do_prel : Effectue test RT-PCR
  • do_antigenic : Effectue test antigénique
  • longitude : Longitude
  • latitude : Latitude
  • mod_prel : Modalités de prélèvement
  • public : Publics accueillis
  • horaire : Horaire
  • horaire_prio : Horaire personnes prioritaires
  • check_rdv : Avec ou sans rendez-vous
  • tel_rdv : Téléphone prise rendez-vous
  • web_rdv : Site internet prise rendez-vous
  • date_modif : Dernière date de mise à jour

On retrouve ces catégories dans Kibana, comme montré dans la suite de l’article.


Suite du document brut

Dans la suite du fichier, une ligne correspond à un site de prélèvement. Donc, si votre fichier possède 3 272 lignes, alors, cela signifie que 3 272 sites de prélèvements y sont indiqués.

Focalisons-nous sur une ligne, la première qui suit l’en-tête :

Csv détail en-têtes - Octave.io Blog
csv: détail en-têtes

Touts les champs des lignes sur les sites de prélèvements, se trouveront dans le même ordre que la ligne d’en-tête. Commençant de l’identifiant pour aller jusqu’à la dernière date de mise à jour. Pour comprendre un peu mieux, nous allons replacer cette ligne comme si nous ouvrons le fichier dans un tableur. Ce qui donnerait ceci :

IDid_ej,finessRSadressecpl_loclongitudelatitudemod_prelpublichorairehoraire_priocheck_rdvtel_rdvweb_rdvdate_modif
HlI2rCJ014Dk4X3Z010001725010001733BM CROIX BLANCHE BOURG EN B1 AV AMEDEE MERCIER 01000 BOURG EN BRESSE5.2418520518206646.2038511077026Sur placeTout publiclundi : 8h00-12h00 et 14h00-19h00 | mardi : 8h00-12h
[…]
samedi : 8h00-12h00 | dimanche : fermé
/Sur rendez-vous uniquement0474452636/2020-09-24
Détail première ligne csv

Comme on peut le voir, certaines cases sont vides, cela signifie que dans notre fichier, rien n’est indiqué pour le champ. Comment peut-on le voir ? Dans le fichier texte, 2 virgules se suivent, donc cela indique qu’il y a un champ vide entre ces deux virgules et, donc, que rien n’y est indiqué. 

Kibana, quant à lui, n’indiquera pas un vide comme dans le fichier ou notre représentation en tableau. Nous verrons cela dans la partie suivante.

Votre csv dans Kibana

Lorsque l’on passe notre fichier brut dans Kibana (des tutos sont disponibles si vous souhaitez, vous aussi, utiliser Kibana), on précise au début, les « delimiters » de notre fichier. Dans notre cas, les delimiters ou séparations sont des virgules. En le précisant à Drop to Kibana, cela permet d’interpréter correctement les champs et d’extraire les informations. Par la suite, cela permet de catégoriser les champs en tant que texte ou chaine de caractère (string), dates (date), nombres (number), ou encore coordonnées géolocalisées (geo_point). 

csv-champs-kibana - Octave.io Blog
Mapping du csv dans Kibana: les types de données
En-têtes dans Kibana-Discover - Octave.io Blog

Lorsque notre fichier est dans Kibana, nous retrouvons également l’en-tête dont on parle quelques paragraphes plus haut. On peut la voir dans Discover, et elle ressemble à ceci.

Octave.io-Kibana-Count

Dans Kibana, le nombre d’enregistrements correspond au nombre de lignes du fichier brut. Par exemple, dans notre fichier sur les sites de prélèvement COVID-19, on compte:

Toujours avec notre fichier en exemple, dans la partie Discover, tout est affiché dans la même logique.
Chaque « _sources » correspond à une ligne qui reprend un site de prélèvement. La différence avec le fichier brut est que Kibana replace les noms des catégories avant chaque valeur:

csv dans discover Kibana - Octave.io Blog
CSV dans Kibana-Discover

Il peut arriver que Kibana affiche la valeur « NULL » pour certains champs. C’est tout à fait normal: En effet, plus haut dans cet article, je vous ai parlé des champs vides du fichier brut, avec deux virgules à la suite. Et bien, quand Kibana traite notre fichier, il met dans le champs vide, cette fameuse valeur « NULL » qui précise seulement que rien n’est indiqué dans la cellule. 

Vous voilà désormais expert en fichier CSV, prêt à l’utiliser dans Kibana et exploiter ses données.

Si vous souhaitez en savoir plus sur Kibana je vous invite à lire nos articles précédents et nous suivre sur LinkedIn/Facebook et Twitter pour connaître toute notre actualité.

Testez dès maintenant vos connaissances sur Drop to Kibana avec notre offre Freemium, uniquement sur Octave.io.