

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Idiomas de consulta compatibles
<a name="optimized-log-analytics-queries"></a>

El motor optimizado admite PPL (lenguaje de procesamiento canalizado) y SQL como lenguajes de consulta. El motor optimizado ejecuta tanto PPL como SQL de forma nativa a través de su motor de ejecución vectorizado. Para obtener referencias sintácticas completas, consulte la documentación sobre [OpenSearch SQL y PPL](https://docs.opensearch.org/latest/sql-and-ppl/) en el sitio web. OpenSearch 

## Soporte PPL
<a name="optimized-log-analytics-ppl"></a>

El motor optimizado ejecuta el PPL (lenguaje de procesamiento canalizado) de forma nativa. El PPL es el lenguaje de consulta principal de la OpenSearch interfaz de usuario y lo utilizan complementos como Alerting y Anomaly Detection. Para ver la sintaxis de PPL completa, consulta la referencia de [OpenSearch PPL en el sitio web.](https://docs.opensearch.org/latest/search-plugins/sql/ppl/index/) OpenSearch 

### Comandos compatibles PPL
<a name="optimized-log-analytics-ppl-commands"></a>

El motor optimizado admite los siguientes comandos de PPL:


| Categoría | Comandos | 
| --- | --- | 
| Filtrar y proyectar | where, fields, table | 
| Order | sort, reverse | 
| Límite | head | 
| Top-N | top, rare | 
| Computación | eval | 
| Agregado | stats, eventstats, addtotals, addcoltotals | 
| Dedup | dedup | 
| Cambio de nombre | rename | 
| Texto | replace | 
| Formato | fieldformat | 
| Manejo nulo | fillnull | 
| Parse | parse, rex, grok, regex, patterns, spath | 
| Asignación de buckets | bin, chart, timechart | 
| Join | join, streamstats, lookup | 
| Combinar | append, appendcol, appendpipe, multisearch, union | 
| Operador subquery | insubconsulta, subconsulta escalar | 

### Funciones PPL compatibles
<a name="optimized-log-analytics-ppl-functions"></a>

El motor optimizado admite funciones de las siguientes familias:
+ Cadena:`upper`,`lower`,`length`, `concat``substring`,`trim`,`replace`,`reverse`,`left`,`right`, y más
+ Matemáticas:`abs`,`ceil`,`floor`,`round`,`sqrt`,`pow`, `log``exp`, funciones trigonométricas y más
+ Fecha y hora:`now`,`date`,`year`,`month`,`day`, `date_add` `datediff``date_format`, y más
+ Estado: `if``ifnull`,`nullif`,`isnull`,`coalesce`, `case`
+ Conversión de tipos:`cast`,`tostring`, `tonumber`
+ Agregado: `count``sum`,`avg`,`min`,`max`,`percentile`,`stddev_pop`,`distinct_count`, y más
+ Relevancia y texto completo:`match`,,`match_phrase`, `multi_match` `query_string`
+ JSON:`json_object`,,`json_extract`, `json_keys` `json_array`
+ Colección y matriz: `array``array_length`,`mvjoin`,`split`,`mvzip`, `mvdedup`

### El comando de búsqueda
<a name="optimized-log-analytics-ppl-search"></a>

El `search` comando es compatible parcialmente con el motor optimizado. Funciona para la coincidencia basada en texto, pero no admite comparaciones numéricas, de fecha o de campos IP.


| Característica | Status | 
| --- | --- | 
| Free-text búsqueda de términos |  compatible | 
| Búsqueda de frases |  compatible | 
| Igualdad de campos de cadenas (=,\!=) |  compatible | 
| Campo de cadena IN(...) |  compatible | 
| Operadores booleanos sobre predicados de cadena |  compatible | 
| Comparación o rango de campos numéricos | No admitido. En su lugar, use where. | 
| Comparación o rango de campos de fecha | No admitido. En su lugar, use where. | 
| Patrones comodín | No compatible | 

**sugerencia**  
Utilice el `where` comando en lugar de los `search` filtros en línea para los campos que no sean de texto. El `where` comando se ejecuta mediante el motor de análisis nativo para acelerar el proceso, mientras que `search` los filtros de los campos numéricos, de fecha o IP no muestran filas.  

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

### Comandos PPL no compatibles
<a name="optimized-log-analytics-ppl-unsupported"></a>

Los siguientes comandos PPL no son compatibles con el motor optimizado:

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

Higher-order no se admiten las funciones de matriz (`transform``mvmap``reduce``forall``exists`,,,,`filter`).

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

La siguiente consulta PPL combina la búsqueda de texto completo con la agregación en una sola sentencia:

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

**sugerencia**  
En el caso de consultas distribuidas y agrupadas entre las N principales, puede ajustar la relación entre precisión y rendimiento. Consulte [Ajuste la precisión de las consultas Top-N distribuidas](optimized-log-analytics-bp.md#optimized-log-analytics-bp-topn).

## Compatibilidad con SQL
<a name="optimized-log-analytics-sql"></a>

Puede usar SQL en el motor optimizado mediante la API REST, JDBC/ODBC los controladores y Query Workbench. Utilice SQL para herramientas de BI como Grafana, Tableau y Amazon. QuickSight Para obtener información completa sobre la sintaxis de SQL, consulte la [referencia de OpenSearch SQL](https://docs.opensearch.org/latest/search-plugins/sql/sql/index/) en el OpenSearch sitio web.

### Instrucciones SQL compatibles
<a name="optimized-log-analytics-sql-statements"></a>

El motor optimizado admite las siguientes categorías de sentencias SQL:
+ `SELECT`(incluidas expresiones`DISTINCT`, alias y literales)
+ `WHERE` (`IN`, `BETWEEN`, `AND`/`OR`, `NOT`, `IS NULL`)
+ `ORDER BY`
+ `LIMIT` y `OFFSET`
+ `GROUP BY`
+ `HAVING`
+ `CASE`
+ `LIKE` y `REGEXP`
+ `JOIN` (`INNER`, `LEFT`, `RIGHT`, `CROSS`)
+ Subconsultas (en`WHERE`, y`FROM`) `EXISTS`
+ `UNION ALL`
+ `EXPLAIN`
+ `SHOW` y `DESCRIBE`

### Funciones de SQL compatibles
<a name="optimized-log-analytics-sql-functions"></a>

El motor optimizado admite funciones de las siguientes familias:


| Familia | Funciones (representativas) | 
| --- | --- | 
| Cadena | UPPER, LOWER, LENGTH, CONCAT, SUBSTRING, TRIM, REPLACE, LEFT, RIGHT, LOCATE, REVERSE, ASCII, CONCAT\_WS, STRCMP, POSITION | 
| Matemático | ABS,CEIL,FLOOR,ROUND,,MOD,SQRT,POW,LOG,LOG2,LOG10,EXP,SIGN, TRUNCATERAND, funciones trigonométricas, CONV CRC32 | 
| Fecha y hora | NOW,,CURDATE,DATE,YEAR,,MONTH,DAY,DATE\_ADD,,DATE\_SUB, DATEDIFF TIMESTAMPDIFF DATE\_FORMAT UNIX\_TIMESTAMPCONVERT\_TZ, y más de 40 funciones de fecha y hora adicionales | 
| Condicional | IF, IFNULL, NULLIF, ISNULL | 
| Conversión de tipos | CAST(INT, DOUBLE, STRING, DATE), TYPEOF | 
| Agregado | COUNT, SUM, AVG, MIN, MAX, COUNT(DISTINCT), STDDEV\_POP, STDDEV\_SAMP, VAR\_POP, VAR\_SAMP, PERCENTILE, PERCENTILE\_APPROX | 
| Relevancia y texto completo | MATCH, MATCH\_PHRASE, MULTI\_MATCH, QUERY\_STRING, SIMPLE\_QUERY\_STRING, MATCH\_BOOL\_PREFIX, MATCH\_PHRASE\_PREFIX, WILDCARD\_QUERY | 
| Ventana | ROW\_NUMBER | 

### Funciones de SQL no compatibles
<a name="optimized-log-analytics-sql-gaps"></a>

El motor optimizado no admite las siguientes funciones de SQL:


| Característica | Solución | 
| --- | --- | 
| UNION(distintas) | En su lugar, use UNION ALL | 
| MINUS | No hay una solución alternativa disponible | 
| Agregado filtrado () FILTER (WHERE ...) | En su lugar, use SUM(CASE WHEN ... THEN ... END) | 
| RANKfunción de ventana | No hay una solución alternativa disponible | 
| DENSE\_RANKfunción de ventana | No hay una solución alternativa disponible | 

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

La siguiente consulta SQL combina la búsqueda de texto completo con la agregación para buscar y contar las entradas de registro por servicio:

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