|
|
O Blendb possui dois arquivos de configuração, o arquivo `config/config.yaml` e o arquivo `config/config.env`
|
|
|
O Blendb possui dois arquivos de configuração: o arquivo `config/config.yaml` e o arquivo `config/config.env`
|
|
|
|
|
|
Segue uma descrição detalhada dos arquivos de configuração do Blendb, explicando as principais caracteristicas de cada campo.
|
|
|
|
|
|
O arquivo `config/config.env` não deve ser enviado ao git, por conter informações sensíveis como senhas para acesso ao Banco de dados.
|
|
|
Segue uma descrição detalhada dos arquivos de configuração do Blendb, explicando as principais características de cada campo.
|
|
|
|
|
|
O arquivo `config/config.env` não deve ser enviado ao git, pois contém informações sensíveis, como senhas para acesso ao banco de dados.
|
|
|
Se você está trabalhando em um projeto compartilhado, obtenha uma cópia desse arquivo com outro desenvolvedor. Para criar esse arquivo do zero, pode-se seguir este [guia](passos/configuração).
|
|
|
|
|
|
O arquivo `config/config.yaml` é um arquivo que descreve o esquema do banco de dados. Ele não deve ser enviado para o repositório do Blendb, pois é uma característica de cada instância e não do projeto Blendb em sí. O ideal é que o projeto que utilzia o Blendb coloque esse arquivo em seu próprio repositório.
|
|
|
O arquivo `config/config.yaml` é um arquivo que descreve o esquema do banco de dados. Ele não deve ser enviado para o repositório do Blendb, pois é uma característica de cada instância e não do projeto Blendb em si. O ideal é que o projeto que utiliza o Blendb tenha esse arquivo em seu próprio repositório.
|
|
|
|
|
|
Um exemplo desses arquivos pode ser encontrado em `config/config.yaml,example`, `config/config.env.example`.
|
|
|
|
|
|
O arquivo `config/ci_test.yaml.example` descreve o banco de dados utilizado no processo de build e é um arquivo `config.yaml` válido e também pode ser usado como exemplo.
|
|
|
|
|
|
O arquivo `config/ci_test.env.example` descreve as configuração do banco de dados e do adaptador utilizado e é um arquivo `config.env` válido e também pode ser usado como exemplo.
|
|
|
O arquivo `config/ci_test.env.example` descreve as configuração do banco de dados e do adaptador utilizado, e também é um arquivo `config.env` válido podendo ser usado como exemplo.
|
|
|
|
|
|
## config.env
|
|
|
|
|
|
Esse arquivo descreve uma sequencia de váriaveis de ambiente, uma váriável por linha.
|
|
|
Esse arquivo descreve uma sequência de váriaveis de ambiente, uma váriável por linha.
|
|
|
As variáveis disponíveis são:
|
|
|
|
|
|
* **BLENDB_DB_USER**: Usuário do banco de dados.
|
... | ... | @@ -25,7 +24,7 @@ As variáveis disponíveis são: |
|
|
* **BLENDB_DB_HOST**: Máquina *host* do banco de dados. Em caso local pode ser utilizado *localhost* como valor.
|
|
|
* ***BLENDB_DB_PORT*: Porta na qual o serviço do banco de dados está executando. Normalmente para o PostgresSQL esse valor é 5432.
|
|
|
* **BLENDB_ST_CREATE**: Cria tabelas no banco de dados. Valor verdadeiro/falso. o valor verdadeiro normalmente só é utilizando no banco de dados de teste
|
|
|
* **BLENDB_ST_INSERT**: Insere dados a partir de planílias CSV nas respectivas tabelas. Valor verdadeiro/falso. O valor verdadeito normalmente só é utilizado no banco de dados de teste.
|
|
|
* **BLENDB_ST_INSERT**: Insere dados a partir de planilhas CSV nas respectivas tabelas. Valor verdadeiro/falso. O valor verdadeito normalmente só é utilizado no banco de dados de teste.
|
|
|
* **BLENDB_ADAPTER**: Qual adaptador de banco de dados deve ser utilizado, Atualmente apenas o valor **postgres** pode ser utilizado
|
|
|
* **PORT**: Qual porta o serviço executa
|
|
|
|
... | ... | @@ -33,11 +32,11 @@ As variáveis disponíveis são: |
|
|
|
|
|
Esse arquivo é em formato YAML, a seguir são descritos cada um dos campos nesse arquivo.
|
|
|
|
|
|
O objetivo desse arquivo é ensinar ao Blendb quais são as agregações disponíveis, quais são as métricas e quais são as dimensões.
|
|
|
O objetivo desse arquivo é ensinar ao Blendb quais são as agregações, métricas e dimensões disponíveis.
|
|
|
|
|
|
### *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*.
|
|
|
Nessa seção são descritas as métricas do Blendb, por meio de 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:
|
... | ... | @@ -49,13 +48,13 @@ Nessa seção é informada as métricas do Blendb. Essa seção é uma lista de |
|
|
* *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 é.
|
|
|
* **description**: Explicação detalhada da métrica.
|
|
|
|
|
|
|
|
|
|
|
|
### *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*.
|
|
|
Nessa seção são descritas as dimensões do Blendb, por meio de 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
|
... | ... | @@ -64,30 +63,30 @@ Nessa seção é informada as dimensões do Blendb. Essa seção é uma lista de |
|
|
* *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*).
|
|
|
* **description**: Explicação detalhada da dimensão.
|
|
|
* **parent**: Dimensão mãe. Recebe o nome (**name**) de outra dimensão, **previamente** especifícada. Esse é um parâmetro opcional 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ém se obter dia, mês e ano.
|
|
|
* **relation**: Relação com outra dimensão. Só pode ser usado quando a dimensão possui um *parent*. Descreve a relação entre as duas dimensões. As opções são:
|
|
|
* *day*: Extrai o dia de uma data (*parent* deve ter tipo *date*).
|
|
|
* *month*: Extrai o mês de uma data (*parent* deve ter tipo *date*).
|
|
|
* *year*: Extrai o ano de uma data (*parent* deve ter tipo *date*).
|
|
|
* *dayofweek*: Extrai 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 é.
|
|
|
Todas essas informações são fornecidas pela API, e saber o que é o dado ajuda na realização das consulta.
|
|
|
|
|
|
|
|
|
### *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*.
|
|
|
Nessa seção são descritas as agregações do Blendb, por meio de 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.
|
|
|
* **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.
|
|
|
* **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 idêntico ao especificado no atributo *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.
|
|
|
|
|
|
## Localização
|
... | ... | |