Orchestrator pour exporter des données depuis ClickHouse vers CSV, JSON, Parquet, XLS ou XLSX, avec multiprocessing et suivi en temps réel.
STILL IN DEV
my_clickhouse_export/
├─ pyproject.toml
├─ src/
│ └─ my_clickhouse_export/
│ ├─ __init__.py
│ └─ cli.py
└─ config.toml
# Depuis le dossier racine du projet
pip install -e .
Cela installera la CLI my_clickhouse_export
.
[clickhouse]
host = "localhost"
port = 8123
username = "default"
password = "password"
database = "default"
[[exports]]
name = "users_csv"
query = "SELECT * FROM users LIMIT 1000"
format = "csv"
output_path = "output/users"
[[exports]]
name = "transactions_xlsx"
query = "SELECT * FROM transactions LIMIT 2000000"
format = "xlsx"
output_path = "output/transactions"
[[exports]]
name = "system_numbers_json"
query = "SELECT * FROM system.numbers LIMIT 1000"
format = "json"
output_path = "output/numbers"
[[exports]]
name = "small_data_xls"
query = "SELECT * FROM users LIMIT 50000"
format = "xls"
output_path = "output/users_small"
Les chemins doivent être relatifs.
my_clickhouse_export export-all config.toml
Vous pouvez également définir le nombre de processus parallèles :
my_clickhouse_export export-all config.toml --workers 8
my_clickhouse_export export-one config.toml users_csv
- Supporte CSV, JSON, Parquet, XLS, XLSX
- Multiprocessing avec barre de progression
tqdm
- Création automatique des dossiers relatifs
- Limites Excel gérées automatiquement avec fallback
- Suivi des exports avec résumé final et logs par export
- Si le nombre de lignes dépasse la limite XLS ou XLSX, l'export bascule automatiquement sur XLSX ou Parquet.
- Les erreurs sur un export n'interrompent pas les autres exports.
- Toutes les sorties sont créées dans des chemins relatifs pour éviter tout problème de permissions.
Ton Nom - ton.email@example.com