Использование шаблонов столбцов при сопоставлении потоков данных

ПРИМЕНИМО К: Azure Data Factory Azure Synapse Analytics

Совет

Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.

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

  • Если входящие исходные поля часто изменяются, например изменение столбцов в текстовых файлах или NoSQL базах данных. Этот сценарий называется смещением схемы.
  • Если требуется выполнить типичную операцию с большой группой столбцов. Например, необходимо привести каждый столбец, имеющий в имени слово Total, к типу Double.

Шаблоны столбцов в производном столбце и агрегатном выражении

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

На снимке экрана показан значок 'плюс' для добавления шаблона столбца.

Чтобы ввести условие соответствия, используйте построитель выражений. Создайте логическое выражение, которое сопоставляет столбцы, основываясь на name, type, stream, origin и position столбца. Шаблон будет влиять на любой смещенный или определенный столбец, где условие возвращает значение true.

На снимке экрана показана вкладка

Шаблон столбца выше сопоставляет все столбцы типа double и создает для каждого соответствия один производный столбец. Если указать $$ в качестве поля "Имя столбца", это имя получат все сопоставленные столбцы. Значение каждого столбца — это существующее значение, округленное до двух десятичных точек.

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

На снимке экрана показана вкладка

Иерархическое сопоставление шаблонов

Сопоставления шаблонов можно также создавать внутри сложных иерархических структур. Разверните раздел Each MoviesStruct that matches, чтобы вас попросили указать каждую иерархию в потоке данных. Затем можно создавать совпадающие шаблоны для свойств в этой выбранной иерархии.

На снимке экрана показан шаблон иерархического столбца.

Преобразование в плоскую структуру

Если ваши данные имеют сложную структуру, такую как массивы, иерархические структуры и карты, вы можете использовать трансформацию "Приведение к плоскому виду", чтобы развернуть массивы и денормализовать ваши данные. Для структур и карт используйте трансформацию производного столбца, используя шаблоны столбцов, чтобы сформировать вашу плоскую реляционную таблицу из иерархий. С помощью шаблонов столбцов, которые выглядят так, как в этом примере, вы можете преобразовать иерархию географических регионов в форму реляционной таблицы:

Снимок экрана показывает упрощенную структуру производного столбца.

Сопоставление на основе правил в выборке и синке

При сопоставлении столбцов в преобразованиях источника и выбора можно добавлять фиксированные сопоставления или сопоставления на основе правил. Используйте для сопоставления столбцы name, type, stream, origin и position. Вы можете иметь любую комбинацию фиксированных и основанных на правилах сопоставлений. По умолчанию все проекции, содержащие больше 50 столбцов, используют сопоставление на основе правил, которое проверяет каждый столбец и выводит введенное имя.

Чтобы добавить сопоставление на основе правил, нажмите кнопку Добавить сопоставление и выберите Сопоставление на основе правил.

Снимок экрана: выбор сопоставления на основе правил с помощью команды “Добавить сопоставление”.

Каждому сопоставлению на основе правил нужны два входных элемента: условие, согласно которому производится сопоставление, и имя для каждого сопоставленного столбца. Оба значения вводятся с помощью построителя выражений. В поле выражения слева введите логическое условие соответствия. В поле выражения справа укажите, с чем будет сопоставляться столбец.

На снимке экрана показано сопоставление.

Используйте синтаксис $$, чтобы указать входное имя сопоставленного столбца. Возьмем в качестве примера приведенное выше изображение. Предположим, что пользователь хочет сопоставить все столбцы со строковыми значениями, имена которых содержат меньше шести символов. Если один из входящих столбцов назывался test, выражение $$ + '_short' переименует столбец в test_short. Если это единственное сопоставление, все столбцы, не отвечающие условию, будут удалены из данных вывода.

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

Сопоставление регулярного выражения

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

Снимок экрана: условие сопоставления регулярного выражения, сопоставляющее уровень иерархии и имя.

В приведенном выше примере сопоставление выполняется по шаблону регулярного выражения (r) или любому имени столбца, в котором содержится маленькая буква r. Как и в стандартном сопоставлении, в сопоставлении на основе правил все сопоставленные столбцы изменяются в соответствии с условием, заданным справа с помощью синтаксиса $$.

Иерархии на основе правил

Если в проекции определена иерархия, можно использовать сопоставление на основе правил для сопоставления подстолбцов иерархии. Укажите условие соответствия и сложный столбец, подчиненные столбцы которого нужно сопоставить. Каждый сопоставленный субстолбец будет выводиться согласно правилу "Name as", указанному справа.

Снимок экрана: сопоставление на основе правил для иерархии.

В приведенном выше примере сопоставляются все подстолбцы сложного столбца a. a содержит два подчиненных столбца: b и c. Выходная схема будет содержать два столбца b и c, так как условие "Name as" — $$.

Значения выражений для сопоставления с шаблоном

  • $$ преобразуется в имя или значение каждого совпадения во время выполнения. Представьте себе $$ как эквивалент this.
  • $0 сопоставляется с текущим именем столбца во время выполнения для скалярных типов. Для иерархических типов $0 представляет текущий путь иерархии сопоставленных столбцов.
  • name представляет имя каждого входящего столбца.
  • type представляет тип данных каждого входящего столбца. Список типов данных в системе типов потоков данных можно найти здесь.
  • stream представляет имя, связанное с каждым потоком или преобразованием в вашем потоке.
  • position — порядковый номер столбца в потоке данных.
  • origin — преобразование, где столбец был создан или обновлен в последний раз.