Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design inicial datamart #6

Merged
merged 12 commits into from
Nov 10, 2023
Merged

Design inicial datamart #6

merged 12 commits into from
Nov 10, 2023

Conversation

fjuniorr
Copy link
Contributor

@fjuniorr fjuniorr commented Oct 20, 2023

Closes #2

@fjuniorr
Copy link
Contributor Author

@splor-mg/assessoria isso ainda é um esboço mas já quero testar a execução no computador de vocês.

Preparem por favor um qlikview (@hslinhares) e um PowerBI (@labanca) que faz a leitura das tabelas criadas no banco postgres para fazermos alguns testes.

@fjuniorr
Copy link
Contributor Author

Executamos ontem na reunião gerencial e tanto o qlikview quanto o PowerBI estão conseguindo consumir os dados depois de rodar o fluxo completo.

Acho que ainda existem pontos de melhoria mas vou tratar em issues separados.

Um ponto que não vai ser possível é a definição de chaves estrangeiras para permitir que o PowerBI faça a criação dos relacionamentos de forma automática.

Isso acontece porque na nossa modelagem da linktable as colunas chave podem possuir valores duplicados e isso não é aceito pelo postgres com erro de "there is no unique constraint matching given keys for referenced table link". Para reproduzir

create table link (
	chave_rec text,
	chave_desp text,
	uo_cod integer,
	fonte_cod integer,
	grupo_cod integer,
    primary key (chave_rec, chave_desp)
);


insert into link values ('2024|1021|60', 'blank', 1021, 60, null);
insert into link values('2024|1021|60', '2024|1021|60|3' , 1021, 60, 3);
insert into link values('2024|1021|60', '2024|1021|60|4' , 1021, 60, 4);

create table fact_rec (
	chave_rec text,
	receita_cod text,
	vl_rec numeric,
    foreign key (chave_rec) references link(chave_rec)
);

insert into fact_rec values ('2024|1021|60', '1999992299000', 10);
insert into fact_rec values ('2024|1021|60', '1921990199000', 20);

A explicação parece estar na própria definição de chave estrangeira e integridade referencial:

A table (called the referencing table) can refer to a column (or a group of columns) in another table (the referenced table) by using a foreign key. The referenced column(s) in the referenced table must be under a unique constraint, such as a primary key.

Apesar de que eu achava que era necessário que o valor referenciado existisse, e não necessariamente que ele fosse único.

@fjuniorr
Copy link
Contributor Author

@labanca conseguiu criou os relacionamentos de forma automática no PowerBI

image

Talvez isso esteja ligado ao fato de que agora eu estou adicionando somente uma chave por tabela fato para criar a link table.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Definição da arquitetura candidata para fluxo de dados
1 participant