Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

Dúvida: Formas de Pagamentos X ID's dos Pedidos

Eu fiquei sem entender sobre a relação entre as tabelas olist_pedidos e olist_pagamentos

Powerquery da tabela olist_pagamentos: 1000 pedidos registrados

Filtrando somente pela tabela Olist_pagamentos a conta fecha sendo representado ali os 1000 pedidos que representam o total das formas de pagamentos cruzados com os orders ID da mesma).

Cruzando somente os dados da olist_pagamentos, a conta fecha

Porém se cruzarmos a forma de pagamento da olist_pagamentos com order-id da tabela olist_orders(olist_pedidos) ou olist-itens_pedidos, chegamos a valores diferentes nos totais de cada conjunto.

três orders id diferente para as tabelas olist_pagamentos, olist_pedidos e olist_itens_pedidos

Analisando intuitivamente eu faria um diagrama de venn para testar se a olist_pedidos seria onde estão todos os id_pedido(99441 pedidos) e tentaria compreender o porquê de esse quantitativo não ter se replicado nas demais tabelas, especialmente a de pagamentos.

Dúvida 1: isso seria uma questão de modelagem de dados ou backend?

Dúvida 2: esse seria um caso onde é necessário conversar com as partes responsáveis sobre o como estes dados estão sendo armazenados?

3ª questão: eu não me sentiria a vontade para alterar a cardinalidade e sentido entre as tabelas até compreender o porque de existir diferentes quantidades de orders_id. Seria possível eu colocar como um para muitos ou um para um sabendo que determinadas tabelas tem uma quantidade maior de pedidos do que as outras?

última dúvida, seria melhor eu conversar com pares, seniors e superiores para compreender melhor a situação e saber se é algo que posso tratar sozinho ou se precisaria envolver outras áreas e equipes para ai sim eu pensar em fazer a modelagem dos dados?

2 respostas

Ei, Esperidião! Tudo certinho? Espero que sim.

Sobre as formas de pagamento e os IDs dos pedidos no Power BI, a diferença nas quantidades entre as tabelas é esperada nesse conjunto de dados da Olist e está ligada à modelagem dos dados e ao significado de cada tabela.

Cada tabela representa uma parte diferente do processo de compra:

  • olist_orders: tem todos os pedidos cadastrados.
  • olist_order_items: possui um registro para cada item do pedido. Um mesmo order_id pode aparecer várias vezes caso o pedido tenha mais de um produto.
  • olist_order_payments: aqui temos um registro para cada pagamento realizado. Um pedido pode ter mais de um pagamento (parcelas ou diferentes formas de pagamento) e também existem pedidos que não possuem registro nessa tabela, dependendo do recorte disponibilizado na base.

Isso explica o motivo, ao utilizar o order_id da tabela olist_pagamentos, você encontra 1.000 pedidos, enquanto na tabela olist_orders existem 99.441 pedidos. Os 1.000 registros correspondem apenas à amostra da tabela de pagamentos utilizada durante essa etapa do curso.

Isso é uma questão de modelagem ou de backend?
Aqui é uma questão de modelagem dos dados e também do entendimento da regra de negócio. O backend define apenas como os dados são gravados.

Vale conversar com as pessoas responsáveis pelos dados?
Com certeza, é uma boa prática e muito comum em projetos reais. Conversar com quem conhece a origem dos dados ajuda a validar se o comportamento é esperado ou se existe alguma inconsistência.

Posso alterar a cardinalidade sem entender essas diferenças?
Como boa prática, o indicado é não alterar. A cardinalidade precisa refletir o comportamento dos dados e não ser ajustada apenas para eliminar avisos ou fazer os números "fecharem"

Esse diagrama representa uma relação um para muitos, em que um pedido pode estar associado a vários itens e a vários registros de pagamento. Como curiosidade, quando surgir uma situação semelhante, teste ver duas informações antes de criar os relacionamentos:

  • Quantos order_id distintos existem em cada tabela.
  • Se existem order_id sem correspondência entre as tabelas.

Essas verificações ajudam a entender rapidamente se a diferença ocorre por amostragem, por ausência de registros ou pela própria regra de negócio.

Conteúdos para complementar seus estudos
Esse conteúdo pode estar em inglês, para traduzi-lo utilize o tradutor automático do navegador ou clique com o botão direito do mouse sobre a página e selecione a opção Traduzir para o português.
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

https://cursos.alura.com.br/classpage/power-bi-desktop-realizando-etl-power-query/task/158266

o problema é que a cardinalidade era 1:1. Eu fiquei bem inseguro sobre o como a cardinalidade foi alterada e não sabia se deveria existir uma espécie de simetria entre as primary keys order id e não sei como foi possível fazer uma interpretação da regra de negócio com base nas planilhas e essa possível inconsistência no order id.

Como faria para aprofundarmos um pouco mais sobre esse exercício, antes de concluírmos o dashboard?