Blog

Perguntas sobre big data que a gente sempre recebe, respondidas direto

Perguntas que aparecem o tempo todo sobre pipelines de Spark, dbt e Flink — as mesmas que moldaram o que o motor de regras do opti-pipe realmente verifica.

Ler em:
Filtrar por tag:
Filtrar por nível:

SparkNível médio

Como faço deploy de um job do Spark - client mode ou cluster mode?

A flag --deploy-mode do spark-submit decide onde o driver roda - e client mode amarra silenciosamente a sobrevivência de um job de produção a qualquer máquina que o tenha submetido.

SparkSenior

Como faço deploy de um cluster Spark - Kubernetes, YARN, ou EMR - e o que muda de verdade?

O motor de execução do Spark é idêntico não importa o que agende seus executors. A pergunta real é quem é dono do provisionamento e da recuperação de falhas - o Spark, você, ou um fornecedor.

FlinkNível médio

Como faço deploy de um job do Flink - session mode ou application mode?

Session mode e application mode têm um trade-off em exatamente uma dimensão: se um job com mau comportamento pode derrubar outros junto com ele. Veja quando cada um é o padrão certo.

FlinkSenior

Como faço deploy de um cluster Flink no Kubernetes usando a integração nativa?

A integração nativa do Flink com Kubernetes significa que o próprio Flink fala com a API do Kubernetes para gerenciar seus pods de TaskManager - um deploy significativamente diferente de só rodar Flink em um container.

dbtJunior

Como faço deploy do dbt para ele realmente rodar em um horário em produção?

dbt run só roda uma vez e termina - o dbt não tem opinião sobre scheduling. Veja o que dbt Cloud, um orquestrador auto-hospedado, e cron simples realmente cuidam para você.

dbtJunior

Como configuro o profiles.yml do dbt para que credenciais nunca acabem no git?

O dbt separa de propósito "o que construir" de "onde se conectar" em dois arquivos. Veja como profiles.yml e env_var() deveriam manter credenciais fora do git.

dbtJunior

Como configuro o sources.yml do dbt para que dados obsoletos falhem alto, não em silêncio?

Um model pode rodar limpo contra uma tabela que parou de atualizar há três dias. Veja como sources.yml e dbt source freshness pegam isso em vez de ficarem quietos.

FlinkNível médio

Como configuro o state backend e o armazenamento de checkpoints do Flink antes de ir para produção?

Os padrões do Flink fazem um job rodar rápido no dev, não sobreviver a um restart real com tamanho de estado real. Veja como state backend e armazenamento de checkpoints realmente funcionam.

FlinkNível médio

Como configuro estratégias de restart do Flink para uma falha não entrar em loop para sempre?

O comportamento padrão de restart do Flink é pensado para um tropeço ocasional, não um deploy genuinamente quebrado. Veja como fixed-delay, exponential-delay e failure-rate realmente diferem.

SparkNível médio

Como configuro dynamic allocation do Spark do zero, não só ajusto depois?

spark.dynamicAllocation.enabled=true sozinho normalmente não faz nada. Veja o pré-requisito do shuffle service e os limites min/max que realmente fazem dynamic allocation funcionar.

SparkJunior

Como ler um event log do Spark sem abrir a Spark UI?

A Spark UI é só um renderizador desse arquivo. Aqui está o que realmente tem nele, e o comando jq de uma linha que te dá os mesmos números mais rápido.

dbtJunior

O que realmente há dentro do run_results.json do dbt, e por que vale a pena lê-lo diretamente?

Toda execução do dbt escreve esse arquivo em target/, você abrindo ou não. Ele já contém a resposta para «qual modelo está lento».

SparkNível médio

Por que a utilização do meu cluster Spark é baixa mesmo com o job terminando com sucesso?

«Terminou sem erros» e «usamos o cluster que estamos pagando» são duas afirmações diferentes. Veja como saber qual delas você está realmente vendo.

SparkNível médio

Quando o broadcast join do Spark realmente ajuda, e quando ele se volta contra você?

Um broadcast join é uma aposta de que um lado do join é pequeno o suficiente. Quando acerta, é o join mais rápido do Spark - quando erra, a forma mais rápida de derrubar um driver por OOM.

SparkJunior

O problema dos arquivos pequenos: por que seu job Spark gasta mais tempo em I/O do que em computação

Um job pode ser limitado por I/O e parecer limitado por computação em qualquer dashboard que só acompanhe CPU - o gargalo real está em abrir arquivos, não em ler bytes.

FlinkJunior

Como ler uma exportação de métricas do Flink, e quais números realmente importam?

A API de métricas do Flink retorna dezenas de contadores por tarefa. Esta é a lista curta que realmente responde «esse job está bem?», e por que o resto pode esperar.

FlinkSenior

Checkpointing no Flink: por que ele falha em silêncio, e como ajustar o intervalo e o timeout

Um checkpoint que expira em silêncio sob carga não derruba o job - ele só te deixa com uma janela de recuperação muito maior do que você pensa que tem.

dbtNível médio

Modelos incrementais do dbt: quando «incremental» silenciosamente vira um full refresh

Uma mudança de schema ou um on_schema_change mal configurado pode forçar em silêncio uma reconstrução completa a cada execução - sem erro, só uma execução muito mais longa e uma fatura maior.

SparkSenior

Execução especulativa no Spark: rede de segurança ou multiplicador de custo escondido?

A execução especulativa relança tarefas lentas apostando que são retardatárias. Boa aposta para um nó com problema, ruim para skew de dados - veja como distinguir.

InfraNível médio

Memória do driver vs. memória do executor: não são o mesmo problema de ajuste

Um OOM do driver e um OOM do executor quase não compartilham causas, mesmo que a primeira coisa que todo mundo tenta seja a mesma: aumentar a configuração de memória.

dbtJunior

O ClickHouse agora está na plataforma dbt — o que isso realmente significa para o seu pipeline

O ClickHouse se tornou o primeiro adaptador v2 construído por um parceiro na plataforma dbt, com o novo motor Fusion do dbt baseado em Rust — isto é o que já dá para usar hoje.

SparkJunior

Por que meu job do Spark ficou mais lento do nada, sem mudanças no código?

Nove em cada dez vezes não é o código. É o dado, o cluster ou uma configuração que silenciosamente parou de bater com um dos dois.

SparkNível médio

Como escolho o número certo de shuffle partitions, memória do executor e núcleos?

Não existe uma resposta universal, mas existe um ponto de partida defensável — e, mais útil ainda, uma forma de saber quando seus números atuais estão errados.

Spark e FlinkNível médio

Por que estou recebendo erros de OutOfMemory e como resolvo isso de verdade?

"Simplesmente aumente a memória do executor" resolve o sintoma metade das vezes e desperdiça dinheiro na outra metade. Veja como saber em qual caso você está.

CustoNível médio

Como reduzo minha conta do Databricks/EMR/Glue sem quebrar nada?

Nem toda alavanca de custo carrega o mesmo risco. Esta é a ordem que traz economia real antes de você mexer em algo que pode realmente quebrar um pipeline.

SparkNível médio

Como detecto e corrijo data skew?

O skew é invisível nas métricas agregadas e óbvio nas métricas por task — basta olhar a visão certa.

InfraestruturaSenior

Qual o tamanho de cluster e a política de autoscaling certos para essa carga de trabalho?

O tamanho certo de cluster não é um número que você escolhe uma vez — é uma política que você define a partir de como a carga de trabalho realmente se comporta, e revisa conforme esse comportamento muda.

dbtNível médio

Como acelero modelos dbt e reduzo o custo de computação no Snowflake/BigQuery?

Em um projeto dbt, tempo de execução e conta do warehouse são quase a mesma métrica com dois nomes diferentes — corrigir um geralmente corrige o outro.

FlinkSenior

Como configuro corretamente parallelism e backpressure em um job de streaming no Flink?

Backpressure não é um bug para eliminar — é o Flink dizendo com precisão onde está o gargalo real do seu pipeline.

OperaçõesJunior

Por que meu pipeline funciona no dev mas falha ou fica lento em produção?

Dev não mente exatamente — só responde uma pergunta diferente da que importa em produção: "isso funciona", não "isso funciona com 50x mais dados".

OperaçõesNível médio

Como recebo alertas antes de um problema de pipeline ficar caro?

Plataformas completas de observabilidade resolvem isso, mas é plataforma demais para uma pergunta que geralmente se resume a quatro ou cinco números indo na direção errada.

CustoNível médio

Como reduzo o custo do meu cluster Flink sem quebrar o checkpointing?

A conta não dispara por causa de um job ruim — ela sobe aos poucos por causa de algumas configurações ajustadas uma vez durante o rollout e nunca revisadas. É por aí que vale começar.