Passer au contenu principal

Comment exporter des données PostgreSQL vers Parquet, CSV ou JSON

C’est simple avec clickhouse-local :
  • Utilisez la fonction de table postgresql pour lire les données
  • Utilisez la clause INTO OUTFILE _filename_ FORMAT et indiquez le format de sortie souhaité
Le format de sortie peut être n’importe lequel des formats de sortie pris en charge par ClickHouse. Voyons quelques exemples… Ces exemples utilisent clickhouse-local, qui fait partie du binaire ClickHouse. Téléchargez-le avec la commande suivante :

Exporter PostgreSQL vers Parquet

La fonction de table postgresql permet d’exécuter des requêtes SELECT (et INSERT) sur des données stockées sur un serveur PostgreSQL distant. Par exemple, pour afficher l’intégralité du contenu d’une table dans PostgreSQL :
Nous pouvons rediriger la sortie de cette requête vers un fichier à l’aide de INTO OUTFILE. Utilisez FORMAT pour préciser le format du fichier à créer. Récupérons l’intégralité du contenu de la table PostgreSQL et écrivons-le dans un fichier Parquet :
Comme le nom du fichier de sortie a l’extension .parquet, ClickHouse en déduit que nous voulons le format Parquet ; notez donc que nous avons omis la clause FORMAT Parquet.

Exporter PostgreSQL au format CSV

C’est la même chose que pour Parquet, sauf que nous indiquons un nom de fichier plus approprié pour le fichier de sortie :
Et voilà ! ClickHouse repère l’extension .csv dans le nom du fichier de sortie et exporte les données sous forme de valeurs séparées par des virgules. Sinon, c’est exactement la même commande que ci-dessus.

Exporter PostgreSQL en JSON

Pour exporter PostgreSQL en JSON, il suffit de modifier le nom du fichier et ClickHouse détectera le format :
Vous ne devez pas vous arrêter là : vous pouvez utiliser clickhouse-local pour extraire des données de PostgreSQL et les envoyer vers tous les formats de sortie.Si ClickHouse ne peut pas déterminer le format de sortie à partir de l’extension du nom de fichier, ou si vous souhaitez choisir un format explicitement, ajoutez la clause FOMRAT :

Envoyer PostgreSQL vers un autre processus en flux

Au lieu d’utiliser INTO OUTFILE, vous pouvez envoyer les résultats d’une fonction de table vers un autre processus en flux. Voici un exemple simple pour illustrer la syntaxe : nous comptons le nombre de lignes à l’aide de la commande Linux wc -l :
Cependant, nous pourrions facilement envoyer les lignes vers un script shell, un script Python ou tout autre processus de votre choix.
Dernière modification le 2 juillet 2026