... | ... | @@ -4,89 +4,7 @@ Existe um arquivo `config.yaml.example` que pode ser copiado para se obter uma b |
|
|
|
|
|
Uma vez que o arquivo foi criado basta preenchê-lo.
|
|
|
|
|
|
## Arquivo
|
|
|
|
|
|
Primeiramente uma desctrição de cada campo do arquivo de configuração.
|
|
|
|
|
|
### *connection*
|
|
|
|
|
|
O primeiro campo do arquivo de configuração é o *connection* que descreve a conexão do Blendb com o banco de dados. Os seguintes parâmetros devem ser preenchidos
|
|
|
|
|
|
* **user**: Usuário do banco de dados.
|
|
|
* **database**: Nome do banco de dados.
|
|
|
* **password**: Senha do banco de dados.
|
|
|
* **host**: Máquina *host* do banco de dados. Em caso local pode ser utilizado *localhost* como valor.
|
|
|
* **port**: Porta na qual o serviço do banco de dados está executando. Normalmente para o PostgresSQL esse valor é 5432.
|
|
|
* **max**: Máximo de conexões na Pool de conexões.
|
|
|
* **idleTimeoutMillis**: Tempo que uma conexão com o banco de dados deve ficar inativa para ser encerrada.
|
|
|
|
|
|
### *struct*
|
|
|
|
|
|
Essa seção é relacionada a estrutura do banco de dados. A principio essas opções são utilizadas apenas para testes.
|
|
|
|
|
|
* **create**: Cria tabelas no banco de dados.
|
|
|
* **insert**: Insere dados a partir de planílias CSV nas respectivas tabelas.
|
|
|
|
|
|
Utiliando esse guia, você deve colocar o valor de ambos os campos como `false`.
|
|
|
|
|
|
### *schema*
|
|
|
|
|
|
Essa é a seção mais importante e mais trabalhosa do processo. O objetivo dela é ensinar ao Blendb quais são as agregações disponíveis, quais são as métricas e quais são as dimensões.
|
|
|
|
|
|
#### *metrics*
|
|
|
|
|
|
Nessa seção é informada as métricas do Blendb. Essa seção é uma lista de objetos, onde cada objeto descreve uma métrica. Para um exemplo visualize o arquivo *ci_test.yalm.example*.
|
|
|
|
|
|
* **name**: Nome da métrica.
|
|
|
* **dataType**: O tipo de dados da métrica. Tipos possíveis são:
|
|
|
* *float*: Para números em ponto flutuante.
|
|
|
* *integer*: Para números inteiros.
|
|
|
* **agregation**: Qual função de agregação será utilizada por essa métrica. As opções são:
|
|
|
* *avg*: Média.
|
|
|
* *sum*: Soma.
|
|
|
* *max*: Máximo.
|
|
|
* *min*: Mínimo.
|
|
|
* *count*: Quantos.
|
|
|
* **description**: Explicação da métrica. É uma descrição mais detalhada sobre o que é essa métrica.
|
|
|
Todas essas informações são fornescidas pela API. Ajuda na realização de consultas saber o que esse dado é.
|
|
|
|
|
|
|
|
|
#### *dimensions*
|
|
|
|
|
|
Nessa seção é informada as dimensões do Blendb. Essa seção é uma lista de objetos, onde cada objeto descreve uma dimensão. Para um exemplo visualize o arquivo *ci_test.yalm.example*.
|
|
|
|
|
|
* **name**: Nome da dimensão
|
|
|
* **dataType**: O tipo de dados da métrica. Tipos possíveis são
|
|
|
* *float*: Para números em ponto flutuante.
|
|
|
* *integer*: Para números inteiros.
|
|
|
* *string*: Para texto.
|
|
|
* *date*: Para datas.
|
|
|
* *boolean*: para tipo verdadeiro/falso.
|
|
|
* **description**: Explicação da dimensão. É uma descrição mais detalhada sobre o que é essa dimensão.
|
|
|
* **parent**: Dimensão mãe. Recebe o nome (**name**) de outra dimensão, **previamente** especifícada. Esse é um parametro opicional no caso de uma dimensão ser uma sub dimensão. Uma sub dimensão é uma dimensão gerada a partir de outra através de uma relação. Isso é usado por datas, para tambṕem se obter dia, mês e ano.
|
|
|
* **relation**: Relação com outra dimensão. Só pode ser usado quando a dimensão possuí um *parent*. Descreve a relação entre as duas dimensões. As opções são:
|
|
|
* *day*: Extraí o dia de uma data (*parent* deve ter tipo *date*).
|
|
|
* *month*: Extraí o mês de uma data (*parent* deve ter tipo *date*).
|
|
|
* *year*: Extraí o ano de uma data (*parent* deve ter tipo *date*).
|
|
|
* *dayofweek*: Extraí o dia da semana de uma data (*parent* deve ter tipo *date*).
|
|
|
|
|
|
Atualmente só existem relações para datas. Recomendamos colocar como o tipo de dados de uma subdimensão como um inteiro.
|
|
|
|
|
|
Todas essas informações são fornescidas pela API. Ajuda na realização de consultas saber o que esse dado é.
|
|
|
|
|
|
#### *views*
|
|
|
|
|
|
Nessa seção é informada as agregações do Blendb. Essa seção é uma lista de objetos, onde cada objeto descreve uma agregação. Para um exemplo visualize o arquivo *ci_test.yalm.example*.
|
|
|
|
|
|
* **alias**: Apelido para a dimensão: **Não** é usado internamente no Blendb, mas arquivos auxiliares utilizam esse atributo como comentário e "nome" da agregação. principalmente utilizado pelos desenvolvedores para saber qual é aquela agregação.
|
|
|
* **file**: Caminho para arquivo sql que define essa agregação. Normalmente esse caminho é `../database/views/{{name}}.sql` onde {{name}} é o arquivo que define a agregação.
|
|
|
* **origin**: Valor `true/false` que indica que a agregação é uma fonte dos dados ou se é apenas uma agregação de uma ou mais fontes.
|
|
|
* **data**: Caminho para arquivo json que define uma fixture. Normalmente esse caminho é `test/{{sgbd}}/fixtures/{{name}}.json` onde {{sgbd}} indica o banco de dados e {{name}} é o arquivo que define a agregação que será inserido. Esse atributo é usado apenas para testes.
|
|
|
* **origin**: Valor `true/false` que indica que a agregação é uma fonte dos dados ou se é apenas uma agregação de uma ou mais fontes.
|
|
|
* **dimensions**: Lista de dimensões: Esse atribuito é uma lista que contém o nome de uma dimensão que essa agregação contém. Esse nome deve ser identico ao especificado no atribuito *name* da dimensão.
|
|
|
* **dimensions**: Lista de dimensões: Esse atribuito é uma lista que contém o nome de uma dimensão que essa agregação contém. Esse nome deve ser identico ao especificado no atribuito *name* da dimensão.
|
|
|
* **metrics**: Lista de métricas: Esse atribuito é uma lista que contém o nome de uma métrica que essa agregação contém. Esse nome deve ser identico ao especificado no atribuito *name* da métrica.
|
|
|
* **keys**: Lista de dimensões que definem a chave priméria da agregação. A chave primária da agregação é sempre um sub-conjunto das dimensões. Caso esse atributo não seja especificado assume-se que todas as dimensões formam a chave. Esse atribuito é uma lista que contém o nome de uma dimensão que essa agregação contém. Esse nome deve ser identico ao especificado no atribuito *name* da dimensão.
|
|
|
|
|
|
## Preenchendo
|
|
|
|
... | ... | |