メインコンテンツまでスキップ
Sumo Logic Japanese

フィールドの式

Sumo クエリ言語を使用して、次のような計算済みの式に基づいてフィールドを作成できます。

| 3 + 2 as val
| "Hello, world" as welcome
| 34 % 10 as remainder

式はリテラル値、フィールド名、または concat() や pow() のように関数として機能する検索クエリ言語オペレータによって作成されます。この方法で作成されたフィールドは、各行に同じ値がある仮想列として結果に表示され、where 句をはじめとする句で使用できます。

式を使用して、数値、ブール値、または文字列値のフィールドを作成できます。

数値式

数値は、加法、減法、乗法、除法、剰余演算、単項否定の組み合わせを使用して計算できます。"+" や "/" などのオペレータは、数値リテラル、数値フィールド、数値関数として機能するオペレータ (abs() や pow() など)、またはネスト化された数値式に適用できます。数値関数の詳細については、「数式」を参照してください。

数値リテラル

クエリ言語では、数字、つまり数値リテラルとはスペースを含まない一連の桁であり、小数点が含まれる場合もあります。コンマは使用できず、先頭と末尾にゼロがある場合は無視されます。  "e+" や "e-" を使用して数字を指数と分ける指数表記も可能です。以下に簡単な数値リテラルの例を示します。

| 537 as a
| 3.14e+4 as bigpi
| -42.300 as b

先頭の "-" は単項否定であり、形式的に "+" や "/" オペレータと同じように扱われる点に注目してください。

数値リテラルは、必要に応じて「乗数接尾辞」で終了することができます。乗数接尾辞とは、共通の係数を乗じてスカラー数値を短く表現するための手段です。乗数接尾辞の例:

| 2k as twoThousand
| 1B as oneBillion
| 1.5M as onePointFiveMillion
| sizeBytes / 1Gi as sizeInGiB
| sizeInKiB * (1Ki / 1Mi) as sizeInMiB

サポートされる接尾辞のリスト、および数値に掛ける係数を以下に示します。接尾辞では大文字と小文字が区別されます。SI スタイル (1000 ベース) と ISO/IEC 80000 スタイル (1024 ベース) の両方の接尾辞がサポートされています。

接尾辞 係数 接尾辞 係数
K または k 1000 Ki 1024
M 1000000 Mi 1048576
G または B 1000000000 Gi 1073741824
T 1000000000000 Ti 1099511627776
P 1000000000000000 Pi 1125899906842624

算術オペレータ

数値の計算は通常の優先順位ルールに従い、括弧、乗法、除法が加法および減法より優先されます。優先順位が等しい場合は左から右の順で計算されます。いくつか例を挙げます。

| 537 + 435 as value
| 52 * 6 - 2  as noparen // 310, not 208
| 52 * (6 - 2) as paren  // 208, not 310
| 15 - -5 as sq
| 334 % 10 as remainder

式には、一連の演算を含めることができます。 

| 537 + 435 + 39 + 18.5 as value
| 22 - (34 % 10) * pow(2, 3) as value

日付は認識されません。文字列 2015-03-15 は日付ではなく 1,997 となります。同じく、3/15/2015 は日付ではなく 9.92556e-5 となります。クエリ言語でリテラル日付を表現する方法はありません。

剰余オペレータ "%" を使用すると、除法の余りが計算されます。たとえば、44 % 10 = 4 となります。これは、44 / 10 が 4 余り 4 であるためです。39 / 3 は 13 余り 0 であるため、39 % 3 = 0 となります。式 n % 2 = 0 はすべての偶数について true です。

pow オペレータは指数を計算するために使用します。オペレータ "^" はクエリ言語では認識されません。2 を 8 乗するには、2^8 と表記するのではなく pow(2, 8) と表記します。底が 10 の場合、指数表記を使用できます: pow(10, 3) == 1.0e+3

ブール式

ブール式はその結果が true または false になる式であり、やはりフィールドに割り当てることができます。“true” および “false” の語は予約語として機能します。ブールの “not” を意味するには "!" を使用します。例:

| true as yes
| false as locked
| !false as a      // sets a to true

比較オペレータには等号 ("=" または "==")、">"、"<"、">="、"<="、"<>" (または "!=") があり、ブール値が生成されます。例:

| x = 2 as duo // same as x == 2 as duo | y >= 49 as older | field <> 0 as nonzero | !(2 == field) as value // value is true if 'field' is not 2

x = y が代入ではなくブール式である点に注意してください。x が y に等しい場合、式は true であり、それ以外の場合は false です。文字列の比較では大文字と小文字が区別されます。y の値を変数 x に代入するには、次の構文を使用します: y as x

文字列式と引用符

(一重引用符ではなく) 二重引用符が付いた文字は文字列リテラルです。文字列の二重引用符をエスケープするにはバックスラッシュを使用します。例:

| "Don’t forget" as reminder
| "They said, \"No later than 10\"" as response
| "Hello, \"Sue,\" if that is your name" as greeting
| concat("Hello, ", "world") as welcome

文字列を結合するには concat() などの文字列関数を使用します。"+" や "." などの文字列オペレータはありません。format() オペレータは、指定された形式で文字列フィールドを作成できます。文字列の一部を抽出するには substring() を使用します。

 

  • この記事は役に立ちましたか?