# Elasticsearchの機能と実践的な使い方
🔎 「検索→変換→集計」を1本のパイプで書ける。SQLライクで学習コストが低い新世代のクエリ言語、それがES|QLです。
🏷️ タイトル: ES|QL(パイプ型クエリ言語)
🔗 URL:
📘 概要
ES|QLはElasticsearchのデータを問い合わせ・集計・可視化・アラート化まで一気通貫で扱える新しいクエリ言語です。Unixのパイプのように `|` でコマンドを連結し、データを段階的に絞り込み・変換・集約していきます。JSONの集計DSLを書かずに、アドホック分析を素早く進められます。
⚙️ 機能の説明
クエリは必ずソースコマンドから始まり、処理コマンドをパイプで連結する構造です。
・`FROM` でインデックス/データストリームを指定(時系列向けの `TS` もある)
・`WHERE` で行を絞り込み
・`STATS ... BY` で集計とグルーピング
・`EVAL` で派生列を生成、`SORT` で並べ替え、`LIMIT` で件数制限
・`KEEP`/`DROP`/`RENAME` で出力列を制御
・`DISSECT`/`GROK` で非構造テキストをパース
・`LOOKUP JOIN` でマスタデータと結合、`ENRICH` でポリシー付与
コマンドや関数名は大文字小文字を区別しません(`FROM` も `from` も同じ)。
🛠️ 実践的な使い方
障害調査では、検索から集計までを次のように1本で書けます。
`FROM logs-* | WHERE status >= 500 | STATS count = COUNT(*) BY BUCKET(
@timestamp, 5m) | SORT count DESC`
Kibanaのエディタはオートコンプリート、インライン補完、Prettifyボタンによる自動整形を備え、実行後はフッターに処理ドキュメント数などの統計が出ます。同じES|QLがDiscover・ダッシュボードのパネル・アラートルール・Elastic Securityで共通に使えるのが大きな利点です。クエリ履歴やお気に入り(スター)機能で定番クエリの再利用も可能です。
💡 ユースケース
・SREのアドホックなログ分析(エラー率のサービス別・時間バケット別集計)
・ダッシュボードのES|QL可視化パネル
・セキュリティの検知ルールやアラート条件の記述
・`LOOKUP JOIN` でサービス名→チーム名のようなマスタ結合を行う運用分析
⚠️ 注意点
・フィルタなしで多数のインデックスを横断するとレスポンスが肥大化するため、`KEEP`/`DROP` で列を絞ること。
・Kibana内では `SET time_zone` ではなく `dateFormat:tz` 設定でタイムゾーンを扱う。
・自然言語からのクエリ生成はEnterpriseライセンスとコネクタ設定が必要です。
・マッピングされていないフィールド参照は既定で失敗するため注意が必要です。
#
Elasticsearch# #
ESQL#