Interroger un fichier plat pour alimenter la base de données avec les Foreign Data Wrapper

Intégrer la dernière version de TAXREF à la base de données grace aux « Foreign Data Wrapper »

  • Mise à jour du 6 novembre 2018 pour conformité avec TAXREF v12 (changement de nom du fichier source 🙂 )
  • Mise à jour du 19 janvier 2018 pour conformité avec TAXREF v11
  • Mise à jour du 28 juin 2017 avec ajout des colonnes sa & ta (TAXREF v10)
  • Mise à jour du 4 juillet 2016 avec ajout de la colonne cd_sup (TAXREF v9)

Téléchargement de taxref :

https://inpn.mnhn.fr/telechargement/referentielEspece/taxref/12.0/menu#

CREATE EXTENSION file_fdw;

CREATE SERVER inpn FOREIGN DATA WRAPPER file_fdw;

CREATE SCHEMA fdw;

CREATE FOREIGN TABLE fdw.taxref_v12 (regne character varying, phylum character varying, classe character varying, ordre character varying, 
famille character varying, sous_famille character varying, tribu character varying, group1_inpn character varying, group2_inpn character varying, 
cd_nom character varying, cd_taxsup character varying, cd_sup character varying, cd_ref character varying, rang character varying, 
lb_nom character varying, lb_auteur character varying, nom_complet character varying, nom_complet_html character varying, nom_valide character varying,
nom_vern character varying, nom_vern_eng character varying, habitat character varying, fr character varying, gf character varying, 
mar character varying, gua character varying, sm character varying, sb character varying, spm character varying, may character varying, 
epa character varying, reu character varying, sa character varying, ta character varying, taaf character varying,
pf character varying, nc character varying, wf character varying, cli character varying, url character varying) SERVER inpn
OPTIONS (format 'csv', header 'true', filename '/tmp/TAXREFv12.txt', delimiter E'\t', null '');

Et voilà; nous pouvons faire une requête SQL sur notre fichier txt!

SELECT * FROM fdw.taxref_v12 WHERE ordre ILIKE 'ODONATA' limit 10;

Le fichier doit être lisible par postgres.

Un problème d’encodage a été rencontré sur les versions de TAXREF antérieures à la v10 de 2016, il a été résolu avec la commande

iconv -f LATIN1 -t UTF8 TAXREFv10.txt > TAXREFv10_utf8.txt

Les perspectives sont très intéressantes :

  • moissonnage des données externes (cas d’une base de données partenaire mysql)
  • interrogation de services web (json, xml)
  • et pourquoi pas des connecteurs vers les formats de fichier SIG ?

Ressources :