すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:SPLとSQLのシナリオ比較

最終更新日:Dec 09, 2024

SQLに精通しているが、Simple Log Service Processing Language (SPL) に精通していない場合は、次の表に基づいてSPLステートメントを作成して、さまざまなシナリオでデータを処理できます。

シナリオ

SQL文

SPLステートメント

データフィルタリング

select * where Type='write'

| where Type='write'

フィールド処理とフィルタリング

正確モードでフィールドを検索し、フィールドの名前を変更します。

select "__tag __: node" as node, path

  1. 正確モードでフィールドを検索し、フィールドの名前を変更します。

    | project node="__tag __: node", path

  2. モードでフィールドを検索します。

    | project -wildcard "__tag __: *"

  3. 他のフィールドに影響を与えずにフィールドの名前を変更します。

    | project-rename node="__tag __: node"

  4. モードでフィールドを削除します。

    | project-away -ワイルドカード "__tag __: *"

データの標準化

(SQL関数呼び出し)

データ型と解析時間を変換します。

select 
  cast(Status as BIGINT) as Status, 
  date_parse(Time, '%Y-%m-%d %H:%i') AS Time

データ型と解析時間を変換します。

| extend Status=cast(Status as BIGINT), extend Time=date_parse(Time, '% Y-% m-% d % H:% i')

フィールド抽出

  • 正規表現ベースの抽出

    select 
      regexp_extract(protocol, '\w+')  as scheme,
      regexp_extract(protocol, '\d+')  as version
  • JSONデータ抽出

    select 
      json_extract(content, '$.0.time')  as time,
      json_extract(content, '$.0.msg')  as msg
  1. 正規表現ベースの抽出: 1回限りのマッチング

    | parse-regexpプロトコル, '(\w +)/(\d +)' as scheme, version

  2. JSONデータ抽出: 完全拡張

    | parse-json -path='$.0' content

  3. CSVデータ抽出

    | parse-csv -delim='^_^' content as ip、time、host