75 lines
2.0 KiB
Markdown
75 lines
2.0 KiB
Markdown
|
---
|
|||
|
layout: default
|
|||
|
title: SQL
|
|||
|
nav_order: 38
|
|||
|
has_children: true
|
|||
|
has_toc: false
|
|||
|
---
|
|||
|
|
|||
|
# SQL
|
|||
|
|
|||
|
OpenSearch SQL lets you write queries in SQL rather than the [OpenSearch query domain-specific language (DSL)](../opensearch/full-text). 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 **SQL Workbench** in OpenSearch Dashboards to test various queries. To learn more, see [Workbench](workbench/).
|
|||
|
|
|||
|
![OpenSearch Dashboards SQL UI plugin](../images/sql.png)
|
|||
|
|
|||
|
|
|||
|
## REST API
|
|||
|
|
|||
|
To use the SQL plugin with your own applications, send requests to `_opensearch/_sql`:
|
|||
|
|
|||
|
```json
|
|||
|
POST _opensearch/_sql
|
|||
|
{
|
|||
|
"query": "SELECT * FROM my-index LIMIT 50"
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Here’s how core SQL concepts map to OpenSearch:
|
|||
|
|
|||
|
SQL | OpenSearch
|
|||
|
:--- | :---
|
|||
|
Table | Index
|
|||
|
Row | Document
|
|||
|
Column | Field
|
|||
|
|
|||
|
You can query multiple indices by listing them or using wildcards:
|
|||
|
|
|||
|
```json
|
|||
|
POST _opensearch/_sql
|
|||
|
{
|
|||
|
"query": "SELECT * FROM my-index1,myindex2,myindex3 LIMIT 50"
|
|||
|
}
|
|||
|
|
|||
|
POST _opensearch/_sql
|
|||
|
{
|
|||
|
"query": "SELECT * FROM my-index* LIMIT 50"
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
For a sample [curl](https://curl.haxx.se/) command, try:
|
|||
|
|
|||
|
```bash
|
|||
|
curl -XPOST https://localhost:9200/_opensearch/_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:
|
|||
|
|
|||
|
```json
|
|||
|
POST _opensearch/_sql?format=json|csv|raw
|
|||
|
{
|
|||
|
"query": "SELECT * FROM my-index LIMIT 50"
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
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](https://github.com/opensearch-project/sql/blob/master/docs/developing.rst) for instructions on setting up your development environment and building the project.
|