

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# サポートされているクエリ言語
<a name="optimized-log-analytics-queries"></a>

最適化エンジンは、PPL (パイプ処理言語) と SQL をクエリ言語としてサポートしています。最適化エンジンは、ベクトル化された実行エンジンを通じて PPL と SQL の両方をネイティブに実行します。構文の完全なリファレンスについては、[OpenSearch ウェブサイトの OpenSearch SQL および PPL ドキュメント](https://docs.opensearch.org/latest/sql-and-ppl/)を参照してください。 OpenSearch 

## PPL サポート
<a name="optimized-log-analytics-ppl"></a>

最適化エンジンは PPL (パイプ処理言語) をネイティブに実行します。PPL は OpenSearch UI のプライマリクエリ言語であり、アラートや異常検出などのプラグインで使用されます。完全な PPL 構文については、[OpenSearch ウェブサイトの OpenSearch PPL リファレンス](https://docs.opensearch.org/latest/search-plugins/sql/ppl/index/)を参照してください。 OpenSearch 

### サポートされている PPL コマンド
<a name="optimized-log-analytics-ppl-commands"></a>

最適化エンジンでは、次の PPL コマンドがサポートされています。


| Category | コマンド | 
| --- | --- | 
| フィルタとプロジェクト | where, fields, table | 
| Order | sort, reverse | 
| 制限 | head | 
| トップ N | top, rare | 
| コンピューティング | eval | 
| 集計 | stats, eventstats, addtotals, addcoltotals | 
| 重複排除 | dedup | 
| 名前を変更 | rename | 
| テキスト | replace | 
| 形式 | fieldformat | 
| Null 処理 | fillnull | 
| Parse | parse, rex, grok, regex, patterns, spath | 
| バケット化 | bin, chart, timechart | 
| 結合 | join, streamstats, lookup | 
| 結合 | append, appendcol, appendpipe, multisearch, union | 
| サブクエリ | in サブクエリ、スカラーサブクエリ | 

### サポートされている PPL 関数
<a name="optimized-log-analytics-ppl-functions"></a>

最適化エンジンは、次のファミリーの関数をサポートします。
+ 文字列: `upper`、`lower`、、`length`、`concat`、`substring`、`trim`、`replace`、`reverse``left``right`、 など
+ 数学: `abs`、`ceil`、`floor`、、`round``sqrt`、`pow``log``exp`、、三角関数など
+ 日時: `now`、`date`、、`year`、`month`、`day`、`date_format`、 `date_add` `datediff`など
+ 条件: `if`、`ifnull`、`nullif`、`isnull`、`coalesce`、 `case`
+ 型変換: `cast`、`tostring`、 `tonumber`
+ 集計: `count`、`sum`、、`avg`、`min`、`max`、`percentile``stddev_pop``distinct_count`、 など
+ 関連性と全文: `match`、`match_phrase`、`multi_match`、 `query_string`
+ JSON: `json_object`、`json_extract`、`json_keys`、 `json_array`
+ コレクションと配列: `array`、`array_length`、、`mvjoin``split`、`mvzip`、 `mvdedup`

### 検索コマンド
<a name="optimized-log-analytics-ppl-search"></a>

`search` コマンドは、最適化されたエンジンで部分的にサポートされています。テキストベースのマッチングでは機能しますが、数値、日付、または IP フィールドの比較はサポートされていません。


| 機能 | ステータス | 
| --- | --- | 
| フリーテキスト用語検索 | サポート | 
| フレーズ検索 | サポート | 
| 文字列フィールドの等価性 (=、\!=) | サポート | 
| 文字列フィールド IN(...) | サポート | 
| 文字列述語に対するブール演算子 | サポート | 
| 数値フィールドの比較または範囲 | サポート外。代わりに where を使用します。 | 
| 日付フィールドの比較または範囲 | サポート外。代わりに where を使用します。 | 
| ワイルドカードパターン | サポートされていません | 

**ヒント**  
テキスト以外のフィールドにはインライン`search`フィルターの代わりに `where` コマンドを使用します。`where` コマンドは、アクセラレーションのためにネイティブ分析エンジンを介して実行され、数値、日付、または IP フィールドの`search`フィルターはゼロ行を返します。  

```
// Instead of: search source=logs Age > 50
// Use:
search source=logs | where Age > 50
```

### サポートされていない PPL コマンド
<a name="optimized-log-analytics-ppl-unsupported"></a>

以下の PPL コマンドは、 最適化エンジンではサポートされていません。

`convert`, `expand`, `flatten`, `mvexpand`, `mvcombine`, `nomv`, `graphlookup`, `trendline`, `describe`, `explain`

高次配列関数 (`transform`、`mvmap`、、`reduce`、`forall``exists`、`filter`) はサポートされていません。

### 例
<a name="optimized-log-analytics-ppl-example"></a>

次の PPL クエリは、フルテキスト検索と集約を 1 つのステートメントで組み合わせます。

```
search source=logs "connection refused"
| where status_code = 503
| stats count() by host, status_code
| sort - count
```

**ヒント**  
分散グループ化されたトップ N クエリでは、精度とパフォーマンスのトレードオフを調整できます。「[分散トップ N クエリの精度を調整する](optimized-log-analytics-bp.md#optimized-log-analytics-bp-topn)」を参照してください。

## SQL のサポート
<a name="optimized-log-analytics-sql"></a>

最適化されたエンジンで SQL を使用するには、REST API、JDBC/ODBC ドライバー、Query Workbench を使用します。Grafana、Tableau、Amazon QuickSight などの BI ツールに SQL を使用します。SQL 構文の詳細については、[OpenSearch ウェブサイトの OpenSearch SQL リファレンス](https://docs.opensearch.org/latest/search-plugins/sql/sql/index/)を参照してください。 OpenSearch 

### サポートされている SQL ステートメント
<a name="optimized-log-analytics-sql-statements"></a>

最適化エンジンは、次の SQL ステートメントカテゴリをサポートしています。
+ `SELECT` (式、`DISTINCT`、エイリアス、リテラルを含む)
+ `WHERE` (`IN`, `BETWEEN`, `AND`/`OR`, `NOT`, `IS NULL`)
+ `ORDER BY`
+ `LIMIT` および `OFFSET`
+ `GROUP BY`
+ `HAVING`
+ `CASE`
+ `LIKE` および `REGEXP`
+ `JOIN` (`INNER`, `LEFT`, `RIGHT`, `CROSS`)
+ サブクエリ (`WHERE`、`FROM`、および 内`EXISTS`)
+ `UNION ALL`
+ `EXPLAIN`
+ `SHOW` および `DESCRIBE`

### サポートされている SQL 関数
<a name="optimized-log-analytics-sql-functions"></a>

最適化エンジンは、次のファミリーの関数をサポートします。


| ファミリー | 関数 (代表者) | 
| --- | --- | 
| String | UPPER, LOWER, LENGTH, CONCAT, SUBSTRING, TRIM, REPLACE, LEFT, RIGHT, LOCATE, REVERSE, ASCII, CONCAT\_WS, STRCMP, POSITION | 
| 数値演算 | ABS、CEIL、FLOOR、ROUND、、MOD、SQRT、POW、LOG、LOG2、LOG10、EXP、SIGN、TRUNCATERAND、、三角関数CONV、、 CRC32 | 
| 日付および時間 | NOW、CURDATE、DATE、YEAR、、MONTH、DAY、DATE\_ADD、DATE\_SUB、DATEDIFF、TIMESTAMPDIFF、、CONVERT\_TZ、、および DATE\_FORMAT UNIX\_TIMESTAMP40 以上の追加の日時関数 | 
| 条件付き | IF, IFNULL, NULLIF, ISNULL | 
| 型変換 | CAST (INT、DOUBLE、STRING、DATE)、 TYPEOF | 
| 集計 | COUNT, SUM, AVG, MIN, MAX, COUNT(DISTINCT), STDDEV\_POP, STDDEV\_SAMP, VAR\_POP, VAR\_SAMP, PERCENTILE, PERCENTILE\_APPROX | 
| 関連性と全文 | MATCH, MATCH\_PHRASE, MULTI\_MATCH, QUERY\_STRING, SIMPLE\_QUERY\_STRING, MATCH\_BOOL\_PREFIX, MATCH\_PHRASE\_PREFIX, WILDCARD\_QUERY | 
| Window | ROW\_NUMBER | 

### サポートされていない SQL 機能
<a name="optimized-log-analytics-sql-gaps"></a>

Optimized エンジンでは、次の SQL 機能はサポートされていません。


| 機能 | 回避方法 | 
| --- | --- | 
| UNION (個別) | 代わりに UNION ALL を使用 | 
| MINUS | 利用可能な回避策がない | 
| フィルタリングされた集計 (FILTER (WHERE ...)) | 代わりに SUM(CASE WHEN ... THEN ... END) を使用 | 
| RANK ウィンドウ関数 | 利用可能な回避策がない | 
| DENSE\_RANK ウィンドウ関数 | 利用可能な回避策がない | 

### 例
<a name="optimized-log-analytics-sql-example"></a>

次の SQL クエリは、フルテキスト検索と集計を組み合わせて、サービス別にログエントリを検索およびカウントします。

```
SELECT service, region, COUNT(*) AS hits
FROM logs
WHERE MATCH(body, 'connection timeout')
GROUP BY service, region
ORDER BY hits DESC
```