Freigeben über


Transformation externer Aufrufe in Zuordnungsdatenflüssen

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

Datenflüsse sind sowohl in Azure Data Factory als auch in Azure Synapse-Pipelines verfügbar. Dieser Artikel gilt für Zuordnungsdatenflüsse. Wenn Sie noch nicht mit Transformationen arbeiten, lesen Sie den Einführungsartikel Transformieren von Daten mit einem Zuordnungsdatenfluss.

Mit der Transformation externer Aufrufe können Datentechniker Zeile für Zeile externe REST-Endpunkte aufrufen, um Ihren Datenflussstreams benutzerdefinierte Ergebnisse oder Ergebnisse von Drittanbietern hinzuzufügen.

Konfiguration

Im Konfigurationspanel für die Transformation externer Aufrufe wählen Sie zunächst die Art des externen Endpunkts, mit dem Sie sich verbinden möchten. Der nächste Schritt besteht darin, eingehende Spalten zuzuordnen. Definieren Sie schließlich eine Ausgabedatenstruktur, die von der nachgelagerten Transformationen genutzt werden soll.

External call

Einstellungen

Wählen Sie den Inlinedatasettyp und den zugeordneten verknüpften Dienst aus. Derzeit wird nur REST unterstützt. Allerdings werden gespeicherte SQL-Prozeduren und andere Typen verknüpfter Dienste ebenfalls zur Verfügung gestellt. Erläuterungen zu den Einstellungseigenschaften finden Sie in der REST-Quellkonfiguration.

Zuordnung

Sie können die automatische Zuordnung auswählen, um alle Eingabespalten an den Endpunkt zu übergeben. Optional können Sie die Spalten manuell festlegen und die Spalten umbenennen, die hier an den Zielendpunkt gesendet werden.

Ausgabe

Hier definieren Sie die Datenstruktur für die Ausgabe des externen Aufrufs. Sie können die Struktur für den Textkörper definieren und auswählen, wie die Kopfzeilen und der vom externen Aufruf zurückgegebene Status gespeichert werden.

Wenn Sie den Textkörper, die Kopfzeilen und den Status speichern möchten, wählen Sie zuerst einen Spaltennamen für jeden aus, damit sie von den nachgelagerten Datentransformationen genutzt werden können.

Sie können die Textkörperdatenstruktur manuell mithilfe der ADF-Datenflusssyntax definieren. Um die Spaltennamen und Datentypen für den Textkörper zu definieren, klicken Sie auf „Import projection“ (Projektion importieren) und erlauben Sie der ADF die Schemaausgabe des externen Aufrufs zu erkennen. Hier sehen Sie ein Beispiel für eine Schemadefinitionsstruktur als Ausgabe eines GET-Aufrufs der Wetter-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)

Beispiele

Beispiele einschließlich Datenflussskript

External call sample

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

Datenflussskript

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