stringtranslate.com

Агрегатная функция

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

(Рисунок 1) Диаграмма взаимосвязей сущностей, представляющая агрегацию.

К общим агрегатным функциям относятся:

Другие включают в себя:

Формально агрегатная функция принимает в качестве входных данных набор , мультимножество (мешок) или список из некоторого входного домена I и выводит элемент выходного домена O . [1] Входные и выходные домены могут быть одинаковыми, например, для SUM, или могут быть разными, например, для COUNT.

Агрегатные функции широко используются во многих языках программирования , в электронных таблицах и в реляционной алгебре .

Функция listagg, определенная в стандарте SQL:2016 [2], объединяет данные из нескольких строк в одну объединенную строку.

На диаграмме отношений сущностей агрегация представлена, как показано на рисунке 1, с прямоугольником вокруг отношения и его сущностей, что указывает на то, что оно рассматривается как агрегированная сущность. [3]

Разложимые агрегатные функции

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

Некоторые агрегатные функции можно вычислить, вычислив агрегат для подмножеств, а затем агрегировав эти агрегаты; примеры включают COUNT, MAX, MIN, и SUM. В других случаях агрегат можно вычислить, вычислив вспомогательные числа для подмножеств, агрегировав эти вспомогательные числа и, наконец, вычислив общее число в конце; примеры включают AVERAGE(отслеживание суммы и количества, деление в конце) и RANGE(отслеживание максимума и минимума, вычитание в конце). В других случаях агрегат невозможно вычислить без анализа всего набора сразу, хотя в некоторых случаях приближения могут быть распределены; примеры включают DISTINCT COUNT( задача Count-distinct ), MEDIAN, и MODE.

Такие функции называются разложимыми функциями агрегации [4] или разложимыми агрегатными функциями . Простейшие из них можно назвать саморазложимыми функциями агрегации , которые определяются как функции f , такие, что существует оператор слияния ⁠ ⁠ такой, что

где ⁠ ⁠ — объединение мультимножеств (см. гомоморфизм моноидов ).

Например, SUM:

, для синглтона;
, что означает, что слияние ⁠ ⁠ — это просто сложение.

COUNT:

,
.

MAX:

,
.

MIN:

, [2]
.

Обратите внимание, что саморазлагаемые функции агрегации можно объединять (формально, беря произведение), применяя их по отдельности, так что, например, можно вычислить SUMи COUNTодновременно, отслеживая два числа.

В более общем смысле можно определить разложимую функцию агрегации f как такую, которая может быть выражена как композиция конечной функции g и саморазложимой функции агрегации h , . Например, = / и = − .AVERAGESUMCOUNTRANGEMAXMIN

В фреймворке MapReduce эти шаги известны как InitialReduce (значение для индивидуального набора записей/одиночек), Combine (бинарное слияние двух агрегаций) и FinalReduce (конечная функция для вспомогательных значений) [5] , а перемещение разложимой агрегации перед фазой Shuffle известно как шаг InitialReduce [6].

Разложимые функции агрегации важны в онлайн-аналитической обработке (OLAP), поскольку они позволяют вычислять запросы агрегации на основе предварительно вычисленных результатов в кубе OLAP , а не на основе базовых данных. [7] Например, легко поддерживать COUNT, MAX, MIN, и SUMв OLAP, поскольку их можно вычислить для каждой ячейки куба OLAP, а затем суммировать («свернуть»), но трудно поддерживать MEDIAN, поскольку его необходимо вычислять для каждого представления отдельно.

Другие разложимые агрегатные функции

Для того чтобы вычислить среднее значение и стандартное отклонение по совокупным данным, необходимо иметь в наличии для каждой группы: сумму значений (Σx i = SUM(x)), количество значений (N=COUNT(x)) и сумму квадратов значений (Σx i 2 =SUM(x 2 )) каждой группы. [8]

AVG : или , только если COUNT(X)=COUNT(Y) : Сумма квадратов значений важна для вычисления стандартного отклонения групп : Для конечной совокупности с равными вероятностями во всех точках имеем [9] [ циклическая ссылка ]


SUM(x2)

STDDEV

Это означает, что стандартное отклонение равно квадратному корню из разницы между средним значением квадратов значений и квадратом среднего значения.

Смотрите также

Ссылки

  1. ^ Иисус, Бакеро и Алмейда, 2011, 2 Определение проблемы, стр. 3.
  2. ^ ab Winand, Markus (2017-05-15). "Big News in Databases: New SQL Standard, Cloud Wars, and ACIDRain (Spring 2017)". DZone. Архивировано из оригинала 2017-05-27 . Получено 2017-06-10 . В декабре 2016 года ISO выпустила новую версию стандарта SQL. Она вводит новые функции, такие как сопоставление шаблонов строк, listagg, форматирование даты и времени и поддержка JSON.
  3. ^ Elmasri, Ramez (2016). Основы систем баз данных. Sham Navathe (Седьмое изд.). Hoboken, NJ. стр. 133. ISBN 978-0-13-397077-7. OCLC  913842106.{{cite book}}: CS1 maint: location missing publisher (link)
  4. ^ Иисус, Бакеро и Алмейда 2011, 2.1 Разложимые функции, стр. 3–4.
  5. ^ Ю, Гунда и Айсард 2009, 2. Распределенная агрегация, стр. 2–4.
  6. ^ Ю, Гунда и Айсард 2009, 2. Распределенная агрегация, с. 1.
  7. ^ Чжан 2017, стр. 1.
  8. ^ Инж. Оскар Бонилья, MBA
  9. ^ Стандартное отклонение#Идентичности и математические свойства

Литература

Внешние ссылки