このトピックでは、Simple Log Service 向けの構造化プロセス言語 (Structured Process Language: SPL) の基本構文について説明します。
SPL 構文
SPL 文
SPL 文は、多段階のデータ処理に使用されます。これらの文はパイプライン文字 (|) で接続され、セミコロン (;) で終了します。構文は以下のとおりです:
データソース
Simple Log Service では、データソースの定義はシナリオによって異なります。詳細は以下のとおりです:
機能タイプ | Logstore インデックスフィルターからの入力 | 大文字小文字を区別するフィールド名 | 全文検索対象フィールド __line__ | ベストプラクティス |
Logtail 収集 | サポートされていません。アスタリスク ( | 区別される | サポートされていません | |
Ingest Processor | サポートされていません。アスタリスク ( | 機密 | サポートされていません | |
リアルタイム消費 | サポートされていません。アスタリスク ( | 機密 | サポートされていません | |
データ変換(新バージョン) | サポートされていません。アスタリスク ( | 機密 | サポートされていません | |
スキャンおよびクエリ | サポートされています。まずインデックスフィルターが実行され、その後、フィルター結果に対して SPL 処理が実行されます。たとえば、 | 非機密 | サポートされています |
SPL 命令式
SPL でサポートされる命令の詳細については、「SPL 命令および関数」をご参照ください。
命令式の構文
cmd -option=<option> -option ... <expression>, ... as <output>, ...パラメーター
パラメーター | 説明 |
cmd | 命令名。 |
option | 以下の 2 種類のパラメーターがサポートされています:
|
expression | 命令がデータソースに対して実行する処理ロジック。必須パラメーターです。パラメーター名は不要ですが、パラメーターの順序は命令で定義された順序と一致させる必要があります。 式の種類:
|
output | 処理結果の出力フィールド。たとえば、 |
構文記号一覧
以下の表では、SPL 構文で使用される記号について説明します。
記号 | 説明 | 例 |
* | SLS Logstore データを SPL の入力データとして使用する際のプレースホルダー。 | 状態コードに基づいてアクセスログをフィルターおよび分類し、結果を出力します。
|
. | SPL 文の先頭文字として使用される場合、SPL 構文キーワードであることを示します。 | |
| | SPL パイプライン文字。SPL 命令式を導入するために使用されます。構文は | |
; | SPL 文の文末識別子。単一文または複数ステートメントブロックの最後の文では、省略可能です。 | |
'...' | 文字列定数の引用符。 | |
"..." | フィールド名、フィールド名パターン、および引用符。 | |
-- | 1 行のコメントアウト。 | |
/*...*/ | 複数行のコメントアウト。 | |
$ | 名前付きデータセットの引用。構文は |
SPL データ型
以下の表では、SPL ログフィールドのデータ型について説明します。
型カテゴリ | 型名 | 型の説明 |
基本数値型 | BOOLEAN | ブール値型。 |
TINYINT | 8 ビット整数型。 | |
SMALLINT | 16 ビット整数型。 | |
INTEGER | 32 ビット整数型。 | |
BIGINT | 64 ビット整数型。 | |
HUGEINT | 128 ビット整数型。 | |
REAL | 32 ビット可変精度浮動小数点数型。 | |
DOUBLE | 64 ビット可変精度浮動小数点数型。 | |
TIMESTAMP | ナノ秒精度の UNIX タイムスタンプ型。 | |
DATE | 日付データ型。形式は YYYY-MM-DD です。 | |
VARCHAR | 可変長文字列データ型。 | |
VARBINARY | 可変長バイナリデータ型。 | |
構造化数値型 | ARRAY | 配列型。要素へのアクセスには たとえば、 |
MAP | 辞書型。キーは基本数値型のみ、値は任意の型を指定できます。 たとえば、 | |
JSON 型 | JSON | JSON 型。 |
SPL データ処理におけるデータ型変換の詳細については、「一般リファレンス」をご参照ください。