Harvester

stable

ETL 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 list
JOB SCHEDULE LAST RUN ROWS STATUS
db-sync */15 * * * * 4m ago 47,291 success
lab-results 0 * * * * 32m ago 12,847 success
audit-export 0 2 * * * 8h ago 891,204 success

DETALLES

Stack
Rust · Tokio · Rayon · Arrow · Parquet
Puerto
:7450
Reemplaza
Airflow / dbt / Spark / Glue
Estado
stable