Cenários e casos de uso de tabela computada

Há benefícios em usar tabelas computadas em um fluxo de dados. Este artigo descreve casos de uso de tabelas computadas e descreve como elas funcionam nos bastidores.

O que é uma tabela computada?

Uma tabela representa a saída de dados de uma consulta criada em um fluxo de dados, após o fluxo de dados ter sido atualizado. Ela representa os dados de uma fonte e, opcionalmente, as transformações aplicadas a ela. Às vezes, talvez você queira criar tabelas que sejam uma função de uma tabela ingerida anteriormente.

Embora seja possível repetir as consultas que criaram uma tabela e aplicar novas transformações a elas, essa abordagem tem desvantagens: os dados são ingeridos duas vezes e a carga na fonte de dados é dobrada.

Tabelas computadas resolvem ambos os problemas. As tabelas computadas são semelhantes a outras tabelas, pois obtêm dados de uma fonte e você pode aplicar transformações adicionais para criá-las. Mas os dados das entidades computadas são provenientes do fluxo de dados de armazenamento usado e não da fonte de dados original. Ou seja, elas foram criadas anteriormente por um fluxo de dados e reutilizadas.

As tabelas computadas podem ser criadas fazendo referência a uma tabela no mesmo fluxo de dados ou fazendo referência a uma tabela criada em um outro fluxo de dados.

Captura de tela enfatizando uma tabela computada.

Por que usar uma tabela computada?

A execução de todas as etapas de transformação em uma tabela pode ser lenta. Pode haver muitos motivos para essa lentidão: a fonte de dados pode estar lenta ou as transformações que você está fazendo podem precisar ser replicadas em duas ou mais consultas. Pode ser melhor ingerir os dados da fonte primeiro e depois reutilizá-los em uma ou mais tabelas. Nesses casos, você pode escolher criar duas tabelas: uma que obtém dados da fonte de dados e outra (uma tabela computada) que aplica mais transformações aos dados já gravados no data lake usado por um fluxo de dados. Essa alteração pode aumentar o desempenho e a reutilização de dados, economizando tempo e recursos.

Por exemplo, se duas tabelas compartilharem até mesmo uma parte de sua lógica de transformação, sem uma tabela computada, será necessário realizar a transformação duas vezes.

Imagem mostrando a transformação de dados ocorrendo duas vezes.

No entanto, se uma tabela computada for usada, a parte comum (compartilhada) da transformação será processada uma vez e armazenada no Azure Data Lake Storage. Em seguida, as transformações restantes são processadas a partir da saída da transformação comum. Em geral, esse processamento é muito mais rápido.

Imagem mostrando as transformações comuns feitas uma vez na tabela computada e armazenadas no data lake, e as demais transformações exclusivas que ocorrem posteriormente.

Uma tabela computada fornece um local como o código-fonte para a transformação e acelera a transformação porque ela só precisa ser feita uma vez e não várias vezes. A carga na fonte de dados também é reduzida.

Cenário de exemplo para uso de uma tabela computada

Se você estiver criando uma tabela agregada no Power BI para acelerar o modelo de dados, poderá criar a tabela agregada ao fazer referência à tabela original e aplicar mais transformações a ela. Ao usar essa abordagem, você não precisa replicar a transformação da origem (a parte que é da tabela original).

Por exemplo, a figura a seguir mostra a tabela Pedidos.

Captura de tela da tabela Pedidos.

Usando uma referência dessa tabela, você pode criar uma tabela computada.

Criando uma tabela computada.

Captura de tela mostrando como criar uma tabela computada a partir da tabela Pedidos. Primeiro, clique com o botão direito do mouse na tabela Pedidos no painel Consultas, selecione a opção Referência no menu suspenso. Essa ação cria a tabela computada, que é renomeada aqui como Pedidos agregados.

A tabela computada pode ter transformações adicionais. Por exemplo, você pode usar Agrupar por para agregar os dados no nível do cliente.

Captura de tela da tabela agregada Pedidos com a coluna Cliente enfatizada.

Isso significa que a tabela Pedidos agregados está obtendo dados da tabela Pedidos e não da fonte de dados novamente. Como algumas das transformações que precisam ser feitas já foram feitas na tabela Pedidos, o desempenho é melhor e a transformação de dados é mais rápida.

Tabela computada em outros fluxos de dados

Você também pode criar uma tabela computada em outros fluxos de dados. Ela pode ser criada obtendo os dados de um fluxo de dados com o conector de fluxo de dados do Microsoft Power Platform.

Obter dados dos fluxos de dados do Power Platform.

A imagem enfatiza o conector de fluxos de dados da Power Platform na janela Escolher fonte de dados do Power Query. Também está incluída uma descrição que informa que uma tabela de fluxo de dados pode ser criada por cima dos dados de outra tabela de fluxo de dados, que já é persistente no armazenamento.

O conceito da tabela computada é ter uma tabela persistente no armazenamento e outras tabelas originadas dela, para que você possa reduzir o tempo de leitura da fonte de dados e compartilhar algumas das transformações em comum. Essa redução é possível ao obter dados de outros fluxos de dados por meio do conector de fluxo de dados ou fazendo referência a outra consulta no mesmo fluxo de dados.

Tabela computada: com transformações ou sem?

Agora que você sabe que as tabelas computadas são ótimas para melhorar o desempenho da transformação de dados, uma boa pergunta a ser feita é se as transformações devem sempre ser adiadas para a tabela computada ou se devem ser aplicadas à tabela de origem. Ou seja, os dados devem sempre ser ingeridos em uma tabela e depois transformados em uma tabela computada? Quais são os prós e contras?

Carregar dados sem transformação para arquivos de Texto/CSV

Quando uma fonte de dados não permite a dobragem de consultas (como arquivos de Texto/CSV), há poucos benefícios em aplicar transformações ao obter os dados da origem, especialmente se os volumes de dados forem grandes. A tabela de origem deve apenas carregar dados do arquivo Texto/CSV sem aplicar nenhuma transformação. Em seguida, as tabelas computadas podem obter dados da tabela de origem e executar a transformação por cima dos dados ingeridos.

Você pode se perguntar "qual é a vantagem de criar uma tabela de origem que só ingere dados?" Essa tabela ainda pode ser útil, porque, se os dados da fonte forem usados em mais de uma tabela, isso reduzirá a carga na fonte de dados. Além disso, agora os dados podem ser reutilizados por outras pessoas e outros fluxos de dados. As tabelas computadas são especialmente úteis em cenários em que o volume de dados é grande ou quando uma fonte de dados é acessada por meio de um gateway de dados local, porque reduzem o tráfego do gateway e a carga nas fontes de dados por trás delas.

Como fazer algumas das transformações comuns em uma tabela SQL

Se sua fonte de dados oferecer suporte à dobragem de consulta, recomenda-se executar algumas das transformações na tabela de origem porque a consulta é dobrada para a fonte de dados e somente os dados transformados são buscados nela. Essas mudanças melhoram o desempenho geral. O conjunto de transformações que é comum em tabelas computadas downstream deve ser aplicado na tabela de origem, para que possam ser dobradas para a origem. Outras transformações que se aplicam apenas a tabelas downstream devem ser feitas em tabelas computadas.