Power Query explica diferença entre duplicate e reference em modelagem

São Paulo — InkDesign News —
O uso de machine learning em processos de transformação de dados revelou nuances importantes na manipulação e carregamento de dados no Power Query, ferramenta integrante do Power BI. A discussão entre as opções “Duplicate” e “Reference” para reutilização de dados mostra que, apesar de consideradas similares, impactam significativamente a gestão da carga de dados e performance.
Arquitetura de modelo
Em ambientes onde dados são originados de bancos relacionais, como o SQL Server, a replicação ou referência de tabelas no Power Query é uma prática comum para facilitar múltiplas transformações. As duas funcionalidades vistas — Duplicate e Reference — operam de formas distintas em relação ao modelo de dados: “Duplicate” cria uma nova tabela isolada, enquanto “Reference” cria uma tabela dependente da original, refletindo alterações subsequentes.
“Duplicate é uma nova carga independente, sem dependência da tabela original. Alterações na tabela original não afetam a duplicada. Já Referência baseia-se no resultado da tabela referenciada, então mudanças na original se refletem na tabela de referência.”
(“Duplicate is an entirely new load without dependency on the original table. Changes to the original table do not affect the duplicated table. A Referencing table is based on the outcome of the referenced table. Consequently, changes applied to the referenced table are automatically applied to the referencing table.”)— Autor, InsightMediaGroup
Treinamento e otimização
Investigação técnica realizada com o auxílio do SQL Profiler apontou que ambos os métodos causam o disparo de consultas independentes ao banco de dados, consequentemente gerando tráfego semelhante e múltiplas conexões paralelas, o que impacta diretamente o tempo de carregamento do modelo. Esse fator é crucial para arquiteturas que buscam otimização, evitando conflitos de carga entre múltiplas queries simultâneas.
Parâmetros de settings para limitar o carregamento paralelo em fontes como Excel podem ser úteis para mitigar esses conflitos, especialmente em cenários onde a paralelização não é suportada pela origem. O valor padrão na execução paralela é quatro conexões, mas pode ser configurado para restringir a apenas uma.
Resultados e métricas
Testes práticos mostraram que tanto “Duplicate” quanto “Reference” acionam um igual número de consultas SQL no banco de dados, evidenciado através de sessões distintas (SPIDs). Isso refuta a hipótese de que a referência reutilizaria a carga e otimizaria o processo. A medição do tempo e duração das consultas indicou equivalência na performance das duas abordagens.
“Surpreendentemente, os dados foram lidos duas vezes no banco, com duas conexões distintas sendo abertas, o que confirma que do ponto de vista do carregamento, não há diferença entre duplicar e referenciar.”
(“Astonishingly, the data was read twice in the database, with two distinct connections opened, confirming that from a load traffic perspective, there is no difference between duplicating and referencing.”)— Autor, InsightMediaGroup
Conclusivamente, a escolha entre “Duplicate” e “Reference” deve ser orientada pelo tipo de transformação necessária e dependência entre tabelas, não pela performance de carregamento, sendo recomendado o uso de referência para extração de subconjuntos dependentes e duplicação para tabelas completamente isoladas.
Em futuras aplicações de machine learning integradas ao Power BI, a compreensão detalhada dessas características permitirá modelos de dados mais robustos, escaláveis e eficientes. Além disso, explorar o processamento upstream, ou seja, transformar dados o mais próximo possível da origem evitará sobrecarga desnecessária na camada de apresentação e análise.
Leia mais sobre temas relacionados a machine learning e deep learning para aprofundar seus conhecimentos.
Fonte: (Towards Data Science – AI, ML & Deep Learning)