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 nos pipelines do Azure Data Factory e do Azure Synapse. Este artigo se aplica ao fluxo de dados de mapeamento. Se você for iniciante nas transformações, veja o artigo introdutório Transformar dados usando um fluxo de dados de mapeamento.

Use a transformação de chave alternativa para adicionar um valor de chave de incremento em cada linha de dados. Isso é útil ao criar tabelas de dimensões em um modelo de dados analíticos do esquema em estrela. 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

Surrogate Key Transform

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 de um valor que existe em uma fonte, é recomendável usar um coletor de cache para salvar esse valor e usar uma transformação coluna derivada para adicionar os dois valores juntos. 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.

Surrogate Key lookup

Incrementar a partir de 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

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

Surrogate Key Query

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:

Surrogate Key File

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

Surrogate Key Transform

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.