Megosztás a következőn keresztül:


Külső hívásátalakítás az adatfolyamok leképezésében

A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

Az adatfolyamok az Azure Data Factoryben és az Azure Synapse Pipelinesban is elérhetők. Ez a cikk az adatfolyamok leképezésére vonatkozik. Ha még nem használta az átalakításokat, tekintse meg az adatok leképezési adatfolyam használatával történő átalakításáról szóló bevezető cikket.

A külső hívásátalakítás lehetővé teszi az adatmérnökök számára, hogy sorról sorra meghívják a külső REST-végpontokat, hogy egyéni vagy harmadik féltől származó eredményeket adjanak hozzá az adatfolyamokhoz.

Konfiguráció

A külső hívásátalakítási konfigurációs panelen először meg kell adnia a külső végpont típusát, amelyhez csatlakozni szeretne. A következő lépés a bejövő oszlopok leképezése. Végül definiáljon egy kimeneti adatstruktúrát, amelyet az alsóbb rétegbeli átalakítások használnak fel.

External call

Settings

Válassza ki a beágyazott adathalmaz típusát és a társított társított szolgáltatást. Ma csak a REST támogatott. Az SQL tárolt eljárásai és más társított szolgáltatástípusok azonban elérhetővé válnak. A beállítások tulajdonságainak magyarázatát a REST-forráskonfigurációban talál.

Hozzárendelés

Az automatikus leképezést választva az összes bemeneti oszlopot átadhatja a végpontnak. Igény szerint manuálisan is beállíthatja az oszlopokat, és átnevezheti a célvégpontnak küldött oszlopokat.

Hozam

Itt határozhatja meg a külső hívás kimenetének adatstruktúráját. Meghatározhatja a törzs struktúráját, valamint kiválaszthatja, hogyan tárolja a fejléceket és a külső hívásból visszaadott állapotot.

Ha úgy dönt, hogy a törzset, fejléceket és állapotot tárolja, először válasszon egy oszlopnevet mindegyikhez, hogy azok felhasználhatók legyenek az alsóbb rétegbeli adatátalakítások során.

A törzsadat-struktúrát manuálisan is meghatározhatja az ADF-adatfolyam szintaxisával. A törzs oszlopneveinek és adattípusainak meghatározásához kattintson az "importálási vetület" elemre, és engedélyezze az ADF számára, hogy észlelje a külső hívás sémakimenetét. Íme egy példa sémadefiníciós struktúra egy időjárási REST API GET-hívás kimeneteként:

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

Példák

Minták, beleértve az adatfolyam-szkriptet

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

Adatfolyamszkript

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