Consulta
Tipicamente, em bancos de dados, para realizar uma consulta, o usuário deve especifícar 3 informações.
- Quais dados ele quer (colunas das agregações)
- Aonde esses dados estão, em várias ocasições, uma regra de junção das fontes dos dados (quais agregações e JOIN)
- Restrições, para filtrar os dados retornados.
O Blendb propoe a retirada do segundo passo, com ele, basta dizer o que se quer.
Métricas e Dimensões
Para especificar quais dados devem ser retornados, o Blendb propos 2 tipos distintos de dados métricas e dimensões.
Essa distinção foi feita pois, estudando as consulta analíticas verificou-se que existem dois comportamentos para os dados. Um deles é uma estatística, uma valor numérico que representa uma informação, e outro é uma caracteristica sobre a estátistica. A métrica representa a estatística, ou um fato, e a dimensão a caracacterística.
Métrica
As métricas são valores numéricos. Em geral são as informações valiosas da base de dados. Mais que isso normalmente essas informações aparecem de forma indireta na base de dados.
Uma informação indireta significa que não existe um registro com exatamente aquela informação, mas ela pode ser obtida através de outros registros.Por exemplo, uma métrica comum é o lucro. A granularidade comum para se salvar o lucro seria o lucro por item vendido. Para obter o lucro total, e a resposta da pergunta, basta somar todos os regristros de lucro.
Esse é o comportamento de uma métrica, combinar vários registros para criar uma resposta, essa combinação é feita através de uma função de agregação. Todas as métricas tem uma função de agregação atreladas a elas. Por isso, dizemos que no Blendb métricas são agregadas.
Dimensões
As dimensões são caracteristicas. Elas podem ser qualquer tipo de dados, inclusive numéricos. As dimensões oferecem um nível de detalhe maior sobre as métricas pesquisadas.
Por exemplo, na pergunta "Qual o lucro por mês?", a métrica lucro é usada, mas o nível de detalhe agora é mês. Quando a métrica foi agregada ao invés de somar todos os dados juntos, elas foram agrupadas usando a caracteristica mês. Em outras palavras, os registros do mesmo mês foram somados juntos.
Filtros
Os filtros fazem a parte de restringir os dados da consulta. "Qual o lucro no mês de abril?" utiliza uma restrição, o mês deve ser abril.
Um filtro tem 3 partes:
- A dimensão que será restringida
- Operação
- Valor
No caso da última pergunta teríamos; dimensão = mês; operação = igualdade; valor = abril.
Diversas operações estão disponíveis no Blendb. Igualdade, diferença, maior/ menor que, maior/menor igual à. A única restrição sobre as operações é relativa ao tipo de dados. Não faz sentido uma dimensão do tipo booleana ter o operador maior que.Diferentes filtros podem ser combinados usando os peradores lógicos E(AND) e OU (OR).
Linguagem
Para realizar uma consulta basta especificar 3 parâmetros:
- Uma lista de métricas
- Uma lista de dimensões
- Uma lista de filtros
É dito que nessa consulta passa-se, quais informações se quer (métricas), o nível de detalhe que se quer (dimensões) e quais as restrições sobre os dados (filtros).