Share via


make-series 연산자

지정된 축을 따라 지정된 집계 값 계열을 만듭니다.

Syntax

T| make-series [MakeSeriesParameters] [Column=] 집계 [default=DefaultValue] [, ...] onAxisColumn [fromstart] [toend] stepstep [by [Column=] GroupExpression [, ...]]

구문 규칙에 대해 자세히 알아보세요.

매개 변수

이름 형식 필수 Description
string 결과 열의 이름입니다. 기본적으로 식에서 파생된 이름입니다.
Defaultvalue 스칼라(scalar) 없는 값 대신 사용할 기본값입니다. AxisColumnGroupExpression의 특정 값이 있는 행이 없으면 배열의 해당 요소에 DefaultValue가 할당됩니다. 기본값은 0입니다.
집계 string ✔️ 열 이름을 인수로 사용하는 집계 함수(예: count() 또는 avg())에 대한 호출입니다. 집계 함수의 목록을 참조하세요. 숫자 결과를 반환하는 집계 함수만 make-series 연산자와 함께 사용할 수 있습니다.
AxisColumn string ✔️ 계열을 정렬할 열입니다. 일반적으로 열 값은 형식 datetime 이거나 timespan 이지만 모든 숫자 형식이 허용됩니다.
start 스칼라(scalar) ✔️ 빌드할 각 계열에 대한 AxisColumn 의 낮은 바인딩된 값입니다. start를 지정하지 않으면 각 계열에 데이터가 있는 첫 번째 bin 또는 단계가 됩니다.
end 스칼라(scalar) ✔️ AxisColumn의 높은 바인딩된 비 포괄 값입니다. 시계열의 마지막 인덱스는 이 값보다 작고 보다 작은 단계시작 및 정수 배수가 됩니다. end를 지정하지 않으면 각 계열당 데이터가 있는 마지막 bin 또는 단계의 상한이 됩니다.
단계 스칼라(scalar) ✔️ AxisColumn 배열의 두 연속 요소 간의 차이 또는 bin 크기입니다. 가능한 시간 간격 목록은 시간 범위를 참조하세요.
GroupExpression 고유한 값 집합을 제공하는 열에 대한 식입니다. 일반적으로 이미 제한된 값 집합을 제공하는 열 이름입니다.
MakeSeriesParameters 동작을 제어하는 이름= 형식의 공백으로 구분된 매개 변수가 0개 이상입니다. 지원되는 계열 매개 변수 만들기를 참조하세요.

참고

시작, 단계 매개 변수는 AxisColumn 값의 배열을 작성하는 데 사용됩니다. 배열은 시작 사이의 값으로 구성되며, 단계 값은 한 배열 요소와 다음 배열 요소 간의 차이를 나타냅니다. 모든 Aggregation 값이 이 배열에 각각 정렬됩니다.

지원되는 계열 매개 변수 만들기

Name Description
kind make-series 연산자의 입력이 비어 있을 때 기본 결과를 생성합니다. 값: nonempty
hint.shufflekey=<key> 쿼리는 shufflekey 키를 사용하여 데이터를 분할하는 클러스터 노드의 쿼리 부하를 공유합니다. 순서 섞기 쿼리 참조

참고

make-series에서 생성된 배열은 1048576 값(2^20)으로 제한됩니다. make-series로 더 큰 배열을 생성하려고 하면 오류가 발생하거나 배열이 잘립니다.

대체 구문

T| make-series [=] 집계 [default=DefaultValue] [, ...] onAxisColumninrange(시작,중지,단계) [by [Column=] GroupExpression [, ...]]

대체 구문에서 생성된 계열은 다음 두 가지 측면에서 기본 구문과 다릅니다.

  • stop 값이 포함됩니다.
  • 인덱스 축 범주화는 bin_at()이 아닌 bin()을 통해 생성됩니다. 즉, start가 생성된 계열에 포함되지 않을 수 있습니다.

대체 구문이 아닌 make-series의 기본 구문을 사용하는 것이 좋습니다.

반환

입력 행은 by 식 및 bin_at(AxisColumn,step,start) 식의 값이 동일한 그룹으로 정렬됩니다. 그런 다음 지정된 집계 함수를 각 그룹에 대해 계산하여 각 그룹에 대해 한 행을 생성합니다. 결과에는 by 열, AxisColumn 열 및 계산된 각 집계에 대한 하나 이상의 열이 포함됩니다. (여러 열 또는 숫자가 아닌 결과에 대한 집계는 지원되지 않습니다.)

이 중간 결과에는 bybin_at(AxisColumn,step,start) 값의 고유한 조합만큼 많은 행이 포함됩니다.

마지막으로 중간 결과의 행이 by 식의 동일한 값이 포함되는 그룹으로 정렬되고, 모든 집계 값이 배열(dynamic 형식의 값)로 정렬됩니다. 각 집계에 대해 동일한 이름의 배열을 포함하는 하나의 열이 있습니다. 마지막 열은 지정된 단계에 따라 범주화된 AxisColumn 값을 포함하는 배열입니다.

참고

집계 및 그룹화 식 모두에 대해 임의 식을 제공할 수 있지만, 단순 열 이름을 사용하는 것이 더 효율적입니다.

집계 함수 목록

기능 Description
avg() 그룹 전체의 평균 값을 반환합니다.
avgif() 그룹에 대한 조건자를 사용하여 평균을 반환합니다.
count() 그룹의 수를 반환합니다.
countif() 그룹에 대한 조건자를 사용하여 개수를 반환합니다.
dcount() 그룹 요소의 대략적인 고유 개수를 반환합니다.
dcountif() 그룹에 대한 조건자를 사용하여 대략적인 고유 개수를 반환합니다.
max() 그룹의 최댓값을 반환합니다.
maxif() 그룹에 대한 조건자를 사용하여 최댓값을 반환합니다.
min() 그룹의 최솟값을 반환합니다.
minif() 그룹에 대한 조건자를 사용하여 최솟값을 반환합니다.
percentile() 그룹의 백분위수 값을 반환합니다.
take_any() 그룹에 대해 비어 있지 않은 임의의 값을 반환합니다.
stdev() 그룹 전체의 표준 편차를 반환합니다.
sum() 그룹 내 요소의 합계를 반환합니다.
sumif() 그룹에 대한 조건자를 사용하여 요소의 합계를 반환합니다.
variance() 그룹 전체의 분산을 반환합니다.

계열 분석 함수 목록

기능 설명
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을 누락 값으로 간주합니다. 따라서 보간 함수를 계열에 사용하려면 make-series에서 default=double(null)을 지정합니다.

예제

지정된 범위의 타임스탬프를 기준으로 정렬된 각 공급자의 각 과일에 대한 개수 및 평균 가격의 배열을 보여 주는 테이블입니다. 출력에는 과일 및 공급자의 각 고유 조합에 대한 행이 있습니다. 출력 열에는 과일, 공급자 및 배열(개수, 평균 및 전체 타임라인(2016-01-01부터 2016-01-10까지))이 표시됩니다. 모든 배열이 해당 타임스탬프를 기준으로 정렬되고, 모든 간격이 기본값(다음 예제의 경우 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

세 개의 테이블이 있습니다. 첫 번째 테이블에는 원시 데이터가 나열되고, 두 번째 테이블에는 고유한 공급자-과일-날짜 조합만 포함되고, 세 번째 테이블에는 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
| 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

make-series에서 kind=nonempty를 사용하면 기본값의 비어 있지 않은 결과가 생성됩니다.

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.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"
]