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


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

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

Совет

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

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

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

Настройка

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

Ключевой столбец: имя создаваемого ключевого столбца с суррогатным ключом.

Начальное значение: наименьшее значение ключа, которое будет создано.

Приращение ключей из существующих источников

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

Поиск суррогатного ключа

Приращение от существующего максимального значения

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

Источники базы данных

Получите значение MAX() из источника с помощью SQL-запроса. Например, Select MAX(<surrogateKeyName>) as maxval from <sourceTable>.

Запрос суррогатного ключа

Источники файлов

Если предыдущее максимальное значение находится в файле, используйте для его получения функцию max() в статистическом преобразовании:

Файл суррогатного ключа

В обоих случаях необходимо будет записать значение в приемник кэша, а потом найти его.

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

Синтаксис

<incomingStream> 
    keyGenerate(
        output(<surrogateColumnName> as long),
        startAt: <number>L
    ) ~> <surrogateKeyTransformationName>

Пример

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

Скрипт потока данных для приведенной выше конфигурации суррогатного ключа см. во фрагменте кода ниже.

AggregateDayStats
    keyGenerate(
        output(key as long),
        startAt: 1L
    ) ~> SurrogateKey1

В этих примерах используются преобразования Соединение и Производный столбец.