Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Узнайте, как создать серию указанных статистических значений по заданной оси.
Синтаксис
T| make-series [MakeSeriesParameters] [Столбец=] Агрегирование [default=DefaultValue] [, ...] onAxisColumn [fromstart] [toend] 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] [, ...] onAxisColumninrange(начало,остановка,шаг) [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 |