make-series 演算子

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

指定された軸に沿って、指定された集計値の系列を作成します。

構文

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

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 説明
string 結果の列の名前。 既定値は式から派生した名前です。
DefaultValue スカラー (scalar) 存在しない値の代わりに使用する既定値。 AxisColumnGroupExpression の特定の値を持つ行がない場合、配列の対応する要素に DefaultValue が割り当てられます。 既定値は 0 です。
集計 string ✔️ 引数として列名が指定された count()avg() などの集計関数の呼び出し。 集計関数のリストを参照してください。 make-series 演算子と共に使用できるのは、数値の結果を返す集計関数のみです。
AxisColumn string ✔️ 系列を並べ替える列。 通常、列の値は 型 datetime または timespan になりますが、すべての数値型が使用できます。
start スカラー型 ✔️ 構築する各系列の AxisColumn の下限値。 start が指定されていない場合は、各系列のデータを含む最初のビン (ステップ) になります。
end スカラー型 ✔️ AxisColumn の非包含の上限値。 時系列の最後のインデックスはこの値よりも小さくなり、startstep の整数倍を加えた、end 未満の値になります。 end が指定されていない場合、各系列のデータを持つ最後のビン (ステップ) の上限になります。
step スカラー型 ✔️ AxisColumn 配列の 2 つの連続する要素間の差 (ビンのサイズ)。 可能な期間*のリスト*については、「期間」を参照してください。
GroupExpression 個別の値のセットを示す、列に対する式。 通常は、限られた値のセットが既に指定されている列名です。
MakeSeriesParameters 動作を制御する 0 個以上のスペース区切りパラメーター ( Name = Value の形式。 「サポートされている make series パラメーター」を参照してください。

Note

startendstep の各パラメーターを使用して、AxisColumn 値の配列を作成します。 配列は startend の間の値で構成され、step 値は 1 つの配列要素と次の配列要素の差を表します。 すべての Aggregation 値は、この配列にそれぞれ並べ替えられます。

サポートされている make series パラメーター

Name 説明
kind make-series 演算子*の入力*が空の場合に、デフォルト*の結果が生成されます。 値: nonempty
hint.shufflekey=<key> shufflekey クエリ*は、データ*をパーティション*化するキー*で、クラスター ノード*のクエリ*負荷*を共有*します。 クエリ*のシャッフルを参照

Note

make-series によって生成される配列は、1048576 の値 (2^20) に制限されています。 make-series を使用してそれより大きい配列を生成しようとすると、エラーまたは切り詰められた配列の結果となります。

代替構文

T | make-series [Column =] Aggregation [default = DefaultValue] [, ...] on AxisColumn in range(start, stop, step) [by [Column =] GroupExpression [, ...]]

代替構文から生成される系列は、次の 2 つの点でメイン構文と異なります。

  • stop 値は包含値です。
  • インデックス軸のビン分割は、bin_at() ではなく bin() を使用して生成されます。つまり、start は生成された系列に含まれない可能性があります。

代替構文ではなく、make-series のメイン構文を使用することをお勧めします。

戻り値

入力行は、by 式と bin_at(AxisColumn,step,start) 式の同じ値を持つグループにまとめられます。 次に、指定された集計関数によってグループごとに計算が行われ、各グループに対応する行が生成されます。 結果には、by 列、AxisColumn 列のほか、計算された各集計に対応する 1 つ以上の列も含まれます (複数の列以上または数値以外の結果の集計はサポートされていません)。

この中間結果には、bybin_at(AxisColumn,step,start ) 値の個別の組み合わせと同じ数の行が含まれています。

最後に、中間結果の行は by 式と同じ値を持つグループにまとめられ、すべての集計値は配列 (dynamic 型の値) にまとめられます。 集計ごとに、同じ名前の配列を含む 1 つの列が存在します。 最後の列は、指定された step に従ってビンされた AxisColumn の値を含む配列です。

Note

集計式とグループ化式の両方に任意の式を指定できますが、単純な列名を使用する方がより効率的です。

集計関数の一覧

機能 説明
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() 入力に最も近い 2 本の線を検索します
series_fit_2lines_dynamic() 入力に最も近い 2 本の線を検索し、動的オブジェクトを返します
series_outliers() 系列内の異常な点にスコアを付けます
series_periods_detect() 時系列に存在する最も重要な期間を検索します
series_periods_validate() 時系列に特定の長さの周期的なパターンが含まれているかどうかを確認します
series_stats_dynamic() 一般的な統計情報 (最小、最大、分散、標準偏差、平均) を含む複数の列を返します
series_stats() 一般的な統計情報 (最小、最大、分散、標準偏差、平均) を含む動的な値を生成します

系列分析関数の完全な一覧については、「系列処理関数」を参照してください。

系列補間関数の一覧

機能 [説明]
series_fill_backward() 系列内の欠損値の後方埋め込み補間を実行します
series_fill_const() 系列の欠損値を指定した定数値に置き換えます
series_fill_forward() 系列内の欠損値の前方埋め込み補間を実行します
series_fill_linear() 系列内の欠損値の線形補間を実行します
  • 注:補間関数では、既定で欠損値として null が想定されています。 そのため、系列に補間関数を使用する場合は、make-seriesdefault=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

3 つのテーブル。1 つ目は生データを一覧表示するもの、2 つ目はサプライヤー、果物、日付の個別の組み合わせのみを含むもの、3 つ目は 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 タイムスタンプ
[ 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

make-serieskind=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 タイムスタンプ
[
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"
]