mais
mais copied to clipboard
[infra] Criar suporte para dicionários
Motivação
Hoje dicionários estão sendo tratados como tabelas BD+ padrão. Mas dicionários são um caso diferente de tabela BD+ pois tem metadados diferentes (ver no schema) que são constantes sempre.
Solução
Criar a classe Dictionary
para depois poder rodar Dictionary.create()
, Dictionary.publish()
, etc. Metadados já viriam preenchidos automaticamente (já que boa parte deles é sempre idêntico).
- Todo dicionário tem as mesmas colunas e descrições.
- Agora são:
id_tabela
,nome_coluna
,chave
,cobertura_temporal
,valor
.
- Agora são:
- Seus metadados são diferentes.
- Metadados: versão, última atualização, tabelas cobertas, etc.
- A coluna
entity
é sempre a mesma:chave
. - A coluna
primary_keys
é sempre a mesma:id_tabela
,nome_coluna
,chave
,cobertura_temporal
.
Depois de fechar o épico #675, seria legal o @vmussa resolver esse aqui porque aí junto com o #496 a gente arredonda todo o fluxo de dados da BD (!).
Massa, @rdahis, por mim tá ótimo fazer isso depois do #675. O Dictionary.create
seria chamado junto com o Table.create
e o Metadata.create
- e o mesmo para os publish
? Onde o dicionário se materializa atualmente, pra eu ver a cara dele?
Hoje dicionários são só subidos como tabelas normais. Exemplo: basedosdados.br_me_caged.dicionario
.
Proposta: tornar dicionários um metadado de conjunto, além de uma tabela no BigQuery. https://github.com/basedosdados/website/issues/218