Поделиться через


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

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

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

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

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

Тип утверждения

Настройка

На панели настройки преобразования утверждения выберите тип утверждения, укажите уникальное имя утверждения, введите необязательное описание и определите выражение и необязательный фильтр. На панели предварительного просмотра данных будет указано, какие строки не прошли утверждение. Кроме того, можно протестировать каждый тег строки в нисходящем направлении, используя isError() и hasError() для строк, которые не прошли утверждение.

Параметры утверждения

Тип утверждения

  1. Ожидается значение true: результат выражения должен быть логическим значением true. Используйте этот тип для проверки диапазонов значений предметной области в данных.
  2. Ожидается уникальный экземпляр: задайте столбец или выражение в качестве правила уникальности данных. Используйте его для пометки тегами повторяющихся строк.
  3. Ожидается существование: этот параметр доступен, только если выбран второй входящий поток. Операция EXISTS будет просматривать оба потока и определять, существуют ли строки в обоих потоках, основываясь на указанных столбцах или выражениях. Чтобы добавить второй поток для операции EXISTS, выберите Additional streams.

Конфигурация утверждения

Сбой потока данных

Выберите fail data flow, если вы хотите, чтобы действие потока данных завершилось сбоем сразу же после нарушения правила утверждения.

ИД утверждения

ИД утверждения — это свойство, в котором необходимо указать имя утверждения (строка). Вы сможете использовать этот идентификатор позже в потоке данных с помощью hasError() или для вывода кода сбоя утверждения. ИД утверждений должны быть уникальными в пределах каждого потока данных.

Описание утверждения

Введите строковое описание для утверждения. Здесь также можно использовать выражения и значения столбцов контекста строк.

Фильтр

Фильтр — это необязательное свойство, с помощью которого можно ограничить утверждение только подмножеством строк по значению выражения.

Expression

Введите вычисляемое выражение для каждого утверждения. Для каждого преобразования утверждения можно использовать несколько утверждений. Для каждого типа утверждения требуется выражение, которое ADF необходимо оценить, чтобы проверить, выполнено ли утверждение.

Игнорировать значения NULL

По умолчанию преобразование утверждения будет включать значения NULL в вычисление утверждения строки. С помощью этого свойства можно пропускать значения NULL.

Направление сбоев утверждения строки

При сбое утверждения можно при необходимости направить эти строки с ошибками в файл в Azure с помощью вкладки "Ошибки" в преобразовании приемника. Кроме того, в преобразовании приемника можно совсем не выводить строки с ошибками утверждения, игнорируя строки с ошибками.

Примеры

source(output(
		AddressID as integer,
		AddressLine1 as string,
		AddressLine2 as string,
		City as string,
		StateProvince as string,
		CountryRegion as string,
		PostalCode as string,
		rowguid as string,
		ModifiedDate as timestamp
	),
	allowSchemaDrift: true,
	validateSchema: false,
	isolationLevel: 'READ_UNCOMMITTED',
	format: 'table') ~> source1
source(output(
		CustomerID as integer,
		AddressID as integer,
		AddressType as string,
		rowguid as string,
		ModifiedDate as timestamp
	),
	allowSchemaDrift: true,
	validateSchema: false,
	isolationLevel: 'READ_UNCOMMITTED',
	format: 'table') ~> source2
source1, source2 assert(expectExists(AddressLine1 == AddressLine1, false, 'nonUS', true(), 'only valid for U.S. addresses')) ~> Assert1

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

Примеры

source1, source2 assert(expectTrue(CountryRegion == 'United States', false, 'nonUS', null, 'only valid for U.S. addresses'),
	expectExists(source1@AddressID == source2@AddressID, false, 'assertExist', StateProvince == 'Washington', toString(source1@AddressID) + ' already exists in Washington'),
	expectUnique(source1@AddressID, false, 'uniqueness', null, toString(source1@AddressID) + ' is not unqiue')) ~> Assert1