Extern anropstransformering i mappning av dataflöden

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Tips

Data Factory i Microsoft Fabric är nästa generations Azure Data Factory, med en enklare arkitektur, inbyggd AI och nya funktioner. Om dataintegrering är nytt för dig börjar du med Fabric Data Factory. Befintliga ADF-arbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.

Dataflöden är tillgängliga i både Azure Data Factory pipelines och Azure Synapse Analytics pipelines. Den här artikeln gäller för mappning av dataflöden. Om du inte har använt transformeringar tidigare läser du introduktionsartikeln Transformera data med hjälp av mappning av dataflöden.

Tips

För motsvarande transformering (anpassad kolumn) i Dataflöde Gen2, se En guide till Dataflöde Gen2 för mappning av dataflödesanvändare.

Med den externa anropstransformeringen kan datatekniker anropa externa REST-slutpunkter rad för rad för att lägga till anpassade resultat i dina dataflödesströmmar.

Konfiguration

I konfigurationspanelen för extern samtalstransformering väljer du först den typ av extern slutpunkt som du vill ansluta till. Nästa steg är att mappa inkommande kolumner. Slutligen definierar du en utdatastruktur som ska konsumeras av senare transformationer.

Externt anrop

Inställningar

Välj den infogade datamängdstypen och den associerade länkade tjänsten. I dag stöds endast REST. Sql-lagrade procedurer och andra länkade tjänsttyper blir dock också tillgängliga. Se REST-källkonfigurationen för att få förklaringar av inställningsegenskaperna.

Kartläggning

Du kan välja automatisk mappning för att skicka alla indatakolumner till slutpunkten. Du kan också ange kolumnerna manuellt och byta namn på de kolumner som skickas till målslutpunkten här.

Output

Här definierar du datastrukturen för utdata från det externa anropet. Du kan definiera strukturen för brödtexten och välja hur rubrikerna ska lagras och statusen som returneras från det externa anropet.

Om du väljer att lagra brödtexten, rubrikerna och statusen väljer du först ett kolumnnamn för var och en så att de kan användas av nedströmsdatatransformeringar.

Du kan definiera brödtextdatastrukturen manuellt med hjälp av ADF-dataflödessyntax. Om du vill definiera kolumnnamnen och datatyperna för brödtexten väljer du "importprojektion" och låter ADF identifiera schemautdata från det externa anropet. Här är ett exempel på en schemadefinitionsstruktur som ett exempel på utdata från ett weather REST API GET-anrop:

({@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)

Exempel

Exempel inklusive dataflödesskript

Exempel på externt anrop

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

Dataflödesskript

ExternalCall1 sink(allowSchemaDrift: true,
	validateSchema: false,
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true,
	store: 'cache',
	format: 'inline',
	output: false,
	saveOrder: 1) ~> sink1
  • Använd transformeringen Platta ut för att pivotleda rader till kolumner.
  • Använd transformering av härledda kolumner för att transformera rader.
  • Mer information om REST-inställningar finns i REST-källan