Enterprise ETL Pipeline: Oracle → S3 Parquet Data Lake
Migra millones de filas de Oracle a S3 con particionado inteligente, integración con AWS Glue Catalog, y monitoreo en tiempo real vía StreamForge.
Arquitectura asíncrona con Tokio. Escritura paralela a S3 (4 uploads simultáneos). Procesamiento en streaming NDJSON. Batches de 100K filas optimizados.
Registro automático de tablas Parquet en Glue. OxideDB hace REFRESH TABLES en sub-segundo sin escanear S3. Compatible con Athena y Datasphere.
5 estrategias configurables: none, year_month, year_month_day, full_load_only, mode_based. Optimizado para predicate pushdown en OxideDB.
Soporte para tenants por tabla con X-Tenant-ID header. Perfecto para arquitecturas multi-tenant. Override global configurable.
CDC-like basado en timestamps o primary keys. Checkpoints automáticos. Recuperación ante fallos. Upserts a PostgreSQL en paralelo.
Monitoreo real-time con eventos: JobStarted, ProgressUpdate, JobCompleted, JobFailed. Integración nativa con StreamForge cluster.
Guardado automático de progreso cada 50K filas. Recuperación desde último checkpoint. Continúa migraciones interrumpidas sin re-procesar.
Columnar storage con compresión SNAPPY. 9x ratio de compresión. Compatible con Arrow, DataFusion, Polars, DuckDB, OxideDB.
Escribe simultáneamente a S3 (data lake) y PostgreSQL (operational). Dead Letter Queue (DLQ) para filas fallidas. Retry configurable.
Oracle Database
REST API / JDBC Direct
Oxide ETL
Rust + Tokio + DataFusion
S3 + Glue Catalog
Parquet + PostgreSQL
Migra datos históricos de Oracle (millones de filas) a S3 Parquet para análisis con OxideDB, Athena, o Datasphere.
Sincroniza cambios incrementales desde Oracle a S3 en tiempo real con particionado por fecha.
1. Descargar e instalar paquete .deb:
# Descargar última versión wget https://releases.oxidedb.com/oxide-etl/latest/oxide-etl_0.4.9_amd64.deb # Instalar paquete sudo dpkg -i oxide-etl_0.4.9_amd64.deb # Verificar instalación oxide-etl --version
2. Configurar archivo YAML:
# /etc/oxide-etl/etl_config.yaml
source:
mode: http
base_url: "https://your-api.com"
api_key: "your-key"
tenant: "default"
s3:
enabled: true
bucket: "my-data-lake"
default_partition_strategy: "mode_based"
glue:
enabled: true
database: "oxidedb_catalog"
region: "us-east-2"
tables:
- oracle_schema: "PROD"
oracle_table: "CUSTOMERS"
postgres_schema: "public"
postgres_table: "customers"
primary_keys: ["customer_id"]
enabled: true3. Crear database en Glue (una sola vez):
aws glue create-database --database-input Name=oxidedb_catalog
4. Ejecutar migración:
# Full load de todas las tablas oxide-etl full-load --tables all # Full load de tablas específicas oxide-etl full-load --tables CUSTOMERS,ORDERS # Sync incremental oxide-etl sync --tables all
Nota: El paquete .deb incluye systemd service para ejecución como daemon. Configura en /etc/systemd/system/oxide-etl.service
Oxide ETL + OxideDB = Stack completo para Data Analytics
Enterprise ETL • Production Ready • Built with Rust 🦀