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


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

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

Совет

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

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

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

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

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

Параметры предложения GROUP BY преобразования

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

Статистические столбцы

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

Параметры статистического выражения

Примечание.

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

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

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

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

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

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

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

Часто преобразование статистической обработки используется для удаления или выявления повторяющихся записей в исходных данных. Это называется дедупликацией. Чтобы определить, какую из дублирующихся строк следует сохранить, используйте эвристику на свой выбор с набором ключей в предложении GROUP BY. Распространенные эвристики — 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.

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

Пример предложения GROUP BY

Пример статистического выражения

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

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

Скрипт потока данных для преобразования

Здесь MoviesYear — производный столбец, определяющий столбцы year и title, AvgComedyRatingByYear — преобразование "Статистическая обработка" для определения среднего рейтинга комедий с группировкой по годам, а avgrating — имя создаваемого столбца для хранения результата статистических вычислений.

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