blendb issueshttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues2017-06-01T13:10:36Zhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/17Identificar e remover modulos desnecessários2017-06-01T13:10:36ZLucas Fernandes de OliveiraIdentificar e remover modulos desnecessáriosIdentificar os modulos não utilizados pelo Blendb e remover da lista de dependencias (package.json), também realocar as dependencias apenas de desenvolvimento (como modulos usados para testes) apenas nas dependecias de desenvolvimento.Identificar os modulos não utilizados pelo Blendb e remover da lista de dependencias (package.json), também realocar as dependencias apenas de desenvolvimento (como modulos usados para testes) apenas nas dependecias de desenvolvimento.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/16Organizar Objetos do BlenDB em um Namespace2017-09-18T11:52:23ZLucas Fernandes de OliveiraOrganizar Objetos do BlenDB em um NamespaceExistem diversas classes, interfaces organizadas em pastas dentro do BlenDB. Porém é sempre preciso passar um caminho para onde o arquivo está para importar os objetos. Criar um namespace global para o BlenDB e alguma forma de organizaçã...Existem diversas classes, interfaces organizadas em pastas dentro do BlenDB. Porém é sempre preciso passar um caminho para onde o arquivo está para importar os objetos. Criar um namespace global para o BlenDB e alguma forma de organização (provavelmente usando a arquitetura de pastas atuais). Esse namespace também será util para unir os componentes (Core, API, tests) de uma forma organizada.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/15Conectar API com Engine2017-06-01T12:58:09ZLucas Fernandes de OliveiraConectar API com EngineAtualmente os testes são feitos diretamente com a classe engine e não há nehuma comunicação entre Engine e API. Criar essa conexão e realizar testes através da API também.Atualmente os testes são feitos diretamente com a classe engine e não há nehuma comunicação entre Engine e API. Criar essa conexão e realizar testes através da API também.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/14Converter engine para singleton2017-05-30T11:25:34ZLucas Fernandes de OliveiraConverter engine para singletonSingleton é um "design pattern" onde apenas uma instancia da classe pode existir. Converter a classe Engine nesse padrão para que todas as requisições sejam sempre atendidas pela mesma instancia.Singleton é um "design pattern" onde apenas uma instancia da classe pode existir. Converter a classe Engine nesse padrão para que todas as requisições sejam sempre atendidas pela mesma instancia.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/13BUG: Testes feitos incorretamente2017-05-24T11:31:06ZLucas Fernandes de OliveiraBUG: Testes feitos incorretamenteAparentemente a linha
`expect(optimalView.childViews.length === 1)`
se o valor for falso não é o suficiente para falhar um test e o ideal seria
`expect(optimalView.childViews.length === 1).to.be.true`
ou
`expect(optimalView.childVi...Aparentemente a linha
`expect(optimalView.childViews.length === 1)`
se o valor for falso não é o suficiente para falhar um test e o ideal seria
`expect(optimalView.childViews.length === 1).to.be.true`
ou
`expect(optimalView.childViews).to.have.length(1)`
Subistituir os testes incorretos e corrigir suas falhas caso falhemLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/12Adicionar conexão ao postgres e fazer Testes no adaptador2017-05-24T11:31:31ZLucas Fernandes de OliveiraAdicionar conexão ao postgres e fazer Testes no adaptadorPara fazer testes no adaptador do postgres é necessário adicionar uma conexão com o postgres. Realizar testes no adaptador para saber se realmente está certoPara fazer testes no adaptador do postgres é necessário adicionar uma conexão com o postgres. Realizar testes no adaptador para saber se realmente está certoLucas 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/8Corrigir build2017-03-23T12:36:32ZLucas Fernandes de OliveiraCorrigir buildDescobrir porque a build falha e corrigirDescobrir porque a build falha e corrigirLucas 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