Plataformas e Ferramentas Analíticas
02. Linguagens de consulta
2º capítulo da apostila Plataformas e Ferramentas Analíticas: estudo contínuo e em linguagem simples sobre Linguagens de consulta, com conceitos conectados, aplicações e mapa mental.
Neste capítulo · 14 seções⌄
- O fio condutor
- Declarar o resultado e controlar a granularidade
- ROLLUP, CUBE e GROUPING SETS
- Janelas preservam linhas
- MDX e o espaço multidimensional
- Hive e Spark SQL
- Consultas a documentos e CQL
- PROC SQL e federação
- Caso integrado e raciocínio aplicado
- Resumo para revisão
- Ligando as partes em uma análise completa
- Como estudar e aplicar o capítulo
- Síntese e passagem para o próximo capítulo
- Base de cobertura
Uma consulta analítica deve produzir o resultado correto no nível de detalhe desejado. SQL, MDX, HiveQL, CQL e interfaces de consulta a documentos expressam problemas em modelos diferentes. Este capítulo parte de agrupamentos e janelas e avança para cubos, documentos e processamento distribuído.
Com o fluxo analítico completo em mente, estudamos linguagens, bibliotecas, motores distribuídos e produtos corporativos. O objetivo é compreender o papel de cada ferramenta dentro de uma arquitetura. Este é o capítulo 2 de 19 da disciplina Plataformas e Ferramentas Analíticas. Ele retoma Fundamentos: ETL, BI, Analytics, Big Data, Machine Learning e IA e utiliza essa base para avançar. Na sequência, estudaremos Python para análise de dados.
O fio condutor
Ciência de Dados começa com uma pergunta e termina com uma decisão que precisa ser compreendida, avaliada e acompanhada. Entre esses dois pontos, dados são coletados, examinados e transformados; métodos são escolhidos; resultados são validados; e limitações são comunicadas. Nenhuma etapa compensa automaticamente uma falha grave ocorrida na etapa anterior.
Neste capítulo, use Linguagens de consulta para acompanhar três dimensões: o problema que se deseja resolver, a evidência disponível e o critério usado para avaliar o resultado. Essa separação ajuda a evitar soluções tecnicamente sofisticadas que não respondem à necessidade real.
Declarar o resultado e controlar a granularidade
Começamos por Declarar o resultado e controlar a granularidade, pois essa base organiza os conceitos e exemplos que aparecerão no restante do capítulo.
SQL é declarativo: descreve o resultado e permite ao otimizador escolher o plano. Código procedural pode orquestrar consultas e etapas, portanto os paradigmas são complementares. Logicamente, FROM e JOIN formam a entrada, WHERE filtra linhas, GROUP BY agrupa e HAVING filtra grupos. Para selecionar vendedores com total acima de 5000, a condição é HAVING SUM(valor)>5000, depois da agregação.
JOIN pode multiplicar registros. Se cada venda encontra três linhas em outra tabela, SUM(valor) soma três cópias; a função não corrige a granularidade automaticamente. Agregue no nível apropriado ou use uma relação sem multiplicação indevida. LEFT JOIN preserva a referência, como produtos sem vendas; colocar no WHERE uma condição que rejeita os nulos do lado direito pode desfazer essa preservação.
Percentual do total combina valor individual e denominador correto, por subconsulta ou janela. Comparar o total de um cliente com a média dos totais exige primeiro obter totais por cliente; a média das linhas originais responde outra pergunta. Trate divisão por zero e tipos numéricos. Norte com 3000 e 2500 soma 5500 e passa em HAVING SUM(valor)>5000, enquanto Sul com 1000 e 1200 não passa.
ROLLUP, CUBE e GROUPING SETS
Depois de compreender Declarar o resultado e controlar a granularidade, passamos a ROLLUP, CUBE e GROUPING SETS. A nova seção acrescenta outra etapa ao mesmo raciocínio e mostra como as decisões anteriores influenciam as próximas.
ROLLUP(a,b) gera os níveis (a,b), (a) e total geral (). A ordem importa: ROLLUP(b,a) subtotaliza por b. CUBE(a,b) gera (a,b), (a), (b) e (). Com n expressões simples, CUBE especifica 2 elevado a n conjuntos de agrupamento, não necessariamente esse número de linhas no resultado. GROUPING SETS permite escolher exatamente quais níveis produzir.
Continue lendo de graça
O capítulo inteiro está liberado no plano gratuito
Criar conta leva menos de um minuto e não pede cartão. Você destrava o texto completo, o mapa mental, o PDF para estudar off-line e ainda resolve questões inéditas todo dia.
Leu o resumo? Agora pratique.
São 60 questões inéditas de Linguagens de consulta, todas comentadas alternativa por alternativa.
Você volta para este capítulo depois de criar a conta.
Fontes consultadas
- PostgreSQL: consultas
- Apache Hive: documentação
- MongoDB: pipeline de agregação
- Microsoft: conceitos MDX
- Acervo publicado de Ciência de Dados: 60 questões deste tópico; conceitos revisados e organizados nas seções.