SIRENE en base de données postgres

Bonjour,
J’ai téléchargé les données SIRENE v3 depuis opendatasoft. Je m’apprête à les charger dans une base de données PostGIS. Et je m’apprête donc à créer une nouvelle table. Et avant de décrire les 100 champs, leurs types et leurs longueurs, je me demande si quelqu’un ici l’aurai déjà fait et pourrais communiquer le code ?

Sinon, je le partagerais !

Bien à vous,
Maxime Colomb

Import dans postgres avec postgis… donc une utilisation « géo » ?

Il serait préférable de prendre cette version qui me semble géocodée plus finement :

Oui, je compte en effet exploiter spatialement ces données.
J’ai téléchargé ce fichier hier, c’est la version v2 de SIRENE n’est ce pas ? Je suis plus intéressé par travailler avec la v3.
Néanmoins, merci !

Oups… erreur de lien de ma part, voici la bonne version:

L’autre, est une version que je génère pour retrocompatibilité pour ceux qui dépendent toujours de l’ancien format.

1 Like

Ok, j’avais pas vu ce dossier, merci !
Si personne n’a le schéma de table, je ferais ça ce weekend (et joindrais le code ici quand ce sera joignable)

Pour ce que je fais, je mets tout en champ « text », il y a peu de valeurs numériques dans ces données.

J’utilise du coup ce genre d’astuce pour générer une table à partir de la ligne d’entête de CSV.

psql -c "create table siren_temp (`unzip -p StockUniteLegale_utf8.zip | head -n 1 | sed 's/,/ text,/g;s/$/ text/'`);"
unzip -p StockUniteLegale_utf8.zip | psql -c "\copy siren_temp from stdin with (format csv, header true)"

On peut toujours modifier dans un second temps le type des colonnes avec des ALTER TABLE.

Hello Maxime,

As-tu avancé sur ton schéma postres in fine ? :slight_smile:

Hi !
Yes j’ai pris l’astuce de M. Quest ainsi que ses données. À la base je voulais faire ça dans mon code java mais en fait avec psql ça marche tout aussi bien !
J’ai juste modifié quelques types et la structure est donc celle là :

create table siren_geocoded (siren text,nic text,siret text,statutDiffusionEtablissement text,dateCreationEtablissement text,trancheEffectifsEtablissement text,anneeEffectifsEtablissement text,activitePrincipaleRegistreMetiersEtablissement text,dateDernierTraitementEtablissement text,etablissementSiege text,nombrePeriodesEtablissement text,complementAdresseEtablissement text,numeroVoieEtablissement text,indiceRepetitionEtablissement text,typeVoieEtablissement text,libelleVoieEtablissement text,codePostalEtablissement text,libelleCommuneEtablissement text,libelleCommuneEtrangerEtablissement text,distributionSpecialeEtablissement text,codeCommuneEtablissement text,codeCedexEtablissement text,libelleCedexEtablissement text,codePaysEtrangerEtablissement text,libellePaysEtrangerEtablissement text,complementAdresse2Etablissement text,numeroVoie2Etablissement text,indiceRepetition2Etablissement text,typeVoie2Etablissement text,libelleVoie2Etablissement text,codePostal2Etablissement text,libelleCommune2Etablissement text,libelleCommuneEtranger2Etablissement text,distributionSpeciale2Etablissement text,codeCommune2Etablissement text,codeCedex2Etablissement text,libelleCedex2Etablissement text,codePaysEtranger2Etablissement text,libellePaysEtranger2Etablissement text,dateDebut text,etatAdministratifEtablissement text,enseigne1Etablissement text,enseigne2Etablissement text,enseigne3Etablissement text,denominationUsuelleEtablissement text,activitePrincipaleEtablissement text,nomenclatureActivitePrincipaleEtablissement text,caractereEmployeurEtablissement text,longitude real,latitude real,geo_score text,geo_type text,geo_adresse text,geo_id text,geo_ligne text,geo_l4 text,geo_l5 text)

importer des données (toujours suivant l’exemple de M. Quest)

\copy siren_geocoded from ./StockEtablissement_utf8_geo.csv with (format csv, header true)

créer l’extension PostGIS dans sa base

CREATE EXTENSION postgis;

Ajouter et calculer les géométries (ça prends bien 10Go de plus)

ALTER TABLE siren_geocoded ADD COLUMN geom geometry(Point,4326);
UPDATE siren_geocoded SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326);

(sorry j’ai oublié de mettre réponse)

1 Like

Merci pour ton retour :slight_smile:
J’avais galéré à l’époque pour faire ça (bidouilleur mais pas toujours super à l’aise et encore moins débrouillard sur certains sujets :/)

Par contre, c’est juste pour stocker la table ‹ établissement ›. Ça pourrait valoir le coup de la lier avec la table ‹ unité légales › car ça arrive souvent que des enregistrement soient vide et qu’ils faille se référer à l’unité légale il me semble