blendb issueshttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues2017-09-15T11:23:54Zhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/46Condiderar clausulas na contagem de dimensões2017-09-15T11:23:54ZLucas Fernandes de OliveiraCondiderar clausulas na contagem de dimensõesAs dimensões contidas nas clausulas também devem ser consideradas no cálculo para determinar se uma dimensão deve ser removida nesse momento ou não, também deve-se realizar a propagação das clausulas durante o processo de contrução das v...As dimensões contidas nas clausulas também devem ser consideradas no cálculo para determinar se uma dimensão deve ser removida nesse momento ou não, também deve-se realizar a propagação das clausulas durante o processo de contrução das views. Assim que uma view tem todas as dimensões contidas em uam clausula, a clausula deve ser aplicada e removida do conjunto de clausula restantes.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/47BUG: Propagação de clausulas não considera clausulas pertencentes a view2017-09-18T12:02:29ZLucas Fernandes de OliveiraBUG: Propagação de clausulas não considera clausulas pertencentes a viewNa remoção de clausulas não cobertas, não é considerado que a view já pode conter a clausula, dessa forma dimensões desnecessaŕias podem ser mantidas desnecessáriamente.Na remoção de clausulas não cobertas, não é considerado que a view já pode conter a clausula, dessa forma dimensões desnecessaŕias podem ser mantidas desnecessáriamente.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/48Criar rotas que devolmen métricas e dimensões disponiveis2017-09-18T14:23:49ZLucas Fernandes de OliveiraCriar rotas que devolmen métricas e dimensões disponiveisCriar as rotas que devolvem quais são as métricas e dimensões diponíveis no BlenDB
Perguntas:
1. Essas rotas deverão responder apenas os nomes ou uma breve descrição (nesse caso a descrição deveria ser adicionada)Criar as rotas que devolvem quais são as métricas e dimensões diponíveis no BlenDB
Perguntas:
1. Essas rotas deverão responder apenas os nomes ou uma breve descrição (nesse caso a descrição deveria ser adicionada)Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/49Verificar configuração do Osprey2017-10-18T11:19:21ZLucas Fernandes de OliveiraVerificar configuração do OspreyO modulo Osprey é utilizado para gerencial parcialmente a API, utilizando RAML.
Entretando suas mensagens de erro respondem páginas html.
Verificar se é possivel reconfigurar as mensagens de erro e se é possivel responder apenas JSON a...O modulo Osprey é utilizado para gerencial parcialmente a API, utilizando RAML.
Entretando suas mensagens de erro respondem páginas html.
Verificar se é possivel reconfigurar as mensagens de erro e se é possivel responder apenas JSON ao invés de htmlLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/50Aumentar tolerancia a JOINS2017-10-04T15:52:21ZLucas Fernandes de OliveiraAumentar tolerancia a JOINSDurate os testes foi detectado qeu alguns joins que são aparentemente ilegais poderiam ser realizados, com um relaxamento das restrições.
Atualmente um join só é perfeito se as chaves de ambos os lados são iguais, pois isso garante que ...Durate os testes foi detectado qeu alguns joins que são aparentemente ilegais poderiam ser realizados, com um relaxamento das restrições.
Atualmente um join só é perfeito se as chaves de ambos os lados são iguais, pois isso garante que não há replicação da informação e aumento de métricas. Entretanto essa restrição pode ser relaxada, pode-se eliminar das chaves os atributos que estão na query. Isso pode ser feito pois esse agrupamento estará na versão "Final" quer dizer que os resultados não serão combinados. A view continua imaterializavel, mas o seu resultado (como uma consulta final) ainda pode ser usado.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/51Transformar BlenDB em um serviço2017-11-30T13:57:17ZLucas Fernandes de OliveiraTransformar BlenDB em um serviçoCriar um arquivo (exemplo) que é lido pelo systemd do linux para transformar o blendb em um serviçoCriar um arquivo (exemplo) que é lido pelo systemd do linux para transformar o blendb em um serviçoLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/52Adicionar verificação de texto (linter) ao projeto2017-12-04T10:54:01ZLucas Fernandes de OliveiraAdicionar verificação de texto (linter) ao projetoEmbora o projeto tenha uma configuração de linter ele não é utilizado ao gerar uma build. Falhar a build se o projeto não atender os padrões do linter.Embora o projeto tenha uma configuração de linter ele não é utilizado ao gerar uma build. Falhar a build se o projeto não atender os padrões do linter.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/53Tornar o Blendb utilizável com um docker2017-12-20T13:24:12ZLucas Fernandes de OliveiraTornar o Blendb utilizável com um dockerCriar um arquivo DockerFile e seguir as boas práticas para a criação de uma imagem docker. Inclusive um .dockerignore
Além dos arquivos base adicionar um docker-compose.ymlCriar um arquivo DockerFile e seguir as boas práticas para a criação de uma imagem docker. Inclusive um .dockerignore
Além dos arquivos base adicionar um docker-compose.ymlLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/54Reestrututar arquivos de configuração2017-12-20T11:17:26ZLucas Fernandes de OliveiraReestrututar arquivos de configuraçãoTransformar os campos struct e connection em variáveis de ambiente.Transformar os campos struct e connection em variáveis de ambiente.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/55Opção de Ordenação da API2018-03-19T14:19:05ZLucas Fernandes de OliveiraOpção de Ordenação da APIAdicionar um parâmetro de ordenação (sort) que recebe uma lista de métricas e dimensões da consulta para realizar a ordenaçãoAdicionar um parâmetro de ordenação (sort) que recebe uma lista de métricas e dimensões da consulta para realizar a ordenaçãoLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/56Implementar Adaptador para MonetDB2018-01-31T13:32:13ZLucas Fernandes de OliveiraImplementar Adaptador para MonetDBSupostamente o MonetDB usa SQL.
Criar um adaptador abstrado SQL utilziando Adaptador postgres existente e adicionar o adaptador para monetdbSupostamente o MonetDB usa SQL.
Criar um adaptador abstrado SQL utilziando Adaptador postgres existente e adicionar o adaptador para monetdbLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/57Atualizar arquivos de configuração exemplo2018-04-03T12:09:28ZLucas Fernandes de OliveiraAtualizar arquivos de configuração exemplo* Alterar os arquivos de configuração exemplo para serem mais sugestivos
* Permitir comentarios (através de #) no arquivo .env ao utilizar npm start/test* Alterar os arquivos de configuração exemplo para serem mais sugestivos
* Permitir comentarios (através de #) no arquivo .env ao utilizar npm start/testRevisionLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/58Adicionar testes automatizados para o Adaptador de MonetDB2018-07-10T12:03:46ZLucas Fernandes de OliveiraAdicionar testes automatizados para o Adaptador de MonetDBA propósta é utilziar os mesmos testes tanto para o MonetDB quanto para o Postgres.
Essa issue está impedida pelo fato de não haver um *runner* adequaqdo para executar testes no postgres e no monet
Adicionar uma opções de adaptador tes...A propósta é utilziar os mesmos testes tanto para o MonetDB quanto para o Postgres.
Essa issue está impedida pelo fato de não haver um *runner* adequaqdo para executar testes no postgres e no monet
Adicionar uma opções de adaptador test (que deve ser usada apenas para testes) que executas os testes em todos os adaptadores.
Quando outra opções além dessa é usada deve-se pular os testes dos outros adaptadoresRevisionRafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/59Corrigir script de criação de Views2018-02-08T13:20:32ZLucas Fernandes de OliveiraCorrigir script de criação de ViewsCom o novo padrão de arquivos de configuração o script `createSchema` parou de funcionar.
Corrigir o script para se adaptar ao novo padrãoCom o novo padrão de arquivos de configuração o script `createSchema` parou de funcionar.
Corrigir o script para se adaptar ao novo padrãoLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/60Criação de views materializadas no MonetDB2018-04-03T12:09:06ZLucas Fernandes de OliveiraCriação de views materializadas no MonetDBMonetDB não tem suporte a views materializadas. Para corrigir essa falha a proposta é criar uma tabela e inserir os dados relativos.MonetDB não tem suporte a views materializadas. Para corrigir essa falha a proposta é criar uma tabela e inserir os dados relativos.Revisionhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/61Adicionar rota de fontes a API2018-04-26T12:51:59ZLucas Fernandes de OliveiraAdicionar rota de fontes a APIEssa rota deve listar as fontes existentes:
* [x] Criar classe Source/ SourceField -- ```src/core/source.ts```
* [x] Ler Fontes a partir do arquivo de configuração -- ```src/util/configParser.ts```
* [x] Adicionar as fontes lidas a En...Essa rota deve listar as fontes existentes:
* [x] Criar classe Source/ SourceField -- ```src/core/source.ts```
* [x] Ler Fontes a partir do arquivo de configuração -- ```src/util/configParser.ts```
* [x] Adicionar as fontes lidas a Engine -- ```src/core/engine.ts```
* [x] Criar a rota no arquivo RAML -- ```spec/*.raml```
* [x] Adcionar um rota no controller da engine que devolve as fontes -- ```src/api/controllers/engine.ts```
Atributos da fonte:
nome
campos[]
Atributos de campo
nome
tipo de dados1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/62Realizar inserção 1 por 1 em fontes de dados2018-05-02T13:27:09ZLucas Fernandes de OliveiraRealizar inserção 1 por 1 em fontes de dadosFazer com que a rota de coleta realmente insira os dados nas fontes.
* [x] Alterar o arquivo da rota -- ```src/api/constrollers/collect.ts```
* [x] Tradução de objeto para consulta
Passo a Passo de tradução:
* Na camada de API realiz...Fazer com que a rota de coleta realmente insira os dados nas fontes.
* [x] Alterar o arquivo da rota -- ```src/api/constrollers/collect.ts```
* [x] Tradução de objeto para consulta
Passo a Passo de tradução:
* Na camada de API realizar a validação dos dados
* Isso incluí verificar se a fonte existe
* Depois verificar se os campos do JSON de entrada fazem parte da fonte
* Validar os tipos de dados do json em relação as fontes
* Uma vez os dados validados chamar a função de inserção do adapter
* Na camada de Adapter
* Criar uma função que recebe dois parametros, uma fonte e os dados (sincrona, privada/protegida)
* Essa função deve gerar uma consulta de inserção para o banco de dados em questão
* Criar uma função que executa a consulta no banco de dados (asincrona, publica)
* Essa função será chamada pela API
Lembretes:
* A classe abstrata de Adapter deve receber essa função pública
* Cada um dos adapters pode ter uma implementação diferente da função pública, entretanto a função privada/protegiada provavelmente pode ser aproveitada nos adaptadores sql1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/63Controle de transformações2018-08-29T13:51:58ZLucas Fernandes de OliveiraControle de transformaçõesConstrução das agregações a partir das fontes.
* A construção de uma agregação é a construção de suas métricas e dimensões a partir dos campos de uma fonte.
* Para cada registro na fonte será gerado um único registro na agregação.
* A ...Construção das agregações a partir das fontes.
* A construção de uma agregação é a construção de suas métricas e dimensões a partir dos campos de uma fonte.
* Para cada registro na fonte será gerado um único registro na agregação.
* A construção de uma métrica ou dimensão é o resultado de uma expressão dos campos da fonte e de constantes
Para resolver o problema será necessário:
* Alteração do arquivo de configuração. Transformações devem estart no arquivo de configuração
* Criação de um *parser* para verificar a validade das expressões de construção
* Tradução das transformações pelos adaptadores
* Definição de uma técnica de atualização
Sugestões para solucionar os tópicos acima:
* [ ] Adição de um campo *transformers* na definição da agregação. Esse campo será uma lista com identificadores de transformações que são usados para criar essa agregação
* [ ] Adição de uma novo campo no nível 0 do arquivo de configuração chamado *transformers*. Esse campo contém uma lista de definição de transformações. Uma transformação pode ser definida por:
* **name**: nome/identificador da transformação (utilizado na definição da agregação)
* **source**: fonte na qual a transformação é aplicada
* **dimensions**: objeto onde cada chave é uma dimenção criada pela transformação
* Uma dimensão é definida como uma lista de condições seguidas de expressões
* A propósta é utilziar essa lista como um **CASE/WHEN** de SQL
* **metrics**: objeto onde cada chave é uma métrica criada pela transformação
* Uma métricas é definida como uma lista de condições seguidas de expressões
* A propósta é utilziar essa lista como um **CASE/WHEN** de SQL
* [ ] Utilização do pacote **sintax-cli** para criação de um parser de expressões. A principal função do parser é validar as expressões e devolver os tipos (int, float, bool, ...) das expressões para validação
* [ ] Criação de uma nova variável de ambiente para definir a politica de atualização, chamada **BLENDB_UPDATE**
* Para a primeira versão está sendo considerado que existira uma única política de atualização para o Blendb todo
* Outras alternativas seriam uma politica para cada transformer ou para cada fonte
* Há duas politicas propóstas. **Temporal**, a cada **X** tempo é realizada a transformação. **Frequência**, a cada **X** inserções é realizada a transformação.
* [ ] Adição de uma função no adaptador (abstrato) para aplicação de transformações
1.0Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/64Atualizar exemplo de configuração2018-03-19T11:49:27ZLucas Fernandes de OliveiraAtualizar exemplo de configuraçãoOs arquivos exemplo de configuração estão em um formato antigo, devem ser atualzados para serem compatíveis com as configurações atuais.
Os novos arquivos exemplo devem conter um exemplo de cada campo possível e este deve ser comentado,...Os arquivos exemplo de configuração estão em um formato antigo, devem ser atualzados para serem compatíveis com as configurações atuais.
Os novos arquivos exemplo devem conter um exemplo de cada campo possível e este deve ser comentado, exemplificando sua funçãohttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/65Adicionar rota para tipos enumerais e campo no arquivo de configuração2018-04-04T13:11:37ZLucas Fernandes de OliveiraAdicionar rota para tipos enumerais e campo no arquivo de configuraçãoAdicionar um novo campo ao arquivo de configuração que permite definir tipos enumeráveis. Esses tipos estão disponíveis para o campo "datatype".
Essa rota deve listar as fontes existentes:
* [x] Criar classe EnumType -- ```src/core/enu...Adicionar um novo campo ao arquivo de configuração que permite definir tipos enumeráveis. Esses tipos estão disponíveis para o campo "datatype".
Essa rota deve listar as fontes existentes:
* [x] Criar classe EnumType -- ```src/core/enumType.ts```
* [x] Ler Enums a partir do arquivo de configuração -- ```src/util/configParser.ts```
* [x] Adicionar as enums lidas a Engine -- ```src/core/engine.ts```
* [x] Criar a rota no arquivo RAML -- ```spec/*.raml```
* [x] Adcionar um rota no controller da engine que devolve as fontes -- ```src/api/controllers/engine.ts```
O enum basicamente é uma lista de strings, no arquivo de configuração uma lista de strings deve ser lidas, essa representa os valores possíveis.
Para ler do arquivo de configuração há dois campos
name: nome do enum
values: uma lista (de strings) com os valores possíveis1.0Rafael DiasRafael Dias