VoltarBack
Proposta Técnica · On-Premise · Stack Open Source Technical Proposal · On-Premise · Open Source Stack

Data Lake
On-Premise
On-Premise
Data Lake

Arquitetura moderna de dados on-premise baseada em ferramentas 100% open source: do banco Oracle transacional até dashboards interativos em tempo real — passando por Airflow, Spark, MinIO e Apache Pinot. Modern on-premise data architecture built on 100% open source tooling: from Oracle transactional data to real-time interactive dashboards — via Airflow, Spark, MinIO, and Apache Pinot.

On-Premise Oracle → MinIO → Pinot Apache Airflow Apache Spark MinIO S3 Apache Pinot Apache Superset R$ 0 em licenças
3
servidores físicosphysical servers
6+
ferramentas open sourceopen source tools
<100ms
latência de query PinotPinot query latency
13w
roadmap de implantaçãodeployment roadmap
01

Visão da
arquitetura
Architecture
overview

A arquitetura extrai dados do Oracle e os entrega até o analista consultando dados em milissegundos no Superset. The architecture extracts data from Oracle and delivers it all the way to analysts querying in milliseconds on Superset.

Diagrama — End-to-End · On-Premise Diagram — End-to-End · On-Premise
FONTE ORQUESTRAÇÃO ARMAZENAMENTO ANALYTICS CONSUMO 🗄️ Oracle DB Transacional · JDBC SQL ⚙️ Airflow Orquestração de DAGs 🔥 Spark Transformações 🥉 Bronze Raw · JSON 🥈 Silver Limpo · Parquet 🥇 Gold Agregado · Parquet MinIO — Data Lake Segment Load Apache Pinot Controller · Broker Server · Segments OLAP <100ms Deep → MinIO SQL · REST API SQL 📊 Superset Dashboards · BI Alertas · Reports 👥 Analistas
Premissa de design: Todo o stack é on-premise — três servidores físicos dentro da sua infraestrutura. Nenhuma dependência de cloud pública. Pinot usa MinIO como deep storage, mantendo os segmentos no mesmo datacenter. The entire stack is on-premise — three physical servers within your own infrastructure. No public cloud dependency. Pinot uses MinIO as deep storage, keeping all segments in the same datacenter.
02

A stack The stack

Oracle como fonte, Airflow orquestrando cada passo, Spark transformando em escala, MinIO armazenando em três camadas, Pinot respondendo em menos de 100ms, Superset entregando ao analista. Do dado bruto ao dashboard — sem dependência de cloud pública. Oracle as source, Airflow orchestrating each step, Spark transforming at scale, MinIO storing across three layers, Pinot responding in under 100ms, Superset delivering to the analyst. From raw data to dashboard — no public cloud dependency.

01 / FonteSource

Oracle Database

Banco de dados transacional existente. A extração é feita via JDBC com queries incrementais por updated_at, minimizando impacto em produção.

Existing transactional database. Extraction via JDBC with incremental queries by updated_at, minimizing production impact.

JDBC Incremental CDC
02 / OrquestraçãoOrchestration

Apache Airflow

Coração do ETL. Define, agenda e monitora cada passo do pipeline como um DAG. Interface web para gestão, backfill e alertas.

The ETL's heart. Defines, schedules, and monitors each pipeline step as a DAG. Web UI for management, backfill, and alerts.

DAGs Celery Backfill
03 / ProcessamentoProcessing

Apache Spark

Engine de transformações distribuídas. Executa dentro dos DAGs do Airflow para joins, deduplicação e aggregações em larga escala.

Distributed transformation engine. Runs inside Airflow DAGs for large-scale joins, deduplication, and aggregations.

PySpark Parquet SQL
04 / ArmazenamentoStorage

MinIO

Object storage S3-compatible on-premise. Armazena Bronze, Silver e Gold em Parquet. Também funciona como deep storage do Pinot.

On-premise S3-compatible object storage. Stores Bronze, Silver, and Gold in Parquet. Also serves as Pinot's deep storage.

S3 API ZFS IAM
05 / Analytics

Apache Pinot

OLAP distribuído de ultra-baixa latência. Indexa segmentos da camada Gold e responde queries em menos de 100ms — mesmo com bilhões de linhas.

Ultra-low latency distributed OLAP. Indexes Gold layer segments and answers queries in under 100ms — even with billions of rows.

StarTree SQL <100ms
06 / BI

Apache Superset

Plataforma de BI open source. Conecta-se nativamente ao Pinot via SQL. Dashboards interativos, exploração ad-hoc e alertas automáticos.

Open source BI platform. Connects natively to Pinot via SQL. Interactive dashboards, ad-hoc exploration, and automated alerts.

Dashboards SQL Lab Alertas
03

ETL com
Airflow
ETL with
Airflow

Cada pipeline é um DAG — um grafo de tarefas com dependências, retentativas e alertas configurados. Gestão completa via interface web. Each pipeline is a DAG — a task graph with dependencies, retries, and alerts configured. Full management via web UI.

DAG de ingestão diária — Oracle → MinIO → Pinot Daily ingestion DAG — Oracle → MinIO → Pinot
check_oracle _conn extract_tables OracleToMinIO validate_bronze GreatExpectations log_metadata PythonOperator spark_transform SparkSubmitOp write_gold MinIOOperator trigger_pinot HTTP Sensor schedule: @daily · retries: 3 · alertas: e-mail + Slack
ExtraçãoExtract

Oracle → Bronze

  • Conexão JDBC com pool gerenciado pelo Airflow
  • JDBC connection with Airflow-managed pool
  • Query incremental por coluna updated_at
  • Incremental query by updated_at column
  • Full load semanal para tabelas sem timestamp
  • Weekly full load for tables without timestamps
  • Escrita em JSON.gz no bucket Bronze do MinIO
  • Writes JSON.gz to MinIO Bronze bucket
  • Metadados: volume, checksum, timestamp de extração
  • Metadata: volume, checksum, extraction timestamp
TransformaçãoTransform

Bronze → Silver → Gold

  • Spark lê Bronze via API S3 do MinIO
  • Spark reads Bronze via MinIO S3 API
  • Silver: dedup, tipagem, limpeza de nulos
  • Silver: dedup, type casting, null cleanup
  • Particionamento por ano/mês/dia
  • Partitioned by year/month/day
  • Gold: joins entre domínios, KPIs de negócio
  • Gold: cross-domain joins, business KPIs
  • Saída em Parquet com compressão Snappy
  • Output in Parquet with Snappy compression
CargaLoad

Gold → Pinot

  • Airflow chama REST API do Pinot Controller
  • Airflow calls Pinot Controller REST API
  • Job offline: lê Parquet direto do MinIO
  • Offline job: reads Parquet directly from MinIO
  • Pinot persiste segmentos no bucket pinot-deep
  • Pinot persists segments in pinot-deep bucket
  • Dados disponíveis para query em menos de 5 min
  • Data available for querying in under 5 minutes
  • StarTree Index gerado automaticamente
  • StarTree Index generated automatically
04

Arquitetura
Medallion
Medallion
Architecture

O MinIO organiza os dados em três camadas — cada uma com propósito, formato e nível de qualidade específicos. Os dados nunca são sobrescritos: apenas promovidos. MinIO organizes data into three layers — each with a specific purpose, format, and quality level. Data is never overwritten: only promoted.

🥉
Bronze
Dados brutosRaw data
bronze/
  └─ oracle/
      ├─ clientes/
      │   └─ 2026/05/01/
      │       extract.json.gz
      ├─ pedidos/
      └─ estoque/
JSON / CSV Comprimido Retenção: 2 anosRetention: 2yr
🥈
Silver
Dados limposClean data
silver/
  └─ clientes/
      └─ year=2026/
          └─ month=05/
               part-000.parquet
Parquet Snappy ParticionadoPartitioned
🥇
Gold
Dados prontosBusiness-ready
gold/
  ├─ vendas_diarias/
  ├─ clientes_ativos/
  ├─ estoque_critico/
  └─ faturamento_mensal/
Parquet Pinot-ready Por domínioBy domain
05

Os três
servidores
The three
servers

Cada servidor tem uma responsabilidade única. O isolamento facilita escalonamento independente e aumenta resiliência do conjunto. Each server has a unique responsibility. Isolation enables independent scaling and increases overall resilience.

🗄️ Oracle DB Existente JDBC SRV-01 · ETL ⚙️ Apache Airflow 2.9 Webserver · Scheduler · Celery 🔥 Apache Spark 3.5 Master · Workers locais 🐘 PostgreSQL Airflow meta 🚀 Redis Celery broker 10.0.0.11 S3 API SRV-02 · Storage 🪣 MinIO API :9000 · Console :9001 📂 bronze · silver · gold · pinot-deep Buckets + IAM Policies 💾 ZFS · RAID-Z2 12× 10TB HDD + 4× 2TB NVMe cache 10.0.0.12 S3 API SRV-03 · Analytics ⚡ Apache Pinot 1.2 Controller · Broker · Server 📊 Apache Superset BI · Dashboards · Alertas 🐘 ZooKeeper Pinot coord. 🔐 Nginx TLS + proxy 10.0.0.13 👥 Analistas VLAN 10.0.0.0/24 · Switch 10GbE
01
Servidor ETL ETL Server
Airflow + Spark · 10.0.0.11
CPU 2× Xeon Silver 4314
32 cores / 64 threads
RAM 128 GB DDR4 ECC
(expansível a 256 GB) (expandable to 256 GB)
OS Disk 2× 500 GB NVMe RAID-1
Disco tempTemp disk 4× 2 TB NVMe
(Spark shuffle) (Spark shuffle)
Rede 2× 10GbE bonding
Airflow 2.9 Spark 3.5 PostgreSQL 16 Redis 7 Java 17 Python 3.12 Docker
02
Servidor Storage Storage Server
MinIO · 10.0.0.12
CPU 1× Xeon Silver 4310
12 cores / 24 threads
RAM 64 GB DDR4 ECC
(MinIO é I/O-bound) (MinIO is I/O-bound)
OS Disk 2× 500 GB SSD RAID-1
Data Lake 12× 10 TB HDD
120 TB bruto · RAID-Z2
Cache 4× 2 TB NVMe
ZFS L2ARC
Rede 2× 10GbE + 1GbE gestãomgmt
MinIO AGPL ZFS on Linux Ubuntu 24.04 Prometheus
03
Servidor Analytics Analytics Server
Pinot + Superset · 10.0.0.13
CPU 2× Xeon Gold 6338
64 cores / 128 threads
RAM 256 GB DDR4 ECC
(Pinot é memory-intensive) (Pinot is memory-intensive)
OS Disk 2× 500 GB NVMe RAID-1
SegmentosSegments 8× 4 TB NVMe
32 TB · acesso sub-mssub-ms access
Rede 2× 10GbE + 1GbE gestãomgmt
Pinot 1.2 Superset 4.x ZooKeeper 3.9 Nginx Java 21 Docker

Portas & rede Ports & network

ServiçoService ServidorServer PortaPort AcessoAccess
Airflow UISRV-018080LAN internaInternal LAN
Spark UISRV-014040Equipe dadosData team
MinIO APISRV-029000SRV-01 e SRV-03SRV-01 and SRV-03
MinIO ConsoleSRV-029001AdminsAdmins
Pinot ControllerSRV-039000SRV-01 (Airflow)SRV-01 (Airflow)
Pinot Broker SQLSRV-038099Superset + devsSuperset + devs
Apache SupersetSRV-03443 (Nginx)Todos usuários · HTTPSAll users · HTTPS
ZooKeeperSRV-032181Interno SRV-03SRV-03 internal
06

Roadmap de implantação Deployment
roadmap

Infraestrutura na semana 3. ETL rodando e engenheiros com acesso ao MinIO na semana 7. Pinot com queries abaixo de 100ms na semana 10. Superset, monitoramento e handoff na semana 13. Infrastructure by week 3. ETL running and engineers with MinIO access by week 7. Pinot with sub-100ms queries by week 10. Superset, monitoring, and handoff by week 13.

Fase 1 · Semanas 1–3 Phase 1 · Weeks 1–3

Infraestrutura base Base infrastructure

Provisionamento dos 3 servidores, instalação do SO, configuração de rede/VLAN, instalação do MinIO com ZFS. Definição de políticas IAM e criação dos buckets Bronze, Silver, Gold e pinot-deep.

Provision 3 servers, OS installation, network/VLAN config, MinIO with ZFS. Define IAM policies and create Bronze, Silver, Gold, and pinot-deep buckets.

Fase 2 · Semanas 4–7 Phase 2 · Weeks 4–7

ETL Oracle → MinIO Bronze/Silver ETL Oracle → MinIO Bronze/Silver

Instalação do Airflow e Spark, configuração das conexões Oracle, desenvolvimento dos DAGs de extração incremental, transformações Bronze→Silver. Validação de qualidade com Great Expectations.

Install Airflow and Spark, configure Oracle connections, develop incremental extraction DAGs, Bronze→Silver transformations. Quality validation with Great Expectations.

Fase 3 · Semanas 8–10 Phase 3 · Weeks 8–10

Camada Gold + Apache Pinot Gold layer + Apache Pinot

Modelagem dos dados de negócio (Gold), transformações Spark, instalação do Pinot e ZooKeeper, criação dos schemas Pinot, pipeline de ingestão Gold→Pinot via REST API.

Business data modeling (Gold), Spark transformations, Pinot and ZooKeeper install, Pinot schema creation, Gold→Pinot ingestion pipeline via REST API.

Fase 4 · Semanas 11–13 Phase 4 · Weeks 11–13

Superset + monitoramento + entrega Superset + monitoring + delivery

Instalação do Superset, conexão com Pinot, primeiros dashboards, configuração de usuários e row-level security, alertas, Prometheus + Grafana para monitoramento dos servidores. Handoff para a equipe.

Superset install, Pinot connection, first dashboards, users and row-level security setup, alerts, Prometheus + Grafana for server monitoring. Team handoff.

Custo de licença: R$ 0. License cost: R$ 0. Airflow, Spark, MinIO, Pinot e Superset são 100% open source. O único custo é o hardware on-premise (~USD 58.500 para médio porte) e o time de implantação. Airflow, Spark, MinIO, Pinot, and Superset are 100% open source. The only cost is on-premise hardware (~USD 58,500 for mid-size) and the deployment team.