Ferramentas do stack de dados e ML por categoria
| Categoria | Ferramentas / Tecnologias | Uso principal |
|---|---|---|
| Machine Learning | MLflow, Kubeflow, Feast, Ray, TensorFlow, PyTorch, Scikit-learn, XGBoost, LightGBM | Treino, tracking, serving, feature store e MLOps |
| Data Science / Analytics | Python, Jupyter, Pandas, Polars, NumPy, SciPy, R, Apache Arrow | Exploração de dados, análise estatística e preparação de dados |
| BI / Analytics | Apache Superset, Metabase, Grafana, Power BI, Tableau | Dashboards, exploração e visualização de dados |
| Engenharia de Dados | Apache Spark, Apache Flink, Apache Beam, Apache Kafka, dbt | Processamento de dados, pipelines e transformações |
| Ingestão / CDC | Apache Kafka, Debezium, Kafka Connect, Apache NiFi, Airbyte, Fivetran | Ingestão de dados, CDC e integração de dados |
| Orquestração de workflows | Apache Airflow, Dagster, Prefect, Argo Workflows | Orquestração de pipelines e workflows |
| Transformação de dados | dbt, Apache Spark, SQLMesh, Dataform | Transformação, modelagem e ELT |
| Qualidade de dados | Great Expectations, Soda, dbt Tests, Deequ | Validação e checagens de qualidade |
| Catálogo / Governança | OpenMetadata, DataHub, Apache Atlas, Amundsen, OpenLineage | Catálogo de dados, linhagem e governança |
| Armazenamento do data lake | Amazon S3, MinIO, Google Cloud Storage, Azure Data Lake Storage | Object storage e data lake |
| Formatos de arquivo | Apache Parquet, Apache ORC, Apache Avro, Apache Arrow | Formatos de armazenamento e intercâmbio de dados |
| Formatos de tabela abertos | Apache Iceberg, Apache Hudi, Delta Lake, Apache Paimon | Tabelas ACID, evolução de schema, snapshots e time travel |
| Catálogo de lakehouse | Apache Polaris, Project Nessie, AWS Glue Catalog, Hive Metastore | Catálogo de tabelas e gestão de metadados |
| Engines de consulta | Trino, Presto, DuckDB, ClickHouse, Apache Doris, StarRocks | Analytics em SQL e OLAP |
| Plataformas de lakehouse | Databricks, Dremio, Starburst, Snowflake | Plataformas de data lakehouse e analytics |
| Feature Store | Feast, Hopsworks, Tecton | Gestão e serving de features de ML |
| Pipelines de ML | Kubeflow Pipelines, MLflow, Airflow, Metaflow, Flyte | Pipelines de machine learning |
| Model Serving | KServe, Seldon, NVIDIA Triton, Ray Serve, BentoML, vLLM | Inferência e serving de modelos |
| Experiment Tracking | MLflow, Weights & Biases, Neptune, Comet | Acompanhamento de experimentos e métricas |
| Model Registry | MLflow, Kubeflow, Vertex AI, SageMaker, Azure ML | Versionamento e ciclo de vida de modelos |
| Bancos vetoriais | Qdrant, Milvus, Weaviate, pgvector, Pinecone | Embeddings, busca semântica e RAG |
| Streaming / Processamento de eventos | Apache Kafka, Apache Flink, Redpanda, Apache Pulsar | Processamento de dados em tempo real |
| Data Warehouse | Snowflake, BigQuery, Redshift, ClickHouse, DuckDB | Analytics estruturado e OLAP |
| Observabilidade de dados | OpenTelemetry, Grafana, Prometheus, OpenLineage, Marquez | Observabilidade de dados e pipelines |
Arquiteturas de referência
Três jeitos de ligar as ferramentas acima num stack que funciona. Todas têm as mesmas três camadas, ingestão, processamento e armazenamento, mais o que quer que consuma o resultado.
1. Lakehouse em batch
ELT noturno e de hora em hora. O padrão quando a latência é medida em horas.
flowchart TB
subgraph ing["Ingestão"]
airbyte["Airbyte"]
debezium["Debezium + Kafka Connect"]
end
subgraph proc["Processamento"]
spark["Apache Spark"]
dbt["dbt"]
ge["Great Expectations"]
end
subgraph sto["Armazenamento"]
iceberg["Apache Iceberg"]
s3["MinIO / S3"]
polaris["Apache Polaris"]
end
subgraph out["Consumo"]
trino["Trino"]
superset["Apache Superset"]
end
airbyte --> spark
debezium --> spark
spark --> dbt --> ge --> iceberg
s3 -.- iceberg
polaris -.- iceberg
iceberg --> trino --> superset
O Apache Airflow fica fora do desenho, disparando cada seta acima.
2. Streaming
Segundos em vez de horas. Dois ramos saindo de um único job: a tabela para o histórico, o store OLAP para o dashboard.
flowchart TB
subgraph ing["Ingestão"]
debezium["Debezium"]
kafka["Apache Kafka"]
end
subgraph proc["Processamento"]
flink["Apache Flink"]
end
subgraph sto["Armazenamento"]
paimon["Apache Paimon no S3"]
clickhouse["ClickHouse"]
end
subgraph out["Consumo"]
trino["Trino"]
grafana["Grafana"]
end
debezium --> kafka --> flink
flink --> paimon --> trino
flink --> clickhouse --> grafana
O Airflow continua necessário aqui, não para agendar o job, mas para rodar a compactação e a expiração de snapshots que a tabela precisa, porque o job nunca para de escrever.
3. ML e inferência
Features escritas pelo mesmo pipeline que alimenta o treino, e um modelo servido a partir de um registry.
flowchart TB
subgraph ing["Ingestão"]
kafka["Apache Kafka"]
end
subgraph proc["Processamento"]
flink["Apache Flink"]
spark["Apache Spark"]
end
subgraph sto["Armazenamento"]
feast["Feast"]
delta["Delta Lake no S3"]
qdrant["Qdrant"]
end
subgraph train["Treino"]
ray["Ray"]
mlflow["MLflow Registry"]
end
subgraph serve["Serving"]
kserve["KServe"]
vllm["vLLM"]
end
kafka --> flink
kafka --> spark
flink --> feast
flink --> qdrant
spark --> delta
delta --> ray --> mlflow --> kserve
feast --> kserve
qdrant --> vllm
Repositórios oficiais
- Airbyte: ELT baseado em conectores para carregar dados num warehouse ou lake.
- Amundsen: Descoberta de dados e busca de metadados para analistas.
- Apache Airflow: Agenda e monitora pipelines escritos como DAGs em Python.
- Apache Arrow: Formato colunar em memória compartilhado entre engines e linguagens.
- Apache Atlas: Governança de metadados e linhagem para o ecossistema Hadoop.
- Apache Avro: Formato de serialização orientado a linhas que carrega o próprio schema.
- Apache Beam: Um único modelo de pipeline que roda em várias engines de batch e streaming.
- Apache Doris: Banco analítico MPP voltado a relatórios em tempo real.
- Apache Flink: Processamento de streams com estado, event time e exactly-once.
- Apache Hudi: Formato de tabela de lake com upserts e leituras incrementais.
- Apache Iceberg: Formato de tabela aberto com commits ACID, evolução de schema e time travel.
- Apache Kafka: Log distribuído para publicar e consumir streams de eventos.
- Apache NiFi: Roteamento e transformação baseados em fluxo, com editor visual.
- Apache ORC: Formato de arquivo colunar feito para leituras grandes no estilo Hive.
- Apache Paimon: Formato de tabela de lake projetado para ser escrito continuamente pelo Flink.
- Apache Parquet: O formato de arquivo colunar em que a maior parte do lake é armazenada.
- Apache Polaris: Catálogo aberto para que várias engines vejam as mesmas tabelas Iceberg.
- Apache Pulsar: Mensageria e streaming com armazenamento separado do serving.
- Apache Spark: Engine geral para batch, SQL e ML sobre grandes volumes de dados.
- Apache Superset: BI web com dashboards e exploração em SQL.
- Argo Workflows: Roda workflows nativos de contêiner como objetos do Kubernetes.
- BentoML: Empacota um modelo e suas dependências num serviço.
- ClickHouse: Column store para consultas analíticas rápidas em escala.
- Dagster: Orquestrador construído em torno de data assets em vez de tarefas.
- Dataform: Workflows de transformação em SQL com gestão de dependências.
- DataHub: Plataforma de metadados para catálogo, linhagem e ownership.
- dbt: Transforma selects em SQL em modelos testados, documentados e versionados.
- Debezium: Lê os logs de mudança do banco e os publica como eventos.
- Deequ: Checagens de qualidade de dados expressas como jobs Spark.
- Delta Lake: Camada de armazenamento transacional sobre arquivos Parquet.
- Dremio: Engine de consulta e camada semântica sobre o armazenamento do lake.
- DuckDB: Banco analítico que roda dentro do seu processo, sem servidor.
- Feast: Feature store que serve as mesmas features para treino e inferência.
- Flyte: Workflows tipados e versionados para dados e ML no Kubernetes.
- Grafana: Dashboards sobre métricas, logs e traces.
- Great Expectations: Declara expectativas sobre os dados e as valida.
- Hive Metastore: O catálogo de tabelas e partições que muitas engines ainda leem.
- Hopsworks: Feature store e plataforma de ML.
- Jupyter: Notebooks para análise interativa.
- KServe: Serve modelos no Kubernetes com autoscaling e canaries.
- Kubeflow: Plataforma de ML montada a partir de componentes do Kubernetes.
- Kubeflow Pipelines: Compõe e executa pipelines de ML como contêineres.
- LightGBM: Gradient boosting otimizado para velocidade em dados tabulares grandes.
- Marquez: Servidor de referência que coleta e armazena eventos OpenLineage.
- Metabase: BI que deixa quem não é engenheiro fazer perguntas ao banco.
- Metaflow: Workflows em Python para data science, da Netflix.
- Milvus: Banco vetorial para busca por similaridade em escala.
- MinIO: Object storage compatível com S3 que você mesmo roda.
- MLflow: Acompanha experimentos, empacota modelos e mantém o registry.
- NumPy: Arrays e computação numérica, a base do stack Python.
- NVIDIA Triton: Servidor de inferência para modelos em GPU e CPU.
- OpenLineage: Padrão aberto para pipelines reportarem o que leram e escreveram.
- OpenMetadata: Catálogo, linhagem, qualidade e governança num lugar só.
- OpenTelemetry: Padrão neutro de fornecedor para traces, métricas e logs.
- Pandas: DataFrames para manipulação de dados em Python.
- pgvector: Tipos e índices vetoriais dentro do PostgreSQL.
- Polars: DataFrames rápidos escritos em Rust, com engine de consulta lazy.
- Prefect: Orquestração para workflows em Python, feita para execuções dinâmicas.
- Presto: Engine SQL distribuída que consulta os dados onde eles estão.
- Project Nessie: Branches e commits no estilo Git para tabelas do lake.
- Prometheus: Banco de séries temporais e alertas para métricas.
- Python: A linguagem em que a maior parte deste stack é escrita e operada.
- PyTorch: Framework de deep learning com grafos dinâmicos.
- Qdrant: Engine de busca vetorial com filtros, escrita em Rust.
- R: Linguagem e ambiente para estatística.
- Ray: Runtime distribuído em Python para treino, tuning e serving.
- Redpanda: Broker compatível com Kafka sem JVM e sem ZooKeeper.
- Scikit-learn: Algoritmos clássicos de machine learning em Python.
- SciPy: Computação científica construída sobre o NumPy.
- Seldon: Faz deploy e monitora modelos no Kubernetes.
- Soda: Checagens de qualidade de dados escritas como regras legíveis.
- SQLMesh: Transformações com linhagem por coluna e ambientes virtuais.
- StarRocks: Banco OLAP MPP para consultas abaixo de um segundo sobre o lake.
- TensorFlow: Framework de deep learning com toolchain de produção.
- Trino: SQL distribuído que federa consultas entre muitas fontes.
- vLLM: Serving de alto throughput para grandes modelos de linguagem.
- Weaviate: Banco vetorial com módulos de embedding embutidos.
- XGBoost: Biblioteca de gradient boosting, o cavalo de batalha dos dados tabulares.
O Kafka Connect vem dentro de apache/kafka, o dbt Tests dentro de dbt-core e o Ray Serve dentro de ray-project/ray, então compartilham os repositórios acima.
Sem repositório público, por serem proprietários ou serviços gerenciados: Power BI, Tableau, Fivetran, Amazon S3, Google Cloud Storage, Azure Data Lake Storage, AWS Glue Catalog, Databricks, Starburst, Snowflake, BigQuery, Redshift, Tecton, Pinecone, Weights & Biases, Neptune, Comet, Vertex AI, SageMaker e Azure ML.