Transformação de chamadas externas no mapeamento de fluxos 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.
A transformação de chamada externa permite que os engenheiros de dados chamem pontos finais REST externos linha por linha para adicionar resultados personalizados ou de terceiros aos seus fluxos de fluxo de dados.
Configuração
No painel de configuração de transformação de chamada externa, você primeiro escolherá o tipo de ponto de extremidade externo ao qual deseja se conectar. O próximo passo é mapear as colunas de entrada. Finalmente, defina uma estrutura de dados de saída a ser consumida por transformações a jusante.
Definições
Escolha o tipo de conjunto de dados embutido e o serviço vinculado associado. Hoje, apenas REST é suportado. No entanto, os procedimentos armazenados SQL e outros tipos de serviço vinculados também ficarão disponíveis. Consulte a configuração de origem REST para obter explicações sobre as propriedades das configurações.
Mapeamento
Você pode escolher o mapeamento automático para passar todas as colunas de entrada para o ponto de extremidade. Opcionalmente, você pode definir manualmente as colunas e renomear as colunas que são enviadas para o ponto de extremidade de destino aqui.
Saída
É aqui que você definirá a estrutura de dados para a saída da chamada externa. Você pode definir a estrutura para o corpo, bem como escolher como armazenar os cabeçalhos e o status retornado da chamada externa.
Se você optar por armazenar o corpo, os cabeçalhos e o status, primeiro escolha um nome de coluna para cada um para que eles possam ser consumidos por transformações de dados downstream.
Você pode definir a estrutura de dados do corpo manualmente usando a sintaxe de fluxo de dados do ADF. Para definir os nomes das colunas e os tipos de dados para o corpo, clique em "importar projeção" e permita que o ADF detete a saída do esquema da chamada externa. Aqui está um exemplo de estrutura de definição de esquema como saída de uma chamada REST API GET meteorológica:
({@context} as string[],
geometry as (coordinates as string[][][],
type as string),
properties as (elevation as (unitCode as string,
value as string),
forecastGenerator as string,
generatedAt as string,
periods as (detailedForecast as string, endTime as string, icon as string, isDaytime as string, name as string, number as string, shortForecast as string, startTime as string, temperature as string, temperatureTrend as string, temperatureUnit as string, windDirection as string, windSpeed as string)[],
units as string,
updateTime as string,
updated as string,
validTimes as string),
type as string)
Exemplos
Exemplos, incluindo script de fluxo de dados
source(output(
id as string
),
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false) ~> source1
Filter1 call(mapColumn(
id
),
skipDuplicateMapInputs: false,
skipDuplicateMapOutputs: false,
output(
headers as [string,string],
body as (name as string)
),
allowSchemaDrift: true,
store: 'restservice',
format: 'rest',
timeout: 30,
httpMethod: 'POST',
entity: 'api/Todo/',
requestFormat: ['type' -> 'json'],
responseFormat: ['type' -> 'json', 'documentForm' -> 'documentPerLine']) ~> ExternalCall1
source1 filter(toInteger(id)==1) ~> Filter1
ExternalCall1 sink(allowSchemaDrift: true,
validateSchema: false,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true,
store: 'cache',
format: 'inline',
output: false,
saveOrder: 1) ~> sink1
Script de fluxo de dados
ExternalCall1 sink(allowSchemaDrift: true,
validateSchema: false,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true,
store: 'cache',
format: 'inline',
output: false,
saveOrder: 1) ~> sink1
Conteúdos relacionados
- Use a transformação Nivelar para girar linhas para colunas.
- Use a transformação de coluna derivada para transformar linhas.
- Consulte a fonte REST para obter mais informações sobre as configurações REST.