Partilhar via


Transformação de chave substituta no mapeamento do fluxo de dados

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

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

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

Use a transformação de chave substituta para adicionar um valor de chave de incremento a cada linha de dados. Isso é útil ao projetar tabelas de dimensão em um modelo de dados analíticos de esquema em estrela. Em um esquema em estrela, cada membro em suas tabelas de dimensão 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 substituta gerada.

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

Chaves de incremento de fontes existentes

Para iniciar sua sequência a partir de um valor que existe em uma fonte, recomendamos usar um coletor de cache para salvar esse valor e usar uma transformação de coluna derivada para adicionar os dois valores juntos. Use uma pesquisa em cache para obter a saída e anexá-la à chave gerada. Para obter mais informações, saiba mais sobre coletores de cache e pesquisas em cache.

Pesquisa de chave substituta

Incremento a partir do valor máximo existente

Para semear o valor da 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 das bases de dados

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

Consulta de chave substituta

Fontes de ficheiros

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

Arquivo de chave substituta

Em ambos os casos, você precisará 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 substituta acima está no trecho de código abaixo.

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

Estes exemplos usam as transformações Join e Derived Column .