Azure Time Series Insights Gen2 Time Series Expression 構文
概要
Time Series Expression (TSX) は、厳密な型指定を持つ文字列ベースの式言語です。 TSX は、 時系列クエリで次のエンティティを表すために使用されます。
- Assert
- 値
- 集計
フィルター式
フィルター式は、 ブール句を表すために使用されます。 次の表に、フィルターの例を示します。
Tsx | Description |
---|---|
$event.PointValue.Double = 3.14 |
true
double PointValue が に等しいイベントの場合3.14 |
$event.PointValue > 3.14 AND $event.Status.String = 'Good' |
true
PointValue が より3.14 大きく、文字列状態のイベントの場合Good |
$event.$ts > dt'2018-11-01T02:03:45Z' |
true タイム スタンプが より大きいイベントの場合 2018-11-01T02:03:45Z |
$event.PointEval.Bool = true |
true
PointValue が と等しいイベントの場合true |
値式
値式は 、数値変数とカテゴリ変数の値を示すために使用されます。 値式には、 Double 型または Long 型のプロパティ参照式を指定できます。
次に例を示します。
Tsx | Notes |
---|---|
$event.Temperature.Double |
任意の値式 (この場合 Double ) の最後のトークンは、 プロパティの Type として読み取られます。 |
$event.Temperature |
型は、1 つのトークンによってアクセスされるプロパティに対して Double であると見なされます。 |
$event['Temperature-Celsius'] |
特殊文字を持つトークンをエスケープする場合は、 と ] を使用[ します。 さらに、角かっこ内で と を使用 \ して、次の文字を \ ' エスケープします。 |
$event.Temperature.Celsius.Double |
入れ子になったプロパティにアクセスするには、 を使用 . します。 入れ子になったプロパティにアクセスする場合は、Type が 必要です。 |
$event.Temperature['Celsius-C'].Double |
入れ子になったプロパティにアクセスするときに特殊文字を持つトークンをエスケープする場合は、 と ] を使用[ します。 さらに、角かっこ内で と を使用 \ して、次の文字を \ ' エスケープします。 入れ子になったプロパティにアクセスする場合は、Type が 必要です。 |
$event['Temperature']['Celsius'].Double |
トークンの [ エスケープに および ] を使用することは、任意のトークンで許可されます。 |
数値変数の種類
値式の結果は、 Double 型または Long 型である必要があります。
集計変数の種類
値式の結果には、サポートされている任意の型を指定できます。
カテゴリ変数の種類
値式の結果には、 String 型または Long 型のみを指定できます。
集計式
集計式 は、クエリで使用される集計操作を示すために使用されます。 集計式では、間隔ごとに 1 つの値が得られます。 集計式は、数値変数と集計変数に適用できます。
集計式 - 数値変数の種類
数値変数は を参照する $value
必要があります。
サポートされている集計関数を次に示します。
集計関数 | 例 | 説明 |
---|---|---|
min |
min($value) |
間隔あたりの最小値を $value 計算します。 値を回避します null 。 補間では使用できません。 |
max |
max($value) |
間隔あたりの最大値を $value 計算します。 値を回避します null 。 補間では使用できません。 |
sum |
sum($value) |
間隔内のすべてのイベントの $value 合計を計算します。 値を回避します null 。 補間では使用できません。 |
avg |
avg($value) |
間隔内のすべてのイベントの $value 平均を計算します。 値を回避します null 。 補間では使用できません。 |
first |
first($value) |
$value 間隔内の最初に発生したイベントをイベント タイム スタンプで返します。 値 を 回避 null しません。 補間では使用できません。 |
last |
last($value) |
$value 間隔内で最後に発生したイベントをイベント タイム スタンプで返します。 値 を 回避 null しません。 補間では使用できません。 |
median |
median($value) |
$value 間隔内の中間イベントをイベント タイム スタンプで返します。 値 を 回避 null しません。 補間では使用できません。 |
stdev |
stdev($value) |
$value 間隔内のイベントの標準偏差を返します。 値を回避します null 。 補間では使用できません。 |
twsum |
twsum($value) |
$value 間隔内のイベントの時間加重合計を返します。 補間が必要です。 |
twavg |
twavg($value) |
$value 間隔内のイベントの時間加重平均を返します。 補間が必要です。 |
left |
left($value) |
指定した $value 間隔の左端にある を返します。 補間が必要です。 |
right |
right($value) |
指定した $value 間隔の右端にある を返します。 補間が必要です。 |
集計式 - 集計変数の種類
集計変数 は、イベント ペイロードの Property を参照する必要があります。
サポートされている集計関数を次に示します。
集計関数 | 例 | 説明 |
---|---|---|
count |
count() |
間隔あたりのイベント数を返します。 |
min |
min($event.Temperature.Double) |
間隔 あたりのプロパティ Temperature の最小値を計算します。 値を回避します null 。 |
max |
max($event.Temperature.Long) |
間隔 ごとのプロパティ Temperature の最大値を計算します。 値を回避します null 。 |
sum |
sum($event.Temperature.Double) |
間隔内のすべてのイベントに対する Temperature プロパティの合計を計算します。 値を回避します null 。 |
avg |
avg($event.Temperature.Long) |
間隔内のすべてのイベントに対する Temperature プロパティの平均を計算します。 値を回避します null 。 |
first |
first($event.Temperature.String) |
間隔内のすべてのイベントから、プロパティ Temperature の最初に発生する (イベント タイム スタンプによって) 値を返します。 値 を 回避 null しません。 |
last |
last($event.Temperature.String) |
間隔内のすべてのイベントから、プロパティ Temperature の最後に発生した値 (イベント タイム スタンプ別) を返します。 値 を 回避 null しません。 |
median |
median($event.Temperature.String) |
間隔内のすべてのイベントから、プロパティ Temperature の中間発生 (イベント タイム スタンプ別) の値を返します。 値 を 回避 null しません。 |
stdev |
stdev($event.Temperature.String) |
間隔ごとの 温度 プロパティの標準偏差を計算します。 値を回避します null 。 |
集計変数の種類の場合、これらの関数は集計式で組み合わせることができます。 (例: max($event.Temperature.Long) - min($event.Temperature.Long)
)。
構文
このセクションでは、フォーム式に連結される主要な構文概念とクエリ演算子について説明します。
サポートされているリテラル
注意
以下のリテラルは式を形成するために使用されます。データ型の完全な一覧については、 サポートされているデータ型 に関する記事を参照してください。
プリミティブ型 | リテラル |
---|---|
Bool |
TRUE , FALSE |
DateTime | dt'2016-10-08T03:22:55.3031599Z' |
Double |
1.23 , 1.0 |
Long |
1 , 6 |
String | 'abc' |
TimeSpan | ts'P1Y2M3DT4M5.67S' |
Null | NULL |
サポートされているオペランド型
操作 | サポートされている型 | Notes |
---|---|---|
<、>、<、> | Double、 Long、 DateTime、 TimeSpan | |
=、=、<> | Double、 Long、 String、 Bool、 DateTime、 TimeSpan、 NULL | <>は!= に相当します。 |
+, -, *, / | Double、 Long、 DateTime、 TimeSpan |
比較式 (<、><=、=、>、!=) の場合、=オペランドは NULL または同じ型にすることができます。 各述語式では、左側 (LHS) オペランドと右側 (RHS) オペランドの型が一致するように検証されます。 エラーは、LHS と RHS の種類が一致しない場合、または特定の種類で操作が許可されていない場合に発生します。
注意
ウォーム ストアでは、文字列型は null 許容ではありません。
-
NULL および空の文字列 ('') に対する String の比較は、同じように動作します。
$event.p1.String = NULL
は と$event.p1.String = ''
同じです。 - 元のイベントに空の文字列が含まれている場合でも、API は NULL 値を 返す場合があります。
将来的には、コールド ストアでも同じ動作が行われます。
String 列の NULL 値に依存せず、空の文字列と同じように扱います。
- 型チェックが適用されます。
- 任意のプロパティ型は、リテラルに
NULL
対して受け入れられます。 - LHS と RHS の種類は一致する必要があります。
- 任意のプロパティ型は、リテラルに
String 型のプロパティ p1 と p2、Double 型のプロパティ p3、および Double 型の p4.p5 として格納されている入れ子になったプロパティの例を次に示します。
Assert | 有効ですか? | メモ |
---|---|---|
$event.p1.String = 'abc' |
はい | |
$event.p1.String = $event.p2.String |
はい | |
$event.p1.String = NULL |
はい |
NULL は、任意の左側の型と一致します。 |
$event.p3.Double = 'abc' |
いいえ | 型が一致しません。 |
$event.p3.Double = $event.p1.String |
いいえ | 型が一致しません。 |
$event.p1 = 'abc' |
いいえ | 型が一致しません。 |
$event.p1 = 1 |
いいえ | 型が一致しません。 |
$event.p1 = true |
いいえ | 型が一致しません。 |
$event.p1 = NULL |
はい |
p1 は、使用される唯一のトークンです。 として解釈される $event.p1.Double = NULL |
$event['p1'] != NULL |
はい |
['p1'] は、使用される唯一のトークンです。 として解釈される $event['p1'].Double != NULL |
$event.p4.p5 = 0.0 |
いいえ | プロパティ参照構文が無効です。 比較の LHS で型を指定する必要があります。 |
$event.p4.p5.Double = 0.0 |
はい |
サポートされているスカラー関数
カテゴリ別のスカラー関数の一覧を次に示します。
変換関数
関数名 | 署名 | 例 | Notes |
---|---|---|---|
toDouble |
Double toDouble (value: String, Double, Long) |
toDouble($event.value.Long) |
引数を Double に変換します。 |
toLong |
Long toLong (value: String, Double, Long) |
toLong($event.value.Double + 1.0) |
引数を Long に変換します。 |
toString |
String toString (value: String, Double, Long) |
toString($event.value.Double) |
引数を String に変換 します。 |
算術関数
関数名 | 署名 | 例 | Notes |
---|---|---|---|
round |
Double round(value:Double) |
round($event.value.Double) |
倍精度浮動小数点数を最も近い整数に丸めます。 |
ceiling |
Double ceiling(value:Double) |
ceiling($event.value.Double) |
倍精度浮動小数点数以上の最小値を返します。 |
floor |
Double floor(value:Double) |
floor($event.value.Double) |
倍精度浮動小数点数以下の最大値を返します。 |
三角関数
関数名 | 署名 | 例 | Notes |
---|---|---|---|
cos |
Double cos(value:Double) |
cos($event.value.Double) |
指定した角度のコサインをラジアン単位で返します。 |
sin |
Double sin(value:Double) |
sin($event.value.Double) |
指定した角度のサインをラジアン単位で返します。 |
tan |
Double tan(value:Double) |
tan($event.value.Double) |
指定した角度のタンジェントをラジアン単位で返します。 |
acos |
Double acos(value:Double) |
acos($event.value.Double) |
コサインが指定した数値であるラジアン単位の角度を返します。 |
asin |
Double asin(value:Double) |
asin($event.value.Double) |
サインが指定した数値である角度をラジアン単位で返します。 |
atan |
Double atan(value:Double) |
atan($event.value.Double) |
タンジェントが指定した数値である角度をラジアン単位で返します。 |
atan2 |
Double atan2(value1:Double, value2:Double) |
atan2($event.value1.Double, $event.value2.Double) |
タンジェントが指定された 2 つの数値の商である角度をラジアンで返します。 |
対数関数
関数名 | 署名 | 例 | Notes |
---|---|---|---|
log |
Double log(value:Double) |
log($event.value.Double) |
指定した数値の自然対数を返します。 |
log2 |
Double log2(value:Double) |
log2($event.value.Double) |
指定した数の底 2 の対数を返します。 |
log10 |
Double log10(value:Double) |
log10($event.value.Double) |
指定した数の底 10 の対数を返します。 |
DateTime 関数
関数名 | 署名 | 例 | Notes |
---|---|---|---|
monthOfYear |
Long monthOfYear(value:DateTime) |
monthOfYear($event.$ts) |
指定された DateTime の数値として年の月を返します。 |
dayOfMonth |
Long dayOfMonth(value:DateTime) |
dayOfMonth($event.$ts) |
指定された DateTime の数値として月の日を返します。 |
hourOfDay |
Long hourOfDay(value:DateTime) |
hourOfDay($event.$ts) |
指定された DateTime の数値として、1 日の時間を返します。 |
utcNow |
DateTime utcNow() |
utcNow() |
現在の時刻を UTC 形式で返します。 |
文字列関数
関数名 | 署名 | 例 | Notes |
---|---|---|---|
toUpper |
String toUpper(value:String) |
toUpper($event.value.String) |
大文字に変換された入力文字列を返します。 |
toLower |
String toLower(value:String) |
toLower($event.value.String) |
小文字に変換された入力文字列を返します。 |
strLen |
Long strLen(value:String) |
strLen($event.value.String) |
文字列引数の文字数を返します。 |
strCat |
Long strCat(value1:String, value2:String) |
strCat($event.value1.String, $event.value2.String) |
指定した 2 つの入力文字列を連結します。 |
subString |
String subString(value:String, startIndex:Double, length:Double) |
subString($event.value.String, 2.0, 4.0) |
インスタンスから部分文字列を取得します。 |
trim |
String trim(value:String) |
trim($event.value.String) |
入力文字列から先頭と末尾のすべての空白文字を削除して、新しい文字列を返します。 |
indexOf |
Long indexOf(value:String, subString:String) |
indexOf($event.value.String, 'abc') |
0 個のインデックス作成に基づいて、元の文字列内で指定された文字列の最初の出現箇所を返します。 |
replace |
String replace(value:String, searchString:String, replaceString:String) |
replace($event.value.String, 'abc', 'xyz') |
検索文字列のすべての出現箇所が置換文字列に置き換えられる文字列を返します。 |
その他の関数
関数名 | 署名 | 例 | Notes |
---|---|---|---|
coalesce |
String, Long, Double, Bool coalesce (value: String, Long, Double, Bool) |
coalesce(toLong($event.value.Double), $event.value.Long) |
引数リストの最初の null 以外の値を返します。 少なくとも 2 個の引数と最大 64 個の引数を受け入れますが、すべて同じデータ型である必要があります。 |
iff |
String, Long, Double, Bool iff (predicate: bool, ifTrue: String, Long, Double, Bool, ifFalse: String, Long, Double, Bool) |
iff ($event.value.Double > 100, 'Good', 'Bad') |
述語が true (2 番目の引数を返す) または false (3 番目の引数を返す) に解決されたかどうかに応じて、2 番目または 3 番目の引数を返します。 述語はブール式である必要があり、2 番目と 3 番目の引数は同じ型である必要があります。 |
関連項目
アプリケーションの登録と Azure Active Directory プログラミング モデルの詳細については、「 開発者向け Azure Active Directory」を参照してください。
要求パラメーターと認証パラメーターの詳細については、「 認証と承認」を参照してください。
HTTP 要求と応答のテストに役立つツールは次のとおりです。
Fiddler。 この無料の Web デバッグ プロキシでは、REST 要求をインターセプトできるため、HTTP 要求と応答メッセージを診断できます。
JWT.io。 このツールを使用すると、ベアラー トークンに要求をすばやくダンプし、その内容を検証できます。
Postman。 これは、REST API をデバッグするための無料の HTTP 要求および応答テスト ツールです。
Azure Time Series Insights Gen2 の詳細については、Gen2 のドキュメントを参照してください。