Wiki
Wiki de dados.
34 artigos, 38 consultas que rodam aqui e 18 exemplos de Python conferidos.
34 artigos
SQL
- SELECT e a ordem lógicaO SQL é escrito começando pelo SELECT, mas é avaliado começando pelo FROM. Entender isso evita metade dos erros.
- JOINsINNER, LEFT, anti-join e semi-join, e o que acontece com a linha que não encontra par.
- GROUP BY, HAVING e agregaçõesCOUNT(*) conta linhas, COUNT(coluna) conta valores; HAVING filtra grupos; NULL vira um grupo.
- NULL e a lógica de três valoresNULL não é zero nem texto vazio: é "desconhecido". Comparar com ele dá desconhecido, e o WHERE só deixa passar o verdadeiro.
- Window functionsCalcular sobre um grupo de linhas sem juntar as linhas: ranking, total acumulado, linha anterior.
- CTEs (WITH) e recursãoDar nome a um passo da consulta deixa o SQL legível de cima para baixo. Com RECURSIVE, gera sequências e percorre hierarquias.
- CASE, agregação condicional e pivotCASE é o if do SQL. Dentro de um SUM, vira colunas por categoria sem precisar de PIVOT.
- DeduplicaçãoEvento repetido é regra em dado bruto (reenvio, retry, reprocessamento). DISTINCT resolve a cópia exata; ROW_NUMBER resolve "a mais recente de cada chave".
- Subconsultas, IN e EXISTSSubconsulta escalar, IN, EXISTS e correlacionada. Quando cada uma serve e por que EXISTS é a mais segura com NULL.
Python para dados
- Python para dados: listas, dicionários e compreensõesO básico que aparece em todo script de dados: compreensões, contagem por chave, ordenação estável e None.
- Geradores e avaliação preguiçosaUm gerador produz um item por vez, só quando pedido. É a mesma ideia do Spark preguiçoso, em pequena escala.
- CSV e JSON com a biblioteca padrãoLer CSV com aspas e vírgula no meio, converter tipos com cuidado e achatar JSON aninhado, sem dependência nenhuma.
- Datas, horas e fusosTimestamp sem fuso é ambíguo. Guarde em UTC, converta na hora de mostrar, e cuidado com a diferença entre data e instante.
- SQL de dentro do Python (sqlite3)Banco em memória para testar regra de SQL sem servidor, e parâmetros com ? para nunca montar SQL com texto concatenado.
PySpark
- Avaliação preguiçosa: transformações e açõesNo Spark, filter, select e join só desenham um plano. Nada é lido até uma ação (count, show, write, collect) pedir o resultado.
- Partições, repartition e coalescePartição é a unidade de paralelismo: uma tarefa por partição. Poucas ociosam o cluster; muitas pequenas custam mais em agendamento do que em trabalho.
- Joins no Spark: broadcast e shuffleJuntar uma tabela grande com uma pequena não precisa mover a grande pela rede. Saber qual estratégia o Spark escolheu é ler o plano.
- UDFs ou funções nativasUma UDF em Python tira a linha da JVM, serializa, roda no Python e volta. Função nativa roda dentro do plano otimizado. Use UDF só quando não houver nativa.
- Cache e persistcache() guarda um resultado intermediário para não recalcular. Ajuda quando ele é reaproveitado; atrapalha quando ocupa memória à toa.
Delta Lake
- Delta Lake: transações ACID sobre arquivosUma tabela Delta é Parquet mais um log de transações (_delta_log). O log é o que dá atomicidade, isolamento, esquema e histórico.
- Time travel e históricoCada commit é uma versão. Dá para ler a tabela como ela estava, comparar versões e restaurar, enquanto os arquivos antigos existirem.
- MERGE (upsert)Atualizar o que já existe e inserir o que é novo numa operação só, atômica. É o coração da carga incremental na camada silver.
- OPTIMIZE, Z-ORDER, clustering e VACUUMMuitos arquivos pequenos deixam toda leitura lenta. OPTIMIZE compacta, Z-ORDER e liquid clustering aproximam dados parecidos, VACUUM limpa o que sobrou.
Arquitetura e modelagem
- Arquitetura medalhão (bronze, silver, gold)Três camadas de qualidade crescente. Bronze guarda como chegou, silver limpa e padroniza, gold responde perguntas de negócio.
- ETL e ELTA diferença é onde a transformação acontece: antes de carregar (ETL) ou dentro da plataforma, depois de carregar o bruto (ELT).
- Modelagem dimensional (star schema)Fatos (o que aconteceu, com números) no centro; dimensões (quem, o quê, quando, onde) em volta. É o formato que BI lê melhor.
- Dimensões que mudam (SCD tipos 1 e 2)Cliente muda de cidade. Sobrescrever (tipo 1) perde o passado; versionar (tipo 2) guarda cada versão com vigência.
Databricks
- Jobs e Workflows: orquestração no DatabricksUm job é um grafo de tarefas com dependências, agenda, tentativas e alertas. A agenda usa cron no formato Quartz, com segundos.
- Compute: clusters, job clusters e serverlessCluster interativo é para explorar; job cluster nasce e morre com o job. A escolha do compute é a maior alavanca de custo no Databricks.
- Unity Catalog e governançaUm lugar só para dizer quem pode ler o quê, com nome de três níveis (catálogo.schema.tabela), permissões herdadas e linhagem automática.
Qualidade, CI/CD e custo
- Qualidade de dadosRegras escritas como consulta, que rodam a cada carga e barram ou separam o que viola. Qualidade que depende de alguém olhar não é qualidade.
- CI/CD para dadosNotebook e SQL também são código: versionados no Git, testados a cada mudança e implantados por pipeline, nunca copiados à mão para produção.
- Otimização de custo de pipelinesCusto é máquina × tempo. Ler menos dado, usar o compute certo e não deixar nada ligado à toa resolve a maior parte da conta.
Power BI
Nada encontrado. Tente outra palavra.
Saídas conferidas rodando cada exemplo; PySpark, por checagem de sintaxe.