Смещение схемы в потоке данных для сопоставления

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

Совет

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

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

Чтобы защититься от смещения схемы, важно иметь средства в инструменте потока данных, позволяющие инженеру данных:

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

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

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

В этом видеоролике приводятся общие сведения о некоторых сложных решениях, которые можно легко скомпилировать в конвейерах Фабрики данных Azure и Synapse Analytics с помощью функции смещения схемы потока данных. В этом примере мы компилируем многоразовые шаблоны на основе гибких схем баз данных.

Смещение схемы в источнике

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

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

Schema drift source

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

Смещение схемы в приемнике

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

Schema drift sink

Если смещение схемы включено, убедитесь, что включен ползунок Автоматическое сопоставление на вкладке "Сопоставление". Когда этот ползунок включен, все входящие столбцы записываются в место назначения. Иначе для записи смещенных столбцов необходимо использовать сопоставление на основе правил.

Sink auto mapping

Преобразование смещенных столбцов

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

  • С помощью выражений byPosition и byName явно ссылайтесь на столбец по имени или номеру позиции.
  • Добавьте шаблон столбца в преобразование "Производный столбец" или "Статистическая обработка" для сопоставления с любым сочетанием имени, потока, позиции, происхождения или типа.
  • Добавьте сопоставление на основе правил в преобразовании "Выбор" или "Приемник" для сопоставления по шаблону смещенных столбцов и псевдонимов столбцов

Дополнительные сведения о реализации шаблонов столбцов см. в статье Шаблоны столбцов в потоке данных для сопоставления.

Быстрое действие "Сопоставить смещенные"

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

Screenshot shows the Data Preview tab with Map drifted called out.

В сгенерированном преобразовании "Производный столбец" каждый смещенный столбец сопоставляется с его обнаруженным именем и типом данных. При приведенном выше предварительном просмотре данных столбец "movieId" определяется как целое число. После нажатия кнопки Сопоставить смещенные "movieId" определяется в производном столбце как toInteger(byName('movieId')) и включается в представления схемы в нижестоящих преобразованиях.

Screenshot shows the Derived Column's Settings tab.

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