다음을 통해 공유


make-series 연산자

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

구문

T | make-series [MakeSeriesParameters] [Column =] Aggregation [default = DefaultValue] [, ...] on AxisColumn [from start] [to end] step step [by [Column =] GroupExpression [, ...]]

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

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

참고 항목

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

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

속성 설명
kind 메이크 계열 연산자의 입력이 비어 있으면 기본 결과를 생성합니다. 값: nonempty
hint.shufflekey=<key> 쿼리는 shufflekey 키를 사용하여 데이터를 분할하는 클러스터 노드의 쿼리 부하를 공유합니다. 순서 섞기 쿼리 참조

참고 항목

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

대체 구문

T | make-series [=] 집계 [ =default DefaultValue] [, ...] on AxisColumn range(in시작, 중지, 단계) [by [ =] GroupExpression [, ...]]

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

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

대체 구문이 아닌 메이크 시리즈의 기본 구문을 사용하는 것이 좋습니다.

반품

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

이 중간 결과에는 고유한 조합과 AxisColumn,단계,시작) 값이 있는 만큼 많은 by 행이 있습니다.bin_at(

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

참고 항목

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

집계 함수 목록

함수 설명
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 보간 함수를 사용하려는 경우 double(null)을 지정default=합니다.

예제

지정된 범위의 타임스탬프에서 정렬한 각 공급업체의 각 과일의 숫자 및 평균 가격 배열을 보여 주는 테이블입니다. 출력에는 과일 및 공급자의 각 고유 조합에 대한 행이 있습니다. 출력 열에는 개수, 평균 및 전체 타임라인(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

테이블 3개. 첫 번째는 원시 데이터를 나열하고, 두 번째는 고유한 공급업체-과일 날짜 조합만 포함하고, 세 번째는 메이크 시리즈 결과를 포함합니다.

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 

출력

Count
0

in을 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.00000000Z",
"2017-01-09T00:00:00.00000000Z"
]