パイプ処理言語を使用した Amazon OpenSearch Service データのクエリ - Amazon OpenSearch Service

パイプ処理言語を使用した Amazon OpenSearch Service データのクエリ

パイプ処理言語 (PPL) とは、パイプ (|) 構文を使用して、Amazon OpenSearch Service に保存されたデータのクエリを行うことができるクエリ言語です。

PPL 構文は、パイプ文字 (|) で区切られているコマンドで構成されており、データは各パイプラインを左から右に流れます。例えば、HTTP 403 または 503 エラーのあるホストの数を調べ、ホストごとに集計し、影響順に並べ替える PPL 構文は、次のとおりです。

source = dashboards_sample_data_logs | where response='403' or response='503' | stats count(request) as request_count by host, response | sort -request_count

PPLには、OpenSearch または Elasticsearch 7.9 以降が必要です。詳細な手順とコマンドの説明は、「OpenSearch ドキュメント」を参照してください。

開始するには、OpenSearch Dashboards の [クエリワークベンチ] を開き、[PPL] を選択します。bulk オペレーションを使用して、いくつかのサンプルデータのインデックスを作成します。

PUT accounts/_bulk?refresh {"index":{"_id":"1"}} {"account_number":1,"balance":39225,"firstname":"Amber","lastname":"Duke","age":32,"gender":"M","address":"880 Holmes Lane","employer":"Pyrami","email":"amberduke@pyrami.com","city":"Brogan","state":"IL"} {"index":{"_id":"6"}} {"account_number":6,"balance":5686,"firstname":"Hattie","lastname":"Bond","age":36,"gender":"M","address":"671 Bristol Street","employer":"Netagy","email":"hattiebond@netagy.com","city":"Dante","state":"TN"} {"index":{"_id":"13"}} {"account_number":13,"balance":32838,"firstname":"Nanette","lastname":"Bates","age":28,"gender":"F","address":"789 Mady Street","employer":"Quility","city":"Nogal","state":"VA"} {"index":{"_id":"18"}} {"account_number":18,"balance":4180,"firstname":"Dale","lastname":"Adams","age":33,"gender":"M","address":"467 Hutchinson Court","email":"daleadams@boink.com","city":"Orick","state":"MD"}

次の例は、18 より大きい age を持つアカウントインデックス内のドキュメントの firstname および lastname フィールドを返します。

search source=accounts | where age > 18 | fields firstname, lastname
レスポンス例
ID firstname lastname
0 Amber Duke
1 Hattie Bond
2 Nanette Bates
3 Dale Adams

searchwherefieldsrenamededupstatssortevalheadtop、および rare のような読み取り専用コマンドの完全なセットを使用することができます。各コマンドの説明と例については、「コマンド」を参照してください。

PPL プラグインは、数学、三角法、日付時刻、文字列、集計、アドバンスト演算子および式を含むすべての SQL 関数をサポートします。詳細については、「関数」を参照してください。