blendb issueshttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues2019-01-10T11:07:08Zhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/88Migrar testes para novo banco de dados de teste2019-01-10T11:07:08ZLucas Fernandes de OliveiraMigrar testes para novo banco de dados de testeAtualmente o banco de dados de teste não possui significado, atributos como **dim:1** **met:1** estão presentes mas não agregam nenhum significado. Transferir os testes para um banco de dados de teste onde os nomes dos atributos e as rel...Atualmente o banco de dados de teste não possui significado, atributos como **dim:1** **met:1** estão presentes mas não agregam nenhum significado. Transferir os testes para um banco de dados de teste onde os nomes dos atributos e as relações entre eles, e entre as tabelas faz mais sentido.
O banco de dados deve ser um cenário "real", onde o Blendb pode ser aplicado.
A principio os testes, com isso é a semântica de um teste, não precisa ser mudada, por exemplo o teste **Consulta com mais de uma métrica** ainda deve existir, mas ao invés de testar uma consulta com as métricas 1,2 e 3 pode-se testar com média, pico e total de tráfego de rede.
O principal objetivo é manter a cobertura, mesmo com o banco novo.
Acredita-se que a maioria dos testes será mantida, mas pode ocorrer de alguns testes serem considerados desnecessário e outros novos surgirem. Afinal diversos testes são afetados pela estrutura do banco de dados.1.0Rafael DiasRafael Diashttps://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/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/38BUG: Filtros não relacionados devem ser relacionados2017-08-18T13:13:47ZLucas Fernandes de OliveiraBUG: Filtros não relacionados devem ser relacionadosAtualmente os filtros não relacionados são excluidos da consulta, agora eles devem ser incluidos nos vertices a serem cobertosAtualmente os filtros não relacionados são excluidos da consulta, agora eles devem ser incluidos nos vertices a serem cobertosLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/29Atualizar Adaptador do Postgres - Geração de consultas2017-08-08T18:36:33ZLucas Fernandes de OliveiraAtualizar Adaptador do Postgres - Geração de consultasBásicamente no BlenDB uma consulta é representada como uma view.
A API faz o tradução dos atributos e transforma em um objeto do tipo Query.
Esse objeto do tipo Query é enviado a Engine que transforma em um Objeto do tipo View.
Uma vi...Básicamente no BlenDB uma consulta é representada como uma view.
A API faz o tradução dos atributos e transforma em um objeto do tipo Query.
Esse objeto do tipo Query é enviado a Engine que transforma em um Objeto do tipo View.
Uma view contém informações sobre quais dados estão disponiveis através dela (métricas e dimenções) e contém um conjunto de views filhas, que serão usadas como fonte de dados, a menos que a view seja materializada.
O algoritmo de geração de consultas recebe uma view e traduz em uma string SQL que é aceita pelo postgres. Isso é feito através de um processo recursivo, gerando as consultas das views filhas e então as usando como fonte (Tabelas) de dados.
Acredito que é possivel ao invés de gerar consultas para as views filhas e depois as utilizar como fonte de dados é possivel apenas identificar os pontos de interesse daquela view e propagar esses dados para "cima". Acredito que isso pode deixar a consulta mais eficiente além de facilitar manutenções e alterações.
A proposta dessa tarefa é encontrar a fonte real dos dados e subir essa informação e realizar apenas uma camada de JOINS apenas com as tabelas reais/materializadas.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/27BUG: função de agregação count não funciona como esperado2017-08-04T11:27:06ZLucas Fernandes de OliveiraBUG: função de agregação count não funciona como esperadoAs função de agregação podem ser aplicadas diversas vezes sobre um mesmo dado. Isso normalmente não é um problema para somas e medias pois a soma das somas é a soma e a media das médias é a media, entretanto a contagem da contagem não é...As função de agregação podem ser aplicadas diversas vezes sobre um mesmo dado. Isso normalmente não é um problema para somas e medias pois a soma das somas é a soma e a media das médias é a media, entretanto a contagem da contagem não é a contagem total, o resultado é possivelmente bem menor. O resultado correto seria apenas na view de origem realizar a contagem e nas camadas superiores realizar a soma.
Lembrando que não basta realizar COUNT se a view for materializada e SUM caso contrario, pois uma view materializada não é necessáriamente a origem daquele dado.
Esse erro deve se limitar a mecher no adaptador (gerador de consulta)Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/21Atualizar Modulos e dependencias2017-07-04T17:36:55ZLucas Fernandes de OliveiraAtualizar Modulos e dependenciasAo tentar realizar uma build ocorreu falha ao instalar os modulos. Foi detectado qeu ajustar a versão de alguns modulos é o suficiente para resolver o problema. Travar as versões dos modulos para continuar funcionando.Ao tentar realizar uma build ocorreu falha ao instalar os modulos. Foi detectado qeu ajustar a versão de alguns modulos é o suficiente para resolver o problema. Travar as versões dos modulos para continuar funcionando.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/11Implementar sub-dimensões2017-03-23T12:52:38ZLucas Fernandes de OliveiraImplementar sub-dimensõesUma sub-dimensão é uma dimensão que se forma a partir da informação de outra dimensão. Da visão do usuário é apenas mais uma dimensão. A relação entre dimensão e sub-dimensão não é visivel pra o usuário.
A intenção de uma sub-dimensão é...Uma sub-dimensão é uma dimensão que se forma a partir da informação de outra dimensão. Da visão do usuário é apenas mais uma dimensão. A relação entre dimensão e sub-dimensão não é visivel pra o usuário.
A intenção de uma sub-dimensão é subdividir a dimensão não através de mais colunas no banco de dados mas sim por meio do gerador de consultas.
Muito útil do caso de datas.
Modificações necessárias:
- [x] Modificar a definição de dimensão
- [x] Criar os tipos de relação
- [x] Alterar o algoritmo de seleção de view para considerar sub-dimensões
- [ ] Modificar os geradores de consultas
Desafios:
* Em que momento o gerador de consulta fará a conversão e quando assumira que o valor já está formtado na view ??Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/10Implementar especificação de intervalo2017-08-11T14:09:48ZLucas Fernandes de OliveiraImplementar especificação de intervaloNa API existem 2 parametros begin e end-date que especifiam o intervalo da consulta que não são levados em conta na geração das views nem das consultas.
Implementar as mudanças para que passem a funcionar adequadamente.Na API existem 2 parametros begin e end-date que especifiam o intervalo da consulta que não são levados em conta na geração das views nem das consultas.
Implementar as mudanças para que passem a funcionar adequadamente.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/9Implementação da Date view2017-08-08T18:36:57ZLucas Fernandes de OliveiraImplementação da Date viewÉ pouco pŕatico ter uma view para controlar data e hora como uma tabela do banco, o melhor seria adicionar as dimensões de data através do gerador de consultas (sem realmente ter dados que representam a data), estudar essa possibildiade ...É pouco pŕatico ter uma view para controlar data e hora como uma tabela do banco, o melhor seria adicionar as dimensões de data através do gerador de consultas (sem realmente ter dados que representam a data), estudar essa possibildiade de se possivel implementar.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/7Criar estrutura de metadados para gerenciar views2017-03-23T12:36:32ZEduardo L. BurattiCriar estrutura de metadados para gerenciar viewsCriar estrutura de metadados para armazenar as informações das views gerenciadas pelo blendb.
As informações que devem ser armazenadas são:
1. dimensions, metrics: nome das dimensões e métricas que a view armazena
2. created_at, updated...Criar estrutura de metadados para armazenar as informações das views gerenciadas pelo blendb.
As informações que devem ser armazenadas são:
1. dimensions, metrics: nome das dimensões e métricas que a view armazena
2. created_at, updated_at, deleted_at: timestamps de criação, atualização e remoção da view
3. parents: lista com as views que geradoras desta (vazia se a view for raiz)AlphaEduardo L. BurattiEduardo L. Burattihttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/6Implementar mecanismo de consulta que escolhe as views necessárias e gera uma...2017-03-23T12:52:00ZEduardo L. BurattiImplementar mecanismo de consulta que escolhe as views necessárias e gera uma consulta SQL sobre elas.No BlenDB, cada view é representada por um conjunto de metadados que guardam informações de quais dimensões e métricas cada view contém. Com base nisso, criar um algoritmo para o seguinte:
---
O **número de dimensões** de uma view ou ...No BlenDB, cada view é representada por um conjunto de metadados que guardam informações de quais dimensões e métricas cada view contém. Com base nisso, criar um algoritmo para o seguinte:
---
O **número de dimensões** de uma view ou query *x* é denotado por *D(x)*. A **distância** entre uma query *q* e uma view *v* é denotado por *d(q, v)* e é definida da seguinte maneira:
```
d(q, v) = D(q) - D(v)
```
Criar um algoritmo que dada uma query *q*, escolhe o menor conjunto de views *V* que cubra *q* e minimize *d(q, v)* para toda view *v* pertencente a *V*.
---
Gerar também uma consulta SQL que retorne os dados das views selecionadas de acordo com a query do usuário. Veja o exemplo:
```sql
SELECT a.dim_state, SUM(a.met_point_count), AVG(b.met_average_download_rate)
FROM view_a3ecb59d v1, view_8c23bb4a v2
WHERE v1.dim_state = v2.dim_state, ...
GROUP BY a.dim_state;
```
A projeção (SELECT), basicamente reflete os parâmetros da query. Só tem que cuidar de qual função de agregação usar (SUM, AVG, etc.) para as métricas, essa informação vem dos metadados das views. Na seleção (WHERE), tem que juntar as dimensões que são iguais nas views (se duas views a e b tem a dimensão dim_state, garantir que a.dim_state = b.dim_state). E no agrupamento (GROUP BY), colocar todas as dimensões da query.AlphaLucas Fernandes de OliveiraLucas Fernandes de Oliveira