Share via


Externe aanroeptransformatie in toewijzingsgegevensstromen

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Gegevensstromen zijn beschikbaar in Zowel Azure Data Factory als Azure Synapse Pipelines. Dit artikel is van toepassing op toewijzingsgegevensstromen. Als u geen ervaring hebt met transformaties, raadpleegt u het inleidende artikel Gegevens transformeren met behulp van een toewijzingsgegevensstroom.

Met de transformatie van externe aanroepen kunnen gegevenstechnici rijen per rij aanroepen naar externe REST-eindpunten om aangepaste of externe resultaten toe te voegen aan uw gegevensstroomstromen.

Configuratie

In het configuratievenster voor externe aanroeptransformatie kiest u eerst het type extern eindpunt waarmee u verbinding wilt maken. De volgende stap is het toewijzen van binnenkomende kolommen. Definieer ten slotte een uitvoergegevensstructuur die moet worden gebruikt door downstreamtransformaties.

Externe aanroep

Instellingen

Kies het type inlinegegevensset en de gekoppelde gekoppelde service. Momenteel wordt alleen REST ondersteund. Opgeslagen SQL-procedures en andere gekoppelde servicetypen worden echter ook beschikbaar. Zie de REST-bronconfiguratie voor uitleg over de instellingeneigenschappen.

Toewijzing

U kunt automatische toewijzing kiezen om alle invoerkolommen door te geven aan het eindpunt. Desgewenst kunt u de kolommen handmatig instellen en de kolommen wijzigen die hier naar het doeleindpunt worden verzonden.

Uitvoer

Hier definieert u de gegevensstructuur voor de uitvoer van de externe aanroep. U kunt de structuur voor de hoofdtekst definiëren en kiezen hoe u de headers en de status wilt opslaan die wordt geretourneerd door de externe aanroep.

Als u ervoor kiest om de hoofdtekst, kopteksten en status op te slaan, kiest u eerst een kolomnaam voor elke naam, zodat deze kunnen worden gebruikt door downstreamgegevenstransformaties.

U kunt de structuur van de hoofdtekstgegevens handmatig definiëren met behulp van de syntaxis van de ADF-gegevensstroom. Als u de kolomnamen en gegevenstypen voor de hoofdtekst wilt definiëren, klikt u op 'projectie importeren' en staat u ADF toe om de schema-uitvoer van de externe aanroep te detecteren. Hier volgt een voorbeeld van een schemadefinitiestructuur als uitvoer van een GET-aanroep van de WEER-REST API:

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

Voorbeelden

Voorbeelden, waaronder een gegevensstroomscript

Voorbeeld van externe aanroep

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 voor gegevensstroom

ExternalCall1 sink(allowSchemaDrift: true,
	validateSchema: false,
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true,
	store: 'cache',
	format: 'inline',
	output: false,
	saveOrder: 1) ~> sink1