Преобразование суррогатного ключа в потоке данных для сопоставления
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных 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
Связанный контент
В этих примерах используются преобразования Соединение и Производный столбец.