Przekształcanie wywołań zewnętrznych w przepływach danych mapowania

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Przepływy danych są dostępne zarówno w usłudze Azure Data Factory, jak i w potokach usługi Azure Synapse. Ten artykuł dotyczy przepływów danych mapowania. Jeśli dopiero zaczynasz transformacje, zapoznaj się z artykułem wprowadzającym Przekształcanie danych przy użyciu przepływu danych mapowania.

Transformacja wywołań zewnętrznych umożliwia inżynierom danych wywoływanie zewnętrznych punktów końcowych REST wiersz po wierszu w celu dodania niestandardowych lub zewnętrznych wyników do strumieni przepływu danych.

Konfigurowanie

W panelu konfiguracji transformacji wywołań zewnętrznych najpierw wybierz typ zewnętrznego punktu końcowego, z którym chcesz nawiązać połączenie. Następnym krokiem jest mapowania kolumn przychodzących. Na koniec zdefiniuj strukturę danych wyjściowych, która ma być zużywana przez przekształcenia podrzędne.

External call

Ustawienia

Wybierz wbudowany typ zestawu danych i skojarzona połączona usługa. Obecnie obsługiwany jest tylko interfejs REST. Jednak procedury składowane SQL i inne połączone typy usług staną się również dostępne. Zobacz konfigurację źródła REST, aby uzyskać wyjaśnienia właściwości ustawień.

Mapowanie

Możesz wybrać automatyczne mapowanie, aby przekazać wszystkie kolumny wejściowe do punktu końcowego. Opcjonalnie możesz ręcznie ustawić kolumny i zmienić nazwy kolumn wysyłanych do docelowego punktu końcowego tutaj.

Wyjście

W tym miejscu zdefiniujesz strukturę danych dla danych wyjściowych wywołania zewnętrznego. Możesz zdefiniować strukturę treści, a także wybrać sposób przechowywania nagłówków i stanu zwróconego z wywołania zewnętrznego.

Jeśli zdecydujesz się przechowywać treść, nagłówki i stan, najpierw wybierz nazwę kolumny dla każdego z nich, aby mogły być używane przez przekształcenia danych podrzędnych.

Strukturę danych treści można zdefiniować ręcznie przy użyciu składni przepływu danych usługi ADF. Aby zdefiniować nazwy kolumn i typy danych dla treści, kliknij pozycję "projekcja importu" i zezwól usłudze ADF na wykrywanie danych wyjściowych schematu z wywołania zewnętrznego. Oto przykładowa struktura definicji schematu jako dane wyjściowe wywołania GET interfejsu API REST pogody:

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

Przykłady

Przykłady, w tym skrypt przepływu danych

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

Skrypt przepływu danych

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