blendb issueshttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues2019-09-11T14:30:10Zhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/112Remover Select *2019-09-11T14:30:10ZLucas Fernandes de OliveiraRemover Select *Quando todos os atrivutos de uma view são selecionados a consulta coloca select*. Isso pode gerar complicações e não selecionar corretamente todos os atributos. Colocar por extenso os atributosQuando todos os atrivutos de uma view são selecionados a consulta coloca select*. Isso pode gerar complicações e não selecionar corretamente todos os atributos. Colocar por extenso os atributosRafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/100Ordenação de visões parciais falha2018-12-13T11:50:53ZLucas Fernandes de OliveiraOrdenação de visões parciais falhaFoi detectada em uma consulta que as visões podem aparecer "desordenadas", ou seja, as visões necerrárias ainda não foram definidas.
Esse problema parece resolvivel utilizando ordenação topológica.
Verificar se existe uma forma mais sim...Foi detectada em uma consulta que as visões podem aparecer "desordenadas", ou seja, as visões necerrárias ainda não foram definidas.
Esse problema parece resolvivel utilizando ordenação topológica.
Verificar se existe uma forma mais simples de resolver o problema.1.0Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/98Variavel de ambiente com nome deve ser inicializada2019-01-24T10:24:29ZLucas Fernandes de OliveiraVariavel de ambiente com nome deve ser inicializadaQuando a variavel de ambiente **BLENDB_SCHEMA_FILE** não está presente no arquivo de configuração, o Blend trava, com o erro ao abrir o arquivo. A variavel deve ser corretamente inicializadas e o erro deve ser indicado propriamente, avis...Quando a variavel de ambiente **BLENDB_SCHEMA_FILE** não está presente no arquivo de configuração, o Blend trava, com o erro ao abrir o arquivo. A variavel deve ser corretamente inicializadas e o erro deve ser indicado propriamente, avisando que a variavel não foi colocada corretamente no arquivo de configuração1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/83Correção dos testes de Fonte2018-06-11T12:42:15ZLucas Fernandes de OliveiraCorreção dos testes de FontePara testar as fontes é utilizada a classe **Fixture** que carrega os dados nos bancos de dados.
Por falta de um **runner** do gitlab-ci que contenha o monetdb, durante o processo de integração continua testes nesse banco de dados não s...Para testar as fontes é utilizada a classe **Fixture** que carrega os dados nos bancos de dados.
Por falta de um **runner** do gitlab-ci que contenha o monetdb, durante o processo de integração continua testes nesse banco de dados não são utilizados. Entretanto esses testes podem ser executados localmente. Ao se executar os testes localmente para o MonetDB os testes falham pois não foram escritos métodos para tratamento de fontes na classe **Fixture** do Monetdb.
Além disso alguns métodos utilizados pela **Fixture** no PostgreSQL não seguem os padrões de nome. Exemplos são **LoadSource** e **ExtractData**. Nomes de métodos sempre devem começar com a letra minúscula.
* Corrigir a **Fixture** para Monetdb, permitindo realizar testes autométicos nesse banco
* Corrigir a **Fixtures** para PostgreSQL, colocando os métodos no padrão de nome1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/66Redefinir algoritmo de junção2018-05-16T13:40:51ZLucas Fernandes de OliveiraRedefinir algoritmo de junçãoO algoritmo de junção possui uma regra: Quando agregações de granularidade diferentes são unidas, não é possível agregagar. Essa regra atrapalha alguns casos onde a ordem das junções afeta o resultado final. Buscar uma solução. Possíveis...O algoritmo de junção possui uma regra: Quando agregações de granularidade diferentes são unidas, não é possível agregagar. Essa regra atrapalha alguns casos onde a ordem das junções afeta o resultado final. Buscar uma solução. Possíveis soluções incluir utilizar dependência funcional e salvar esse tipo de informação na agregação ou dimensão.1.0Lucas 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/45BUG: Config Parser não le chaves de forma correta e nome de view é muito comp...2017-09-13T13:26:57ZLucas Fernandes de OliveiraBUG: Config Parser não le chaves de forma correta e nome de view é muito compridoAo invés de ler do vetor de chaves o configParser estava lendo as caves do vetir de dimensões, e a menos que as chaves estivesem na mesma posição nos dois vetores, não irá funcionar corretamente.
Ao concatenar os ids das views ao invés ...Ao invés de ler do vetor de chaves o configParser estava lendo as caves do vetir de dimensões, e a menos que as chaves estivesem na mesma posição nos dois vetores, não irá funcionar corretamente.
Ao concatenar os ids das views ao invés de refazer o hash o nome pode crescer indefinidamente, fazer hash ao invés de concatenarLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/41[BUG]: Metricas retornam resultados incorretos em alguns joins2017-09-12T14:00:54ZLucas Fernandes de Oliveira[BUG]: Metricas retornam resultados incorretos em alguns joinsEmbora o mecanismo funcione corretamente o resultado não é o esperado. O problema ocorre quando a junção das tabelas não é "perfeita". Um exemplo uma view tem os atributos met:count:point e dim:point e outra tem met:sum:download, dim:poi...Embora o mecanismo funcione corretamente o resultado não é o esperado. O problema ocorre quando a junção das tabelas não é "perfeita". Um exemplo uma view tem os atributos met:count:point e dim:point e outra tem met:sum:download, dim:point, dim:macAddr. A consulta seleciona as duas métricas, logo será feita uam junção das duas views pela dimensão dim:point que é comum entre os dois. Porém o resultado da métrica met:count:point possivelmente será incorreto.
Isso ocorre pois é muito provavel que a segunda tabela que tem mais dimensões tenha mais de uma entrada por dim:point, dessa forma ao realizar o join as entradas da primeira serão repeditas e contabilizadas mais de uma vez, resultando em um resultado incorreto.
*Proposta:* para realizar joins as views tem que ter uma relação de um para um, ou seja, as mesmas dimensões antes de fazer um join.
*Problemas:* Em alguns casos é necessário fazer junções com quantidades de dimensões diferentes.
Considere o mesmo exemplo, agora além das métricas a dim:macAddr também é selecionada, a junção com quantidade diferente de dimensões é obrigatória.
*Proposta:* Em certos casos, a partir de um ponto as métricas devem se comportar como dimensões.
A junção com outra view com quantidade de entradas maior é inevitavel, porém se met:count:point fosse uma dimensão o resultado não seria incorreto, em outras palavras se o valor fosse agrupado ao invés de agregado não seriam contabilizadas de forma errada, logo se comportária como uma dimensão.
*Proposta:*
1. Agregamos as views materializadas separadamente, com as respectivas dimensões necessárias
2. Depois da agregação é feito o join, com as dimensões restantes, que seriam as necessárias para realizar o join entre as views e as que foram escolhidas na consulta
3. Remoção das dimensões extras (usadas apenas para propósito de junção) agrupando por todos os parametros que estavam na consulta
*Problemas:*
1. Nem todas as views criadas podem ser reaproveitas para realizar outras consultas, e portanto essas não podem ser materializadas.
2. A partir do momento que um métrica tem que ser tratada como uma dimensão, ela pode ser replicada e não pode ser agregada novamente
Usando esse algoritmo a query 1 (apenas as métricas) não funcionaria, na realidade ela seria equivalente a consulta utilizando também a dim:point, para que o resultado fosse correto, as métricas teriam que ser agregadas novamente, não tratadas como dimensões, isso se deve ao fato de que a junção nesse caso poderia ter sido "perfeita", primeiro agrupando por dim:point seriam criadas views com dimensões iguais, assim elas poderiam ser juntadas normalmente e as metricas poderiam ser agregadas normalmente.
*Solução:*
As junções devem ser feitas 2 a 2, ao invés de todas ao mesmo tempo, em formato de árvore, sempre que uma junção "perfeita" foi feita em um passo, então o resultado deve ser agregado novamente removendo as dimensões de junção, se for o caso. Se a junção não for perfeita a partir desse ponto as métricas devem ser tratadas como dimensões.
1. Escolhe-se 2 views
2. Agregamos as views separadamente, com as respectivas dimensões necessárias, tanto para consulta como para joins (além das duas em questão, mas de todo o conjunto)
3. Faz-se o join das duas views
4. Se a junção foi perfeita, as métricas continuam factíveis e podem continuar sendo agregadas, caso contrário marca as métricas para que sejam tratadas como dimensões agora e a view como não-materializavel
5. Volta para o passo 1 até que reste apenas uma view
6. Se a última junção foi perfeita agrega a view com as métricas restantes (métricas marcadas para o algoritmo não são consideradas métricas)
*Problemas:*
1. Vão existir views não-materializaveis (Elas podem serr materizalizadas mas seu resultado não pode ser aproveitado por outras consultas, então é pouco desejavel materializar uma consulta dessas)
2. Muito provavelmente a consulta construída será muito menos eficiente
3. A partir do momento que um métrica tem que ser tratada como uma dimensão, ela pode ser replicada e não pode ser agregada novamente
*Resolve:*
A junção de views com quantidade de dimensões diferentes se torna possível e retorna o resutlado corretoLucas 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/36BUG: Em alguns casos os filtros não funcionam como o esperado2017-08-18T11:54:51ZLucas Fernandes de OliveiraBUG: Em alguns casos os filtros não funcionam como o esperadoAo tentar testes com uma única métrica, sem dimensões foi identificado um problema.
A primeira consulta, logo após o BlenDB comoçar a rodar funcionava exatamente como o esperado mas a segunda consulta não, ela retornava exatamente o me...Ao tentar testes com uma única métrica, sem dimensões foi identificado um problema.
A primeira consulta, logo após o BlenDB comoçar a rodar funcionava exatamente como o esperado mas a segunda consulta não, ela retornava exatamente o mesmo resultado da primeira, como se o filtro não tivesse sido modificado.
Não importava qual o parametro do filtro ou se havia filtro ou não, o resultado ficava travado.
Descobrir a causa e resolver o problema.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/34BUG: Filtro não relacionado retorna erro2017-08-11T13:01:42ZLucas Fernandes de OliveiraBUG: Filtro não relacionado retorna erroNa situação na qual o conjunto de views escolhidas é tentado aplicar um filtro sobre uma dimensão que não está nesse conjunto, exemplo uma consulta que só faz menção a dados de rede mas tem uma restrição sobre o inventário que não afeita...Na situação na qual o conjunto de views escolhidas é tentado aplicar um filtro sobre uma dimensão que não está nesse conjunto, exemplo uma consulta que só faz menção a dados de rede mas tem uma restrição sobre o inventário que não afeitaria em nada os dados retornados, com ou sem esse filtro, falha e retorna um erro quando o comportamento esperado é a anulação do filtro.
Identificar esses filtros e remove-los da lista de filtrosLucas 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/25Api separa campos de forma errada2017-08-03T13:44:30ZLucas Fernandes de OliveiraApi separa campos de forma erradaQuanto o campo é vazio a função split gera um vetor com uma tring varia e não um vetor vazio. Remover os campos vaziosQuanto o campo é vazio a função split gera um vetor com uma tring varia e não um vetor vazio. Remover os campos vaziosLucas Fernandes de OliveiraLucas Fernandes de Oliveira