Commandes
LINO-PIMO est un ETL (Extract Transform Load) simple pour gérer les données de test. Cette page liste les commandes qui peuvent être utilisées avec lino
et pimo
.
LINO
lino
extrait des données d'une base de données relationnelles pour en créer un échantillon et permet également de recharger des données.
help
Description : Aide pour les commandes.
console $ lino --help
- Utilisation :
lino [commande]
[commande]
disponible :completion
dataconnector
http
id
pull
push
relation
table
Utilisez lino [command] --help
pour plus d'informations sur une commande.
completion
Description : Génère le script d'autocomplétion pour le shell spécifié.
- Utilisation :
lino completion [commande]
[commande]
disponible :bash <option>
: génère le script d'autocompletion pour bash.fish <option>
: génère le script d'autocompletion pour fish.powershell <option>
: génère le script d'autocompletion pour powershell.zsh <option>
: génère le script d'autocompletion pour zsh.
Exemples :
Générer le script d'autocompletion pour bash :
$ lino completion bash > /etc/bash_completion.d/lino
Génèrer le script d'autocompletion pour powershell en désactivant les descriptions de complétion :
$ lino completion powershell --no-descriptions
Utilisez lino completion [command] --help
pour plus d'informations sur une commande.
dataconnector
Description : Gère les alias de la base de données.
- Utilisation :
lino dataconnector [commande]
[commande]
disponible :add <alias_bdd> <url_bdd> <option>
: ajoute un alias à une base de données.list
: liste les alias de base de données.ping <alias_bdd>
: connexion à la base de données<alias_bdd>
.
Alias : dataconnector
, dc
Exemples :
Ajouter un alias à une base de données en indiquant que la base de donnée est en lecture seule.
$ lino dataconnector add mydatabase 'postgresql://postgres:sakila@localhost:5432/postgres?sslmode=disable' -r
Lister les alias.
$ lino dc list
Utilisez lino dataconnector [command] --help
pour plus d'informations sur une commande.
http
Description : Démarre le serveur HTTP.
- Utilisation :
lino http <option>
Exemples :
Associer un port http (par défaut le port est 8000).
$ lino http --port 8080
Préciser le nom du fichier contenant l'ingress-descriptor.
$ lino http -i IngressDescriptor.yaml
id
Description :
Gère l'ingress-descriptor (descripteur d'entrée, ie. le chemin par lequel passe lino
pour récupérer les données).
- Utilisation :
lino id [commande]
[commande]
disponible :create <start_table>
: créé l'ingress-descriptor à partir de la table<start_table>
.display-plan
: montre les étapes par lesquelles la récupération des données se fait.export
: exporte le contenu de l'ingress-descriptor au format JSON vers la sortie stdout.set-child-lookup <relation> [true|false]
: définit le paramètrelookup
* de la table enfant de la<relation>
à true ou false dans l'ingress-descriptor.set-parent-lookup <relation> [true|false]
: définit le paramètrelookup
* de la table parent de la<relation>
à true ou false dans l'ingress-descriptor.set-start-table <start_table>
: définit la table de départ<start_table>
dans l'ingress-descriptorshow-graph
: montre le graphe de l'ingress-descriptor.
*lookup
: indique si l'on veut ou non récupérer la donnée de la table concernée par cette <relation>
.
Exemples :
Afficher le chemin que parcourt lino
pour récupérer les données.
$ lino id display-plan
Changer le paramètre lookup
de la table enfant de la relation fk_pets_owner_id
.
$ lino id set-child-lookup fk_pets_owner_id true
Utilisez lino id [command] --help
pour plus d'informations sur une commande.
pull
Description : Extrait des données d'une base de données.
- Utilisation :
lino pull <alias_bdd> <option>
Exemples :
Extraire les données uniques de la table owners
.
$ lino pull mydatabase --distinct --table owners
Extraire les grappes de données correspondant à la clause where SQL
.
$ lino pull mydatabase -w "id in (12,24,36)"
push
Description : Charge des données dans une base de données (mode par défault: insertion)
- Utilisation :
lino push [mode] <alias_bdd> <option>
[mode]
disponible :truncate
: permet de supprimer toutes les données d’une base sans supprimer la base de données.insert
: permet d'inserer une ou plusieurs lignes dans la base existante.update
: permet d’effectuer des modifications sur des lignes existantes.delete
: permet de supprimer des lignes dans une base.
Exemples :
Inserer dans la table owners
un fichier contenant les lignes à inserer.
$ lino push mydatabase --table owners < data.jsonl
Mettre à jour des données dans la base en supprimant les contraintes durant le chargement.
$ < data.jsonl | lino push update mydatabase --disable-constraints
relation
Description : Gère les relations de la base de données.
- Utilisation :
lino relation [commande]
[commande]
disponible :extract <alias_bdd>
: extrait les relations de la base de données.
Alias : relation
, rel
Exemple :
Extraire les relations de la base de données mydatabase
.
$ lino relation extract mydatabase
Utilisez lino relation [command] --help
pour plus d'informations sur une commande.
sequence
Description : Gère les séquences.
- Utilisation :
lino sequence [commande]
[commande]
disponible :extract <alias_bdd>
: extrait le nom de la séquence de la base de données.status <alias_bdd>
: retourne le statut de la séquence de la base de données.update <alias_bdd>
: mets à jour le statut de la séquence.
Alias : sequence
, seq
Exemples :
Extraire le nom de la séquence de mydatabase
.
$ lino sequence extract mydatabase
Connaître le status de la séquence de mydatabase
.
$ lino sequence status mydatabase
Utilisez lino sequence [command] --help
pour plus d'informations sur une commande.
table
Description : Gère les tables de la base de données.
- Utilisation :
lino table [commande]
[commande]
disponible :add-column <alias_table> <alias_colonne> <option>
: ajoute une définition de colonne dans le fichiertable.yml
.count <alias_bdd>
: compte le nombre de lignes présent dans les tables de la base de données.extract <alias_bdd>
: extrait les métadonnées des tables de la base de données.remove-column <alias_table> <alias_colonne>
: supprime une définition de colonne dans le fichiertable.yml
.
Alias : table
, tab
Exemples :
Ajouter une colonne au fichier table.yml
en précisant le type de la colonnes.
$ lino table add-column owners first_name -i string
Retourner le nombre de lignes présent dans la base de données mydatabase
.
$ lino table count mydatabase
Utilisez lino table [command] --help
pour plus d'informations sur une commande.
PIMO
pimo
masque des données sensibles contenues dans un flux de jsonlines en utilisant un fichier de configuration contenant les masques à appliquer.
help
Description : Aide pour les commandes.
console $ pimo --help
- Utilisation :
pimo [commande]
pimo <option>
[commande]
disponible :completion
flow
jsonschema
play
Utilisez pimo [command] --help
pour plus d'informations sur une commande.
completion
Description :
Génère le script d'autocomplétion pour pimo
pour le shell spécifié.
- Utilisation :
pimo completion [commande]
[commande]
disponible :bash <option>
: génère le script d'autocompletion pour bash.fish <option>
: génère le script d'autocompletion pour fish.powershell <option>
: génère le script d'autocompletion pour powershell.zsh <option>
: génère le script d'autocompletion pour zsh.
Exemples :
Générer le script d'autocompletion pour bash :
$ pimo completion bash > /etc/bash_completion.d/pimo
Génèrer le script d'autocompletion pour bash (sur macOS) en désactivant les descriptions de complétion :
$ pimo completion bash --no-descriptions > /usr/local/etc/bash_completion.d/pimo
Utilisez pimo completion [command] --help
pour plus d'informations sur une commande.
flow
Description : Génère un diagramme Mermaid permettant de visualiser le processus de transformation de la donnée.
- Utilisation :
pimo flow <option>
Exemple :
Générer le diagramme du fichier de configuration masking.yml
$ pimo flow masking.yml > masking.mmd
jsonchema
Description :
Génère le schéma json du fichier de configuration de pimo
.
- Utilisation :
pimo jsonchema <option>
Exemple :
Générer le schéma json.
$ pimo jsonchema
play
[A venir]
SIGO
sigo
anonymise un jeu de données en repectant le k-anonymat et la l-diversité. Il est possible de configurer l'anonymisation en ligne de commande ou à l'aide d'un fichier de configuration yml
.
help
Description : Aide pour les commandes.
console $ sigo --help
- Utilisation :
sigo <option>
<option>
disponible :--k-value,-k <value>
--l-value,-l <value>
--quasi-identifier,-q <list>
--sensitive,-s <list>
--anonymizer,-a <method>
--cluster-info,-i <name_of_field>
--entropy [true|false]
--configuration, -c <file>