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
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.
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>
.
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:
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
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
Conteúdo relacionado
Esses exemplos usam as transformações de Unir e Coluna Derivada.