blendb issueshttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues2018-10-03T14:53:04Zhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/85Conexão em múltiplos bancos de dados simultâneamente2018-10-03T14:53:04ZLucas Fernandes de OliveiraConexão em múltiplos bancos de dados simultâneamente# Problema
Foi detectado que para a realização da tarefa #58, é necessário se conectar em diversos bancos de dados simultâneamente. Foi detectada que essa não seria uma atualização trivial de ser realizada e terá grandes impactos em dive...# Problema
Foi detectado que para a realização da tarefa #58, é necessário se conectar em diversos bancos de dados simultâneamente. Foi detectada que essa não seria uma atualização trivial de ser realizada e terá grandes impactos em diversas partes do código, por essa razão uma tarefa separada foi criada.
Por enquanto o objetivo da tarefa é permitir a conexão a vários bancos que **compartilham o mesmo esquema**. No futuro pretende-se utilizar esquemas diferentes para cada um dos bancos, entretanto essa alteração seria muito grande e será delegada a uma outra tarefa futura.
Atualmente, conectar-se em múltiplos bancos de dados possui dois benefícios imediatos.
* Realização de testes simultâneos em SGBDs diferentes (garantindo corretude em todos os SGBD's)
* Distribuição de carga entre bases de dados (Que podem ser de SGBD's diferentes)
Além disso a inserção pode ser disparada para todos os adaptadores, mantendo a consistência da base. Ainda não é necessário decidir para qual base uma determinada inserção é enviada.
# Alterações necessárias
* [x] Modificar as variáveis de ambiente para conexão com o banco.
* Uma nova variável deve ser criada: **BLENDB_N_DATABASES** que indica o número de bancos de dados simultâneos sendo utilizados. Ela deve ter como valor *default* 1
* As variáveis **BLENDB_DB_*** devem ser modificadas para **BLENDB_DBN_** onde **DBN** será substituido por **DB0** para o primeiro banco, **DB1** para o segundo e assim sucessivamente
* A variável **BLENDB_ADAPTER** deve ser trocada para **BLENDB_DBN_ADAPTER**, já que cada banco pode ter o seu próprio adaptador
* Uma nova váriavel deve ser criada **BLENDB_SCHEMA** que contém o caminho para o esquema do banco de dados (relativo a raiz do projeto ou absoluto)
* [x] Alterações na leitura da configuração
* No **ConfigParser** trocar a criação da conexão de um objeto **Connection** para uma lista de conexões, uma para cada base.
* Realizar a leitura do arquivo de esquema a partir da váriavel de ambiente **BLENDB_SCHEMA**
* [x] Alterações na inicialização (**main.ts**)
* Remover a leitura *hardcoded* do arquivo de definição de esquema (Atualmente config.yaml ou test.yaml).
* Modificação da *middleware* de adapatdores para receber uma lista e não apenas uma conexão.
* [x] Modificação das *midlewares* de adaptador
* Unificar as *middlewares* de cada adaptador em uma única middleware que devolve uma lista de adaptadores e atribui a uma váriavel req.adapters
* [ ] Alterações nos controladores da API de leitura/escrita
* Criação de uma politica de leitura, sugestão: **round robin**, ou seja, cada nova requisição é enviada para o banco que foi o último a atender uma requisição
* Criação de uma politica de escrita, realizar a escrita em todos os bancos
* Caso 2 bancos na realidade forem o mesmo banco, a inserção será duplicada (inserções com data devem resolver)Revisionhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/76Palavras compostas no arquivo de configuração YAML2018-04-05T13:34:52ZLucas Fernandes de OliveiraPalavras compostas no arquivo de configuração YAMLO parsing das propriedades do arquivo de configuração é *case sensitive* isso faz com que chaves como **enumType** e **dataType** sejam diferentes de **enumtype** e **datatype**.
Seria prudente manter o padrão, ou realizar um preprocess...O parsing das propriedades do arquivo de configuração é *case sensitive* isso faz com que chaves como **enumType** e **dataType** sejam diferentes de **enumtype** e **datatype**.
Seria prudente manter o padrão, ou realizar um preprocessamento para converter todas as propriedades para letras minúsculas ??
Uma diferentça dessa magnitude pode ser difícil de detectar em um processo de Debug. Como proceder ?
Quão diffcíl seria converter apenas as chaves para letras minúsculas ?
Seria prudente remover as palavars compostas e utilizar apenas palavars simples ?Revisionhttps://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/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/24Sub dimensões para localização2018-04-03T12:10:29ZLucas Fernandes de OliveiraSub dimensões para localizaçãoDe certa forma a localização é feita de forma hierarquica, é possivel extrair do código ibge (confirmar essa informação) estado, cidade, região. Entretanto isso exigiria criar no blendb uma nova relação (RelationType) que levaria a perda...De certa forma a localização é feita de forma hierarquica, é possivel extrair do código ibge (confirmar essa informação) estado, cidade, região. Entretanto isso exigiria criar no blendb uma nova relação (RelationType) que levaria a perda de generalidade.
Estudar as opções ou encontrar uma forma de remover a RelationType e encontrar algo genérico onde na configuração do blendb pode-se escolher as relações (Problema a geração de consulta)RevisionLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/20Está sendo exibido o html do API Reference2018-04-03T12:09:53ZDavisson Henrique PaulinoEstá sendo exibido o html do API ReferenceO link do API Reference no readme aponta para o código html, ao invés de mostrar ele de fato. Talvez colocar ele na wiki?O link do API Reference no readme aponta para o código html, ao invés de mostrar ele de fato. Talvez colocar ele na wiki?Revision