Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Узнайте, как создать серию указанных статистических значений по заданной оси.
Синтаксис
T| make-series
[MakeSeriesParameters] [Столбец=
] Агрегирование [default
=
DefaultValue] [,
...] on
AxisColumn [from
start] [to
end] step
[by
] =
GroupExpression [,
...]]
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Тип | Обязательно | Описание |
---|---|---|---|
Столбец | string |
Имя столбца результатов. По умолчанию это имя, получаемое из выражения. | |
DefaultValue | скаляр | Значение по умолчанию для использования вместо отсутствующих значений. Если строки с определенными значениями AxisColumn и GroupExpression отсутствуют, соответствующий элемент массива назначается defaultValue. Значение по умолчанию — 0. | |
Агрегат | string |
✔️ | Вызов функции агрегирования, например count() или avg() с именами столбцов в качестве аргументов. См. список статистических функций. С оператором make-series можно использовать только статистические функции, возвращающие числовые результаты. |
AxisColumn | string |
✔️ | Столбец, по которому упорядочен ряд. Обычно значения столбцов имеют тип datetime или timespan все числовые типы принимаются. |
Начало | скаляр | ✔️ | Низкое ограничивающее значение AxisColumn для каждой из созданных рядов. Если запуск не указан, это первая ячейка или шаг, которая содержит данные в каждой серии. |
конец | скаляр | ✔️ | Высокограничное не инклюзивное значение AxisColumn. Последний индекс временных рядов меньше этого значения и начинается плюс целое число, которое меньше конца. Если конец не указан, это верхняя граница последней ячейки или шаг, которая содержит данные для каждой серии. |
шаг | скаляр | ✔️ | Разница или размер ячейки между двумя последовательными элементами массива AxisColumn . Список возможных интервалов времени см. в разделе "Интервал времени". |
GroupExpression | выражение для столбцов, предоставляющее набор уникальных значений. Обычно это имя столбца, который уже содержит ограниченный набор значений. | ||
MakeSeriesParameters | Ноль или более разделенных пробелами параметров в виде значения имени= , которое управляет поведением. См . поддерживаемые параметры серии. |
Примечание.
start
Для end
создания массива значений step
используются параметры и параметры. Массив состоит из значений между и start
, с end
значением, представляющим разницу между step
одним элементом массива и следующим. Все значения Aggregation упорядочиваются относительно этого массива.
Поддерживаемые параметры серии
Имя (название) | Описание |
---|---|
kind |
Создает результат по умолчанию, если входные данные оператора make-series пусты. Значение: nonempty |
hint.shufflekey=<key> |
Запрос shufflekey использует нагрузку запроса на узлы кластера, используя ключ для секционирования данных. См. запрос перемешивания |
Примечание.
Массивы, созданные с помощью make-series, ограничены 1048 576 значениями (2^20). Попытка создать массив большего размера с помощью make-series приведет к ошибке или созданию усеченного массива.
Альтернативный синтаксис
T| make-series
[столбец=
] Агрегирование [default
=
DefaultValue] [,
...] on
AxisColumnin
range(
начало,
остановка,
шаг)
[by
столбец=
] GroupExpression [,
...]]
Созданный ряд с альтернативным синтаксисом отличается от основного синтаксиса в двух аспектах:
- Значение stop является инклюзивным.
- Объединение оси индекса создается с помощью bin() и не bin_at(), что означает, что запуск может не включаться в созданную серию.
Рекомендуется использовать основной синтаксис make-series, а не альтернативный синтаксис.
Возвраты
Входные строки объединяются в группы с одинаковыми значениями выражений by
и выражения bin_at(
AxisColumn,
step,
start)
. Затем указанные агрегатные функции выполняют вычисления и создают строку для каждой группы. Результат содержит столбцы by
, столбец AxisColumn и хотя бы один столбец для каждого вычисленного статистического выражения. (Агрегаты по нескольким столбцам или нечисловым результатам не поддерживаются.)
Этот промежуточный результат содержит столько же строк, сколько имеется отдельных сочетаний by
и значений bin_at(
AxisColumn,
step,
start)
.
Наконец, строки из промежуточного результата, собранные в группы с одинаковыми значениями выражений by
, и все агрегированные значения упорядочиваются в массивы (значения типа dynamic
). Для каждой статистической обработки есть один столбец, содержащий его массив с одинаковым именем. Последний столбец представляет собой массив со значениями AxisColumn, которые сгруппированы в соответствии с указанным значением step.
Примечание.
Для статистических выражений и выражений группирования допускаются произвольные выражения, но эффективнее использовать простые имена столбцов.
Список статистических функций
Функция | Описание |
---|---|
avg() | Возвращает среднее значение в группе. |
avgif() | Возвращает среднее значение с предикатом в группе. |
count() | Возвращает число для групп. |
countif() | Возвращает число с предикатом для групп. |
ковариации() | Возвращает пример ковариации двух случайных переменных |
covarianceif() | Возвращает пример ковариации двух случайных переменных с предикатом |
ковариант() | Возвращает ковариантность совокупности двух случайных переменных |
covariancepif() | Возвращает ковариантность популяции двух случайных переменных с предикатом |
dcount() | Возвращает приблизительное число уникальных элементов в группе. |
dcountif() | Возвращает приблизительное число уникальных элементов с предикатом в группе. |
max() | Возвращает максимальное значение в группе |
maxif() | Возвращает максимальное значение с предикатом в группе. |
min() | Возвращает минимальное значение в группе |
minif() | Возвращает минимальное значение с предикатом в группе. |
percentile() | Возвращает значение процентиля в группе. |
take_any() | Возвращает случайное непустое значение в группе. |
stdev() | Возвращает стандартное отклонение в группе |
sum() | Возвращает сумму элементов в группе |
sumif() | Возвращает сумму элементов с предикатом в группе. |
дисперсии() | Возвращает дисперсию примера в группе |
дисперсификатор() | Возвращает выборку дисперсии в группе с предикатом |
дисперсии() | Возвращает дисперсию населения в группе |
variancepif() | Возвращает дисперсию популяции в группе с предикатом |
Список функций анализа рядов
Функция | Описание |
---|---|
series_fir() | Применяет фильтр с конечной импульсной характеристикой. |
series_iir() | Применяет фильтр с бесконечной импульсной характеристикой. |
series_fit_line() | Находит прямую строку, которая является наилучшим приближением входных данных. |
series_fit_line_dynamic() | Находит строку, которая является наилучшим приближением входных данных, возвращая динамический объект. |
series_fit_2lines() | Находит две строки, которые являются наилучшим приближением входных данных. |
series_fit_2lines_dynamic() | Находит две строки, которые являются наилучшим приближением входных данных, возвращая динамический объект. |
series_outliers() | Оценивает точки аномалий в ряду. |
series_periods_detect() | Находит наиболее значимые периоды во временных рядах. |
series_periods_validate() | Проверяет, содержит ли временной ряд периодические шаблоны заданной длины. |
series_stats_dynamic() | Возвращает несколько столбцов с общей статистикой (min/max/variance/stdev/average). |
series_stats() | Создает динамическое значение с общей статистикой (min/max/variance/stdev/average). |
Полный список функций анализа рядов см. в разделе: функции обработки рядов
Список функций интерполяции ряда
Функция | Описание |
---|---|
series_fill_backward() | Выполняет интерполяцию с обратным заполнением отсутствующих значений в ряду. |
series_fill_const() | Заменяет отсутствующие значения в ряду указанным значением константы. |
series_fill_forward() | Выполняет интерполяцию с прямым заполнением отсутствующих значений в ряду. |
series_fill_linear() | Выполняет линейную интерполяцию отсутствующих значений в ряду. |
- Примечание. Функции интерполяции по умолчанию предполагают
null
отсутствие значения. Поэтому укажитеdefault=
double(null
) вmake-series
, если планируется использовать функции интерполяции для ряда.
Примеры
Таблица, в которой отображаются массивы чисел и средние цены для каждого фрукта у каждого поставщика, упорядоченные по метке времени с заданным диапазоном. В выходных данных есть строка для каждого отдельного сочетания фрукта и поставщика. В выходных столбцах указаны фрукт, поставщик и следующие массивы: количество, среднее значение и полная временная шкала (с 01.01.2016 по 10.01.2016). Все массивы сортируются по соответствующей метке времени, а все пробелы заполняются значениями по умолчанию (0 в этом примере). Все остальные входные столбцы игнорируются.
T | make-series PriceAvg=avg(Price) default=0
on Purchase from datetime(2016-09-10) to datetime(2016-09-13) step 1d by Supplier, Fruit
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| make-series avg(metric) on timestamp from stime to etime step interval
avg_metric | TIMESTAMP |
---|---|
[ 4.0, 3.0, 5.0, 0.0, 10.5, 4.0, 3.0, 8.0, 6.5 ] | [ "2017-01-01T00:00:00.0000000Z", "2017-01-02T00:00:00.0000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.0000000Z", "2017-01-05T00:00:00.0000000Z", "2017-01-06T00:00:00.0000000Z", "2017-01-07T00:00:00.0000000Z", "2017-01-08T00:00:00.0000000Z", "2017-01-09T00:00:00.0000000Z" ] |
Если входные данные make-series
пусты, поведение make-series
по умолчанию создает пустой результат.
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| take 0
| make-series avg(metric) default=1.0 on timestamp from stime to etime step interval
| count
Выходные данные
Численность |
---|
0 |
Использование kind=nonempty
в make-series
создает непустый результат значений по умолчанию:
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| take 0
| make-series kind=nonempty avg(metric) default=1.0 on timestamp from stime to etime step interval
Выходные данные
avg_metric | TIMESTAMP |
---|---|
[ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] |
[ "2017-01-01T00:00:00.000000Z", "2017-01-02T00:00:00.000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.000000Z", "2017-01-05T00:00:00.0000000Z", "2017-01-06T00:00:00.000000Z", "2017-01-07T00:00:00.000000Z", "2017-01-08T00:00:00.000000Z", "2017-01-09T00:00:00.000000Z" ] |
Использование make-series
и mv-expand
заполнение значений отсутствующих записей:
let startDate = datetime(2025-01-06);
let endDate = datetime(2025-02-09);
let data = datatable(Time: datetime, Value: int, other:int)
[
datetime(2025-01-07), 10, 11,
datetime(2025-01-16), 20, 21,
datetime(2025-02-01), 30, 5
];
data
| make-series Value=sum(Value), other=-1 default=-2 on Time from startDate to endDate step 7d
| mv-expand Value, Time, other
| extend Time=todatetime(Time), Value=toint(Value), other=toint(other)
| project-reorder Time, Value, other
Выходные данные
Время | Ценность | иное |
---|---|---|
2025-01-06T00:00:00Z | 10 | -1 |
2025-01-13T00:00:00Z | 20 | -1 |
2025-01-20T00:00:00Z | 0 | -2 |
2025-01-27T00:00:00Z | 30 | -1 |
2025-02-03T00:00:00Z | 0 | -2 |