Compartilhar via


Transformação de chave alternativa no fluxo de dados de mapeamento

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Os fluxos de dados estão disponíveis em pipelines do Azure Data Factory e pipelines do Azure Synapse Analytics. Este artigo se aplica ao fluxo de dados de mapeamento. Se você for novo em transformações, consulte o artigo introdutório Transformar dados usando fluxos de dados de mapeamento.

Use a transformação de chave substituta para adicionar um valor de chave incremental em cada linha de dados. Isso é útil ao criar tabelas de dimensões em um esquema de estrela em um modelo de dados analítico. Em um esquema em estrela, cada membro em suas tabelas de dimensões requer uma chave exclusiva que é uma chave não comercial.

Configuração

Transformação de Chave Substituta

Coluna de chave: o nome da coluna de chave alternativa gerada.

Valor inicial: o valor de chave mais baixo que será gerado.

Incrementar chaves de fontes existentes

Para iniciar sua sequência a partir de um valor que existe em uma fonte, é recomendável usar um sink de cache para salvar esse valor e usar uma transformação de coluna derivada para somar os valores. Use uma pesquisa armazenada em cache para obter a saída e acrescentá-la à chave gerada. Veja mais informações sobre coletores de cache e pesquisas em cache.

Pesquisa de chave alternativa

Incrementar a partir do valor máximo existente

Para propagar o valor de chave com o máximo anterior, há duas técnicas que você pode usar com base em onde estão os dados de origem.

Fontes do banco de dados

Utilize uma opção de consulta SQL para selecionar MAX() da sua fonte. Por exemplo, Select MAX(<surrogateKeyName>) as maxval from <sourceTable>.

Consulta de Chave Substituta

Fontes de arquivo

Se o valor máximo anterior estiver em um arquivo, use a função max() na transformação agregada para obter o valor máximo anterior:

Arquivo de Chave Substituta

Em ambos os casos, será necessário gravar em um coletor de cache e pesquisar o valor.

Script de fluxo de dados

Sintaxe

<incomingStream> 
    keyGenerate(
        output(<surrogateColumnName> as long),
        startAt: <number>L
    ) ~> <surrogateKeyTransformationName>

Exemplo

Transformação de Chave Substituta

O script de fluxo de dados para a configuração de chave alternativa está no snippet de código abaixo.

AggregateDayStats
    keyGenerate(
        output(key as long),
        startAt: 1L
    ) ~> SurrogateKey1

Esses exemplos usam as transformações de Unir e Coluna Derivada.