SQL

OpenSearch SQL lets you write queries in SQL rather than the OpenSearch query domain-specific language (DSL). If you’re already familiar with SQL and don’t want to learn the query DSL, this feature is a great option.

Workbench

The easiest way to get familiar with the SQL plugin is to use Query Workbench in OpenSearch Dashboards to test various queries. To learn more, see Workbench.

OpenSearch Dashboards SQL UI plugin

REST API

To use the SQL plugin with your own applications, send requests to _plugins/_sql:

  1. POST _plugins/_sql
  2. {
  3. "query": "SELECT * FROM my-index LIMIT 50"
  4. }

Here’s how core SQL concepts map to OpenSearch:

SQLOpenSearch
TableIndex
RowDocument
ColumnField

You can query multiple indices by listing them or using wildcards:

  1. POST _plugins/_sql
  2. {
  3. "query": "SELECT * FROM my-index1,myindex2,myindex3 LIMIT 50"
  4. }
  5. POST _plugins/_sql
  6. {
  7. "query": "SELECT * FROM my-index* LIMIT 50"
  8. }

For a sample curl command, try:

  1. curl -XPOST https://localhost:9200/_plugins/_sql -u 'admin:admin' -k -H 'Content-Type: application/json' -d '{"query": "SELECT * FROM opensearch_dashboards_sample_data_flights LIMIT 10"}'

By default, queries return data in JDBC format, but you can also return data in standard OpenSearch JSON, CSV, or raw formats:

  1. POST _plugins/_sql?format=json|csv|raw
  2. {
  3. "query": "SELECT * FROM my-index LIMIT 50"
  4. }

See the rest of this guide for detailed information on request parameters, settings, supported operations, tools, and more.

Contributing

To get involved and help us improve the SQL plugin, see the development guide for instructions on setting up your development environment and building the project.