Harvester
stableETL pipeline. 100K rows/s. 9x compression.
Extrae datos desde bases Oracle, PostgreSQL y otras fuentes, transforma a Parquet y deposita en Harkonnen Vault (S3). Pipeline batch nativo Rust con Tokio + Rayon. Compresión Parquet 9x vs CSV. Sin Spark, sin JVM, sin dependencias externas. Binario estático de ~12MB.
Características
- ✦100K rows/s con paralelismo Rayon
- ✦Compresión Parquet 9x vs CSV — 1GB de CSV → 110MB Parquet
- ✦Extracción directa desde Oracle, PostgreSQL, MySQL y más
- ✦Binario estático de 12MB — sin JVM, sin Spark, sin Python
- ✦Pipeline: Oracle → Arrow → Parquet → Harkonnen Vault (S3)
- ✦Jobs programables con cron expressions vía Sandworm
- ✦Retry automático con dead-letter queue
- ✦Idempotencia — re-ejecutar sin duplicados
- ✦Monitoreo de progreso en Eye of Ibad
Ejemplo
dune harvester
$ dune harvest run --pipeline db-sync✦ Source: Oracle (hospital-db)✦ Extracting... 47,291 rows✦ Transform: Arrow columnar → Parquet (9x compression)✦ Depositing to Harkonnen Vault (s3://data-lake/exports/)✦ Complete: 47,291 rows in 0.4s (118K rows/s)✦ Size: 42MB CSV → 4.7MB Parquet$ dune harvest jobs listJOB SCHEDULE LAST RUN ROWS STATUSdb-sync */15 * * * * 4m ago 47,291 successlab-results 0 * * * * 32m ago 12,847 successaudit-export 0 2 * * * 8h ago 891,204 success
DETALLES
- Stack
- Rust · Tokio · Rayon · Arrow · Parquet
- Puerto
- :7450
- Reemplaza
- Airflow / dbt / Spark / Glue
- Estado
- stable