|
|
No passo [anterior](passsos/base/configuração), o arquivo de configuração foi definido. Nesse passo, durante a criação das agregações, um arquivo `../database/views/{{name}}.sql` foi criado. Esse arquivo contém a definição de uma agregação base, e ele será preenchido agora.
|
|
|
|
|
|
## Agregação base
|
|
|
|
|
|
Uma agregação base é uma fonte de dados. Ela é o nível mais profundo que Blendb pode buscar. Essas tabelas possuem o nível de granularidade máximo disponível no banco. O objetivo dessas agregações é tornar os dados contidos no banco de dados disponíveis para que o Blendb os utilize.
|
|
|
|
|
|
## Arquivo {{nome}}.sql
|
|
|
|
|
|
Esse arquivo deve conter uma consulta que traduz as colunas da tabela do banco de dados em métricas e dimensões da respectiva agregação. No caso de uma consulta sql ele é bem simples.
|
|
|
|
|
|
Exemplo:
|
|
|
```sql
|
|
|
SELECT
|
|
|
coluna_dimensão1 AS "dimensão1",
|
|
|
coluna_dimensão2 AS "dimensão2",
|
|
|
COALESCE(coluna_dimensão3, 'Não declarado') AS "dimensão3",
|
|
|
coluna_métrica1 AS "SOMA_métrica1",
|
|
|
coluna_métrica1 AS "MEDIA_métrica1",
|
|
|
coluna_métrica1 AS "MÁXIMO_métrica1",
|
|
|
coluna_métrica1 AS "MÍNIMO_métrica1",
|
|
|
coluna_métrica2 - outra_coluna_métrica2 AS "SOMA_métrica2",
|
|
|
coluna_métrica1 - outra_coluna_métrica2 AS "MEDIA_métrica2",
|
|
|
coluna_métrica1 - outra_coluna_métrica2 AS "MÁXIMO_métrica2",
|
|
|
coluna_métrica1 - outra_coluna_métrica2 AS "MÍNIMO_métrica2",
|
|
|
'1'::INTEGER AS "métrica de contagem"
|
|
|
FROM
|
|
|
tabela_{{nome}};
|
|
|
```
|
|
|
|
|
|
Esse exemplo mostra um exemplo de arquivo com alguma funcionalidades interessantes.
|
|
|
* Em geral, cada coluna que representa uma dimensão, se transforma naquela dimensão
|
|
|
* Observe (dimensão3) que transformações podem ser aplicadas nesse processo de tradução.
|
|
|
No caso da dimensão3, ou o valor da coluna_dimensão3 serão adicionado ou 'Não declarado'. Para o Blendb essa transformação é invisível.
|
|
|
* Quando se tem várias funções de agregação aplicadas sobre o mesmo dados, isso gera várias métricas diferentes. A transformação de columa em métrica deve ser idêntica para todas as funções de agregação.
|
|
|
* Assim como nas dimensões as métricas também podem sofrer transformações.
|
|
|
* Caso uma métrica de contagem tenha sido adicionado a agregação, recomendamos que ela possua o formato usado no exemplo.
|
|
|
|
|
|
## Resumo
|
|
|
|
|
|
Cada agregação deve possuir um arquivo .sql que representa uma consulta que retorna *todos* os dados daquela tabela (todos os dados visíveis ao Blendb) e as colunas devem ter os nomes das métricas e dimenões das tabelas definidas no arquivo de configuração.
|
|
|
|
|
|
Essa consulta deve possuir *exatamente* as métricas e dimensões que foram atribuídas a agregação no arquivo de configuração. Métricas e dimensões extras serão ignoradas e não encontradas pelo Blendb. Métricas e dimensões faltantes podem gerar erros na geração das consultas ou consultas inconsistentes.
|
|
|
|
|
|
## Finalizando
|
|
|
|
|
|
Uma vez que todos os arquivos `.sql` foram criado existe um *script* de [criação do esquema]((desenvolvimento/repositório/database) (**createSchema.ts**). Esse script utiliza o arquivo de configuração e os arquivos `.sql` escritos nesse passo para criar um arquivo `.sql` que deve ser executado no banco de dados para criar **visões** no banco de dados. Essas **visões** são as tabelas que o Blendb tem acesso e utiliza para realizar as suas consultas.
|
|
|
|
|
|
Uma vez que esse arquivo é executado no banco, o Blendb já pode ser utilizado.
|
|
|
|
|
|
## [Home](/)
|
|
|
* [Requisitos](passos/requisitos)
|
|
|
* [Instalação](passos/instalação)
|
|
|
* [Gerando o arquivo de configuração](passos/configuração)
|
|
|
* **Gerando agregações base**
|
|
|
* [Gerando o serviço (SystemD)](passos/serviço)
|
|
|
* [Inicializando](passos/inicializando)
|
|
|
* [Utilizando](passos/utilizando) |
|
|
\ No newline at end of file |