Closed fjuniorr closed 10 months ago
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.
Closes #2