Skip to main content

SQL CLI Test and Build Latest Version Documentation Chat PyPi Downloads PRs welcome!

OpenSearch SQL CLI

The SQL CLI component in OpenSearch is a stand-alone Python application and can be launched by a 'wake' word opensearchsql.

It only supports OpenSearch SQL Plugin You must have the OpenSearch SQL plugin installed to your OpenSearch instance to connect. Users can run this CLI from Unix like OS or Windows, and connect to any valid OpenSearch end-point such as Amazon OpenSearch Service.

Features

  • Multi-line input
  • Autocomplete for SQL syntax and index names
  • Syntax highlighting
  • Formatted output:
  • Tabular format
  • Field names with color
  • Enabled horizontal display (by default) and vertical display when output is too wide for your terminal, for better visualization
  • Pagination for large output
  • Connect to OpenSearch with/without security enabled on either OpenSearch or Amazon OpenSearch Service domains.
  • Supports loading configuration files
  • Supports all SQL plugin queries

Version

Unlike plugins which use 4-digit version number. SQl-CLI uses x.x.x as version number same as other python packages in OpenSearch family. As a client for OpenSearch SQL, it has independent release. SQL-CLI should be compatible to all OpenSearch SQL versions. However since the codebase is in a monorepo, so we'll cut and name sql-cli release branch and tags differently. E.g.

release branch: sql-cli-1.0
release tag: sql-cli-v1.0.0 

Install

Launch your local OpenSearch instance and make sure you have the OpenSearch SQL plugin installed.

To install the SQL CLI:

  1. We suggest you install and activate a python3 virtual environment to avoid changing your local environment:

    pip install virtualenv
    virtualenv venv
    cd venv
    source ./bin/activate
    
  2. Install the CLI:

    pip3 install opensearchsql
    

    The SQL CLI only works with Python 3, since Python 2 is no longer maintained since 01/01/2020. See https://pythonclock.org/

  3. To launch the CLI, run:

    opensearchsql https://localhost:9200 --username admin --password admin
    

    By default, the opensearchsql command connects to http://localhost:9200.

Configure

When you first launch the SQL CLI, a configuration file is automatically created at ~/.config/opensearchsql-cli/config (for MacOS and Linux), the configuration is auto-loaded thereafter.

You can also configure the following connection properties:

  • endpoint: You do not need to specify an option, anything that follows the launch command opensearchsql is considered as the endpoint. If you do not provide an endpoint, by default, the SQL CLI connects to http://localhost:9200.
  • -u/-w: Supports username and password for HTTP basic authentication, such as:
  • --aws-auth: Turns on AWS sigV4 authentication to connect to an Amazon Elasticsearch Service endpoint. Use with the AWS CLI (aws configure) to retrieve the local AWS configuration to authenticate and connect.

For a list of all available configurations, see clirc.

Using the CLI

  1. Save the sample accounts test data file.

  2. Index the sample data.

    curl -H "Content-Type: application/x-ndjson" -POST https://localhost:9200/data/_bulk -u admin:admin --insecure --data-binary "@accounts.json"
    
  3. Run a simple SQL command in OpenSearch SQL CLI:

    SELECT * FROM accounts;
    

    By default, you see a maximum output of 200 rows. To show more results, add a LIMIT clause with the desired value.

The CLI supports all types of query that OpenSearch SQL supports. Refer to OpenSearch SQL basic usage documentation.

Query options

Run single query from command line with options

  • --help: help page for options
  • -q: follow by a single query
  • -f: support jdbc/raw format output
  • -v: display data vertically
  • -e: translate sql to DSL

CLI Options

  • -l: Query language option. Available options are [sql, ppl]. By default it's using sql.
  • -p: always use pager to display output
  • --clirc: provide path of config file to load

Code of Conduct

This project has adopted an Open Source Code of Conduct.

Security issue notifications

If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our vulnerability reporting page. Please do not create a public GitHub issue for security bugs you report.

Licensing

See the LICENSE file for our project's licensing. We will ask you to confirm the licensing of your contribution.

Copyright

Copyright OpenSearch Contributors. See NOTICE for details.

Metadata

Release files for opensearchsql 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for opensearchsql 1.0.0
File Size Uploaded
opensearchsql-1.0.0.tar.gz 21.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for opensearchsql 1.0.0
File Interpreter ABI Platform
opensearchsql-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 45.0 kB

Release files / opensearchsql-1.0.0.tar.gz

Download URL opensearchsql-1.0.0.tar.gz
Size 21.8 kB
Tags Source
SHA-256 checksum
How to use checksums
704913ab56d6796e81f8814f00fff4d667f30a5c17280f8e347dc38ebea0b5e7
BLAKE2b-256 checksum
How to use checksums
2dcaefbdb9bc531b9281f9a5813130383c87aeadcd996bdb900a18707a6b0e0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

Release files / opensearchsql-1.0.0-py3-none-any.whl

Download URL opensearchsql-1.0.0-py3-none-any.whl
Size 23.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aab536ee9ebea55f888f761374c8cdcafb2a0f1b28ee888ab119ce934cede456
BLAKE2b-256 checksum
How to use checksums
ca316b46afcd52f73572ba099085f3acc831e70749dfe85554b2f88e222bf215
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page