Преобразование "Агрегация" в процессе сопоставления потока данных

ПРИМЕНИМО К: Фабрика данных Azure Azure Synapse Analytics

Совет

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

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

Совет

Эквивалентное преобразование (группирование по) в Dataflow 2-го поколения см. в руководстве по потоку данных 2-го поколения для сопоставления пользователей потока данных.

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

Группировать по

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

Параметры группировки преобразования агрегатов

В агрегатном преобразовании предложение GROUP BY является необязательным.

Агрегированные столбцы

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

Настройки агрегации

Примечание.

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

Шаблоны столбцов

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

Повторное соединение строк и столбцов

Агрегатные преобразования похожи на агрегатные SQL запросы SELECT. Столбцы, не входящие в предложение GROUP BY или агрегатные функции, не будут переданы на выход агрегатного преобразования. Если вы хотите включить в результаты преобразования другие столбцы, действуйте одним из следующих способов.

  • Используйте для включения нужного дополнительного столбца агрегатную функцию, например last() или first().
  • Повторно присоедините столбцы к выходному потоку, используя шаблон самосоединения.

Удаление дублирующихся строк

Часто преобразование статистической обработки используется для удаления или выявления повторяющихся записей в исходных данных. Это называется дедупликацией. Для определения, какую из дублирующихся строк следует сохранить, на основе набора ключей сортировки используйте выбранную вами эвристику. Распространенные эвристики — first(), last()max() и min(). Чтобы применить правило к каждому столбцу, за исключением столбцов в предложении GROUP BY, используйте шаблоны столбцов.

Дедупликация

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

В сценариях проверки данных функцию count() можно использовать для подсчета дубликатов.

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

Синтаксис

<incomingStream>
    aggregate(
           groupBy(
                <groupByColumnName> = <groupByExpression1>,
                <groupByExpression2>
               ),
           <aggregateColumn1> = <aggregateExpression1>,
           <aggregateColumn2> = <aggregateExpression2>,
           each(
                match(matchExpression),
                <metadataColumn1> = <metadataExpression1>,
                <metadataColumn2> = <metadataExpression2>
               )
          ) ~> <aggregateTransformationName>

Пример

В приведенном ниже примере строки из входящего потока MoviesYear группируются по столбцу year. Преобразование создает статистический столбец avgrating, результирующее значение которого — среднее значение столбца Rating. Этому агрегатному преобразованию присвоено имя AvgComedyRatingsByYear.

В пользовательском интерфейсе это преобразование выглядит следующим образом:

Группировка на примере

Пример агрегации

Скрипт потока данных для этого преобразования представлен в следующем фрагменте кода:

MoviesYear aggregate(
                groupBy(year),
                avgrating = avg(toInteger(Rating))
            ) ~> AvgComedyRatingByYear

Скрипт агрегирования потока данных

MoviesYear: производный столбец, определяющий столбцы года и названия; AvgComedyRatingByYear: преобразование агрегации для среднего рейтинга комедий, сгруппированных по годам; avgrating: имя нового столбца, создаваемого для хранения агрегированного значения.

MoviesYear aggregate(groupBy(year),
	avgrating = avg(toInteger(Rating))) ~> AvgComedyRatingByYear