Aller au contenu

Ligne de commande

La plupart des opérations courantes s’effectuent en ligne de commande avec l’outil insitu.

Astuce

Tous les exemples supposent que la commande insitu est dans le chemin de votre shell, ce qui suppose généralement d’avoir activé l’environnement virtuel où elle a été installé.

Aide en ligne

L’outil dispose d’une aide en ligne intégrée. Si vous tapez l’une de ces commandes, il vous affichera le détail des sous-commandes et options disponibles :

insitu -h
insitu --help

De la même manière, il est possible d’obtenir de l’aide sur une sous-commande. Par exemple :

insitu import -h
insitu import --help

Jeux de données

Lister les jeux de données connus

Pour lister tous les jeux de données connus, avec leur dernière date d’importation :

 insitu datasets list

Pour lister uniquement les jeux de données qui n’ont pas encore été importés :

 insitu datasets list --missing

Pour lister uniquement les jeux de données distants (téléchargeables depuis une URL publique) :

 insitu datasets list --remote

Pour lister uniquement les jeux de données locaux (qui doivent être importés directement à partir d’un fichier privé) :

 insitu datasets list --local

Ajouter une définition pour un fichier local

C’est un prérequis pour apprendre à insitu comment importer le fichier.

Format Data Package

Pour produire une définition au format Data Package :

frictionless describe fichier.csv

Si le fichier est au format .xlsx et que vous voulez pointer vers un onglet spécifique :

frictionless describe --dialect ’{"excel": {"sheet": "la_feuille"}}’ Tableau.xlsx

Format insitu

Info

Le format historique d’insitu est susceptible d’être déprécié, et nous recommandons d’utiliser plutôt le format Data Package si possible.

Pour produire une définition dans le format historique d’insitu :

insitu sniff fichier.csv

Ajouter une définition pour une table Grist

Pour créer une définition YAML d’un jeu de données pour une table d’un document Grist, copiez l’URL de téléchargement CSV de cette table, puis utilisez la commande suivante (attention à ajouter des guillemets doubles autour de l’URL, pour que le shell n’interprète pas le caractère &) :

insitu datasets create-grist-definition "https://example.org/o/monorg/api/docs/XXXXXXXX/download/csv?viewSection=1&tableId=Table"

Vous pouvez spécifier le nom de la table PostgreSQL pour ce jeu de données en utilisant l’option --table-name :

insitu datasets create-grist-definition "https://example.org/o/monorg/api/docs/XXXXXXXX/download/csv?viewSection=1&tableId=Table" --table-name=foo

Indicateurs

Lister les indicateurs

Pour lister tous les indicateurs, groupés par espace de noms :

 insitu indicateurs liste

 insitu indicateurs liste --meta   # inclure les métadonnées

Afficher les valeurs des indicateurs

Pour afficher les valeurs calculées pour un indicateur pour à toutes les mailles :

 insitu indicateurs valeurs [--maille=commune|département|région|pays] <identifiant>

 insitu indicateurs valeurs --help

Pour afficher les valeurs calculées pour tous les indicateurs dans un territoire donné :

 insitu indicateurs territoire <commune|département|région|pays> <code_insee>

 insitu indicateurs territoire --help

Mettre à jour les vues SQL des indicateurs

Pour créer ou mettre à jour les vues SQL pour les indicateurs :

 insitu indicateurs synchroniser-vues

Tables de la base de données

Lister les tables de la base de données

Pour lister toutes les tables de données existantes dans la base :

 insitu tables

Lister les tables orphelines de la base de données

Pour lister les tables orphelines de la base de données (lorsque la définition du jeu de données associé a été supprimée) :

 insitu tables --list-orphans

Supprimer les tables orphelines de la base de données

Pour supprimer les tables orphelines de la base de données (lorsque la définition du jeu de données associé a été supprimée) :

 insitu tables --delete-orphans

Récupérer les jeux de données distants

Certains jeux de données ont une URL source à partir de laquelle ils peuvent être téléchargés.

Choisir les jeux de données à moissonner

Pour récupérer des jeux de données spécifiques :

insitu harvest toto tata

Pour tenter de récupérer les nouveaux jeux de données, ceux dont la date de mise à jour prévisionnelle a été atteinte, et ceux dont la périodicité de mise à jour est inconnue :

insitu harvest

Pour savoir quels jeux de données vont être moissonnés, sans lancer le téléchargement :

insitu harvest --list-only

Pour tenter de récupérer tous les jeux de données, même si leur date de mise à jour prévisionnelle n’a pas encore été atteinte :

insitu harvest --force

Import après téléchargement

L’action par défaut est de sauvegarder les fichiers téléchargés dans le répertoire courant.

Vous pouvez vouloir importer immédiatement le fichier téléchargé :

insitu harvest --action=import toto

Si vous ajoutez le flag --archive, les fichiers importés seront sauvegardés dans le répertoire config.ARCHIVEDIR, qui est ./tmp/archive par défaut :

insitu harvest foo --action=import --archive

Importer des fichiers

La commande insitu import vous permet d’importer le contenu d’un fichier local correspondant à une définition de jeu de données existante dans la base de données.

Sélectionner le(s) fichier(s) à importer

Pour importer un ou plusieurs fichiers spécifiques :

insitu import chemin/vers/fichier1.csv chemin/vers/fichier2.xlsx

Pour importer tous les fichiers d’un répertoire :

insitu import chemin/vers/repertoire

Importer tous les fichiers du répertoire par défaut

Pour importer tous les fichiers du répertoire config.WORKDIR (qui est ./tmp/inbox par défaut) :

insitu import

Options

--dataset

Vous pouvez spécifier explicitement le jeu de données à importer en donnant son nom de table (sinon insitu essaiera d’importer tous les jeux de données dont le modèle correspond au nom de fichier) :

insitu import fichier.csv --dataset=foo

--params

Dans ce cas, vous pourriez aussi avoir besoin d’ajouter manuellement des paramètres d’importation, qui auraient autrement été extraits du nom de fichier (en utilisant des groupes nommés dans l’expression régulière) :

insitu import fichier.csv --dataset=foo --params=’{"annee": "2023"}’

--sheetname

Vous pouvez spécifier le nom de la feuille à utiliser pour l’importation :

insitu import fichier.csv --sheetname=foo

--archive

Si vous ajoutez le flag --archive, les fichiers importés seront déplacés vers le répertoire config.ARCHIVEDIR, qui est ./tmp/archive par défaut :

insitu import fichier.csv --archive

--export

Si vous ajoutez le flag --export, les tables importées seront exportées vers le répertoire config.WRITEDIR, qui est ./tmp/out par défaut :

insitu import fichier.csv --export

--dry-run

Si vous ajoutez le flag --dry_run, le processus d’importation s’exécutera mais effectuera un rollback avant de valider les données dans la base de données. C’est utile pour tester si une importation produit les résultats attendus. Notez que cela désactivera les options --archive et --export.

insitu import fichier.csv --dry-run

--last-modified

Vous pouvez également spécifier la date de dernière modification du jeu de données si vous la connaissez :

insitu import fichier.csv --last-modified=2022-12-31

Exporter des jeux de données

Pour exporter tous les jeux de données qui ont changé depuis la dernière exportation :

insitu exsitu export

Pour exporter les tables associées à un jeu de données donné :

insitu exsitu export --name="France Mobile"

Pour forcer l’exportation de tous les jeux de données :

insitu exsitu export -f