Преобразование с внешним вызовом в потоках данных для сопоставления

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Потоки данных доступны в конвейерах как Фабрики данных Azure, так и Azure Synapse. Эта статья относится к потокам данных для сопоставления. Если вы не знакомы с преобразованиями, см. вводную статью Преобразование данных с помощью потока данных для сопоставления.

Преобразование с внешним вызовом позволяет инженерам данных обращаться к внешним конечным точкам REST построчно и добавлять пользовательские или сторонние результаты в потоки данных.

Настройка

В панели настройки преобразования с внешним вызовом сначала выберите тип внешней конечной точки, к которой нужно подключиться. Затем сопоставьте входящие столбцы. Наконец, определите структуру выходных данных для использования подчиненными преобразованиями.

External call

Настройки

Выберите встроенный тип набора данных и привязанную к нему связанную службу. Сейчас поддерживается только тип REST. Однако хранимые процедуры SQL и другие типы связанных служб также будут доступны. Пояснения к свойствам параметров см. в описании настройки источника REST.

Сопоставление

Можно выбрать автоматическое сопоставление, чтобы передать все входные столбцы на конечную точку. При необходимости можно вручную задать столбцы и переименовать столбцы, отправляемые на целевую конечную точку.

Выходные данные

Здесь вы определите структуру данных для выходных данных внешнего вызова. Вы можете определить структуру для текста, а также выбрать способ хранения заголовков и состояние, возвращаемого внешним вызовом.

Если вы решили сохранить текст, заголовки и состояние, сначала выберите имя столбца для каждого из них, чтобы их можно было использовать при последующих преобразованиях данных.

Структуру данных текста можно определить вручную с помощью синтаксиса потока данных ADF. Это позволяет задать имена столбцов и типы данных. Можно также щелкнуть "Import projection" (Импорт проекции) и разрешить ADF обнаружение выходных данных схемы внешнего вызова. Ниже приведен пример структуры определения схемы в качестве выходных данных о погоде вызова GET 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)

Примеры

Примеры со скриптом потока данных

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

Скрипт потока данных

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