Repository files navigation

SQL CLI Test and BuildLatest VersionDocumentationChatPyPi DownloadsPRs welcome!

OpenSearch SQL CLI

Interactive command-line interface (CLI) for executing PPL (Piped Processing Language) and SQL queries against OpenSearch clusters. Supports secure and insecure endpoints, AWS SigV4 authentication, autocomplete, syntax highlighting, configurable output formats (Table, JSON, CSV), and saved query history. Easily toggle language modes, SQL plugin versions, and vertical display formatting - all from a single terminal session.

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

Query Compatibility Testing

Users can test their existing queries against newer OpenSearch SQL plug-in versions before upgrading their OpenSearch clusters.

For example, user is currently using version 2.19 may want to validate query compatibility with version 3.1 first.

By using this CLI tool, they can:

  • Load and run SQL 3.1 logic locally, without upgrading their OpenSearch cluster.
  • Verify that their current queries execute as expected under the new SQL engine.
  • Avoid potential breaking changes and reduce the need for rollback in production.

This CLI acts as a safe testing environment, allowing smooth transitions between versions with confidence.

SQL CLI

Test and buildSQL CLI CI

Features

  • Autocomplete for SQL and PPL
  • Syntax highlighting
  • Formatted output
    • Table
    • JSON
    • CSV
  • Field names displayed with color
  • Horizontal display for table format
    • Vertical display automatically used when output is too wide
    • Toggle vertical mode on/off with -v
  • Connect to OpenSearch
    • Works with or without OpenSearch security enabled
    • Supports Amazon OpenSearch Service domains
  • Query operations
    • Execute queries
    • Explain plans
    • Save and load queries
  • SQL plugin version selection
  • Command history
    • src/main/python/opensearchsql_cli/.cli_history
  • Configuration file
    • src/main/python/opensearchsql_cli/config/config_file.yaml
  • SQL plug-in connection log
    • src/main/java/sql_library.log
  • Gradle log
    • build.log

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 

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

Startup Commands

Defaults: if no arguments provided

  • Language: PPL
  • Endpoint: http://localhost:9200
  • Output Format: Table
  • SQL Plugin Version: 3.1.0.0

If not specify protocol or port number

  • The default protocol is HTTP with port number 9200.
  • If using HTTPS without specifying a port, port 443 is used by default.
OptionsDescription
-e, --endpoint<host:port>Set the OpenSearch endpoint (e.g., protocol://domain:port)
-u, --user<username:password>Provide credentials for secure clusters
-k, --insecureIgnore SSL certificate verification (use with https protocol)
-l, --language<language>Choose query language: ppl or sql
-f, --format<format>Set output format: table, json, or csv
-v, --version<version>Set OpenSearch SQL plugin version (e.g., 3.1, 2.19)
--rebuildRebuild or update the corresponding JAR file
-c, --configShow current configuration values
--helpShow help message and usage examples

Example Usages

# Start with all defaults
opensearchsql
# Use secure endpoint with credentials
opensearchsql -e https://localhost:9200 -u admin:password -k
# Use AWS SigV4 connection
opensearchsql --aws-auth amazon.com
# Use SQL and JSON output
opensearchsql -l sql -f json
# Load specific plugin version
opensearchsql -v 2.19

Interactive Mode Commands

Current Settings Displayed on Start

  • SQL Version: v3.1.0.0
  • Language: PPL or SQL
  • Format: TABLE, JSON, or CSV
OptionsDescription
<query>Execute a query
-l <type>Change language: PPL, SQL
-f <type>Change output format: JSON, TABLE, or CSV
-vToggle vertical table display mode
-s --save <name>Save the latest query result with a given name
-s --load <name>Load and display a saved query result
-s --remove <name>Remove a saved query by name
-s --listList all saved query names
helpShow this help message
exit, quit, qExit the interactive mode

Version Switching

To use a different OpenSearch SQL plug-in version, restart the CLI with

opensearchsql -v <version number>

Configure

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

You can also configure the following connection properties:

Connection Settings

KeyDescriptionExampleDefault
endpointOpenSearch URL (http://localhost:9200, https://localhost:9200, or AWS SigV4 endpoint)localhost:9200localhost:9200
usernameUsername for HTTPS authentication (use "" if not set)"admin"""
passwordPassword for HTTPS authentication (use "" if not set)"admin"""
insecureSkip certificate validation (-k flag)true / falsefalse
aws_authUse AWS SigV4 authenticationtrue / falsefalse

⚠️Security Warning: Passwords stored in this file are not encrypted. Consider using -u username:password instead for sensitive environments.

Query Settings

KeyDescriptionOptionsDefault
languageQuery languageppl, sqlppl
formatOutput formattable, json, csvtable
verticalUse vertical table display modetrue / falsefalse
versionSQL plugin version (as a string)"2.19"""

SQL Plugin Settings

KeyDescriptionDefault
QUERY_SIZE_LIMITMaximum number of rows returned per query200
FIELD_TYPE_TOLERANCETolerate field type mismatchestrue
CALCITE_ENGINE_ENABLEDEnable the Calcite SQL enginetrue
CALCITE_FALLBACK_ALLOWEDFallback to legacy engine if Calcite failstrue
CALCITE_PUSHDOWN_ENABLEDEnable pushdown optimization in Calcitetrue
CALCITE_PUSHDOWN_ROWCOUNT_ESTIMATION_FACTORRow count estimation factor for pushdown1.0
SQL_CURSOR_KEEP_ALIVECursor keep-alive time in minutes1

Note: PPL Calcite result is limited by QUERY_SIZE_LIMIT number

For a list of all available configurations, see config.yaml.

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 password > --insecure --data-binary "@accounts.json"
    
  3. Run a simple SQL/PPL command in OpenSearch SQL CLI:

    # PPL
    source=accounts
    # SQLSELECT*FROM accounts

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

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.

About

The SQL CLI component in OpenSearch is a stand-alone Python application for query

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

SQL CLI Test and BuildLatest VersionDocumentationChatPyPi DownloadsPRs welcome!

OpenSearch SQL CLI

Interactive command-line interface (CLI) for executing PPL (Piped Processing Language) and SQL queries against OpenSearch clusters. Supports secure and insecure endpoints, AWS SigV4 authentication, autocomplete, syntax highlighting, configurable output formats (Table, JSON, CSV), and saved query history. Easily toggle language modes, SQL plugin versions, and vertical display formatting - all from a single terminal session.

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

Query Compatibility Testing

Users can test their existing queries against newer OpenSearch SQL plug-in versions before upgrading their OpenSearch clusters.

For example, user is currently using version 2.19 may want to validate query compatibility with version 3.1 first.

By using this CLI tool, they can:

  • Load and run SQL 3.1 logic locally, without upgrading their OpenSearch cluster.
  • Verify that their current queries execute as expected under the new SQL engine.
  • Avoid potential breaking changes and reduce the need for rollback in production.

This CLI acts as a safe testing environment, allowing smooth transitions between versions with confidence.

SQL CLI

Test and buildSQL CLI CI

Features

  • Autocomplete for SQL and PPL
  • Syntax highlighting
  • Formatted output
    • Table
    • JSON
    • CSV
  • Field names displayed with color
  • Horizontal display for table format
    • Vertical display automatically used when output is too wide
    • Toggle vertical mode on/off with -v
  • Connect to OpenSearch
    • Works with or without OpenSearch security enabled
    • Supports Amazon OpenSearch Service domains
  • Query operations
    • Execute queries
    • Explain plans
    • Save and load queries
  • SQL plugin version selection
  • Command history
    • src/main/python/opensearchsql_cli/.cli_history
  • Configuration file
    • src/main/python/opensearchsql_cli/config/config_file.yaml
  • SQL plug-in connection log
    • src/main/java/sql_library.log
  • Gradle log
    • build.log

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 

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

Startup Commands

Defaults: if no arguments provided

  • Language: PPL
  • Endpoint: http://localhost:9200
  • Output Format: Table
  • SQL Plugin Version: 3.1.0.0

If not specify protocol or port number

  • The default protocol is HTTP with port number 9200.
  • If using HTTPS without specifying a port, port 443 is used by default.
OptionsDescription
-e, --endpoint<host:port>Set the OpenSearch endpoint (e.g., protocol://domain:port)
-u, --user<username:password>Provide credentials for secure clusters
-k, --insecureIgnore SSL certificate verification (use with https protocol)
-l, --language<language>Choose query language: ppl or sql
-f, --format<format>Set output format: table, json, or csv
-v, --version<version>Set OpenSearch SQL plugin version (e.g., 3.1, 2.19)
--rebuildRebuild or update the corresponding JAR file
-c, --configShow current configuration values
--helpShow help message and usage examples

Example Usages

# Start with all defaults
opensearchsql
# Use secure endpoint with credentials
opensearchsql -e https://localhost:9200 -u admin:password -k
# Use AWS SigV4 connection
opensearchsql --aws-auth amazon.com
# Use SQL and JSON output
opensearchsql -l sql -f json
# Load specific plugin version
opensearchsql -v 2.19

Interactive Mode Commands

Current Settings Displayed on Start

  • SQL Version: v3.1.0.0
  • Language: PPL or SQL
  • Format: TABLE, JSON, or CSV
OptionsDescription
<query>Execute a query
-l <type>Change language: PPL, SQL
-f <type>Change output format: JSON, TABLE, or CSV
-vToggle vertical table display mode
-s --save <name>Save the latest query result with a given name
-s --load <name>Load and display a saved query result
-s --remove <name>Remove a saved query by name
-s --listList all saved query names
helpShow this help message
exit, quit, qExit the interactive mode

Version Switching

To use a different OpenSearch SQL plug-in version, restart the CLI with

opensearchsql -v <version number>

Configure

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

You can also configure the following connection properties:

Connection Settings

KeyDescriptionExampleDefault
endpointOpenSearch URL (http://localhost:9200, https://localhost:9200, or AWS SigV4 endpoint)localhost:9200localhost:9200
usernameUsername for HTTPS authentication (use "" if not set)"admin"""
passwordPassword for HTTPS authentication (use "" if not set)"admin"""
insecureSkip certificate validation (-k flag)true / falsefalse
aws_authUse AWS SigV4 authenticationtrue / falsefalse

⚠️Security Warning: Passwords stored in this file are not encrypted. Consider using -u username:password instead for sensitive environments.

Query Settings

KeyDescriptionOptionsDefault
languageQuery languageppl, sqlppl
formatOutput formattable, json, csvtable
verticalUse vertical table display modetrue / falsefalse
versionSQL plugin version (as a string)"2.19"""

SQL Plugin Settings

KeyDescriptionDefault
QUERY_SIZE_LIMITMaximum number of rows returned per query200
FIELD_TYPE_TOLERANCETolerate field type mismatchestrue
CALCITE_ENGINE_ENABLEDEnable the Calcite SQL enginetrue
CALCITE_FALLBACK_ALLOWEDFallback to legacy engine if Calcite failstrue
CALCITE_PUSHDOWN_ENABLEDEnable pushdown optimization in Calcitetrue
CALCITE_PUSHDOWN_ROWCOUNT_ESTIMATION_FACTORRow count estimation factor for pushdown1.0
SQL_CURSOR_KEEP_ALIVECursor keep-alive time in minutes1

Note: PPL Calcite result is limited by QUERY_SIZE_LIMIT number

For a list of all available configurations, see config.yaml.

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 password > --insecure --data-binary "@accounts.json"
    
  3. Run a simple SQL/PPL command in OpenSearch SQL CLI:

    # PPL
    source=accounts
    # SQLSELECT*FROM accounts

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

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.

About

The SQL CLI component in OpenSearch is a stand-alone Python application for query

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SQL CLI Test and BuildLatest VersionDocumentationChatPyPi DownloadsPRs welcome!

OpenSearch SQL CLI

Interactive command-line interface (CLI) for executing PPL (Piped Processing Language) and SQL queries against OpenSearch clusters. Supports secure and insecure endpoints, AWS SigV4 authentication, autocomplete, syntax highlighting, configurable output formats (Table, JSON, CSV), and saved query history. Easily toggle language modes, SQL plugin versions, and vertical display formatting - all from a single terminal session.

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

Query Compatibility Testing

Users can test their existing queries against newer OpenSearch SQL plug-in versions before upgrading their OpenSearch clusters.

For example, user is currently using version 2.19 may want to validate query compatibility with version 3.1 first.

By using this CLI tool, they can:

  • Load and run SQL 3.1 logic locally, without upgrading their OpenSearch cluster.
  • Verify that their current queries execute as expected under the new SQL engine.
  • Avoid potential breaking changes and reduce the need for rollback in production.

This CLI acts as a safe testing environment, allowing smooth transitions between versions with confidence.

SQL CLI

Test and buildSQL CLI CI

Features

  • Autocomplete for SQL and PPL
  • Syntax highlighting
  • Formatted output
    • Table
    • JSON
    • CSV
  • Field names displayed with color
  • Horizontal display for table format
    • Vertical display automatically used when output is too wide
    • Toggle vertical mode on/off with -v
  • Connect to OpenSearch
    • Works with or without OpenSearch security enabled
    • Supports Amazon OpenSearch Service domains
  • Query operations
    • Execute queries
    • Explain plans
    • Save and load queries
  • SQL plugin version selection
  • Command history
    • src/main/python/opensearchsql_cli/.cli_history
  • Configuration file
    • src/main/python/opensearchsql_cli/config/config_file.yaml
  • SQL plug-in connection log
    • src/main/java/sql_library.log
  • Gradle log
    • build.log

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 

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

Startup Commands

Defaults: if no arguments provided

  • Language: PPL
  • Endpoint: http://localhost:9200
  • Output Format: Table
  • SQL Plugin Version: 3.1.0.0

If not specify protocol or port number

  • The default protocol is HTTP with port number 9200.
  • If using HTTPS without specifying a port, port 443 is used by default.
OptionsDescription
-e, --endpoint<host:port>Set the OpenSearch endpoint (e.g., protocol://domain:port)
-u, --user<username:password>Provide credentials for secure clusters
-k, --insecureIgnore SSL certificate verification (use with https protocol)
-l, --language<language>Choose query language: ppl or sql
-f, --format<format>Set output format: table, json, or csv
-v, --version<version>Set OpenSearch SQL plugin version (e.g., 3.1, 2.19)
--rebuildRebuild or update the corresponding JAR file
-c, --configShow current configuration values
--helpShow help message and usage examples

Example Usages

# Start with all defaults
opensearchsql
# Use secure endpoint with credentials
opensearchsql -e https://localhost:9200 -u admin:password -k
# Use AWS SigV4 connection
opensearchsql --aws-auth amazon.com
# Use SQL and JSON output
opensearchsql -l sql -f json
# Load specific plugin version
opensearchsql -v 2.19

Interactive Mode Commands

Current Settings Displayed on Start

  • SQL Version: v3.1.0.0
  • Language: PPL or SQL
  • Format: TABLE, JSON, or CSV
OptionsDescription
<query>Execute a query
-l <type>Change language: PPL, SQL
-f <type>Change output format: JSON, TABLE, or CSV
-vToggle vertical table display mode
-s --save <name>Save the latest query result with a given name
-s --load <name>Load and display a saved query result
-s --remove <name>Remove a saved query by name
-s --listList all saved query names
helpShow this help message
exit, quit, qExit the interactive mode

Version Switching

To use a different OpenSearch SQL plug-in version, restart the CLI with

opensearchsql -v <version number>

Configure

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

You can also configure the following connection properties:

Connection Settings

KeyDescriptionExampleDefault
endpointOpenSearch URL (http://localhost:9200, https://localhost:9200, or AWS SigV4 endpoint)localhost:9200localhost:9200
usernameUsername for HTTPS authentication (use "" if not set)"admin"""
passwordPassword for HTTPS authentication (use "" if not set)"admin"""
insecureSkip certificate validation (-k flag)true / falsefalse
aws_authUse AWS SigV4 authenticationtrue / falsefalse

⚠️Security Warning: Passwords stored in this file are not encrypted. Consider using -u username:password instead for sensitive environments.

Query Settings

KeyDescriptionOptionsDefault
languageQuery languageppl, sqlppl
formatOutput formattable, json, csvtable
verticalUse vertical table display modetrue / falsefalse
versionSQL plugin version (as a string)"2.19"""

SQL Plugin Settings

KeyDescriptionDefault
QUERY_SIZE_LIMITMaximum number of rows returned per query200
FIELD_TYPE_TOLERANCETolerate field type mismatchestrue
CALCITE_ENGINE_ENABLEDEnable the Calcite SQL enginetrue
CALCITE_FALLBACK_ALLOWEDFallback to legacy engine if Calcite failstrue
CALCITE_PUSHDOWN_ENABLEDEnable pushdown optimization in Calcitetrue
CALCITE_PUSHDOWN_ROWCOUNT_ESTIMATION_FACTORRow count estimation factor for pushdown1.0
SQL_CURSOR_KEEP_ALIVECursor keep-alive time in minutes1

Note: PPL Calcite result is limited by QUERY_SIZE_LIMIT number

For a list of all available configurations, see config.yaml.

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 password > --insecure --data-binary "@accounts.json"
    
  3. Run a simple SQL/PPL command in OpenSearch SQL CLI:

    # PPL
    source=accounts
    # SQLSELECT*FROM accounts

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

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.

About

The SQL CLI component in OpenSearch is a stand-alone Python application for query

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SQL CLI Test and BuildLatest VersionDocumentationChatPyPi DownloadsPRs welcome!

OpenSearch SQL CLI

Interactive command-line interface (CLI) for executing PPL (Piped Processing Language) and SQL queries against OpenSearch clusters. Supports secure and insecure endpoints, AWS SigV4 authentication, autocomplete, syntax highlighting, configurable output formats (Table, JSON, CSV), and saved query history. Easily toggle language modes, SQL plugin versions, and vertical display formatting - all from a single terminal session.

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

Query Compatibility Testing

Users can test their existing queries against newer OpenSearch SQL plug-in versions before upgrading their OpenSearch clusters.

For example, user is currently using version 2.19 may want to validate query compatibility with version 3.1 first.

By using this CLI tool, they can:

  • Load and run SQL 3.1 logic locally, without upgrading their OpenSearch cluster.
  • Verify that their current queries execute as expected under the new SQL engine.
  • Avoid potential breaking changes and reduce the need for rollback in production.

This CLI acts as a safe testing environment, allowing smooth transitions between versions with confidence.

SQL CLI

Test and buildSQL CLI CI

Features

  • Autocomplete for SQL and PPL
  • Syntax highlighting
  • Formatted output
    • Table
    • JSON
    • CSV
  • Field names displayed with color
  • Horizontal display for table format
    • Vertical display automatically used when output is too wide
    • Toggle vertical mode on/off with -v
  • Connect to OpenSearch
    • Works with or without OpenSearch security enabled
    • Supports Amazon OpenSearch Service domains
  • Query operations
    • Execute queries
    • Explain plans
    • Save and load queries
  • SQL plugin version selection
  • Command history
    • src/main/python/opensearchsql_cli/.cli_history
  • Configuration file
    • src/main/python/opensearchsql_cli/config/config_file.yaml
  • SQL plug-in connection log
    • src/main/java/sql_library.log
  • Gradle log
    • build.log

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 

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

Startup Commands

Defaults: if no arguments provided

  • Language: PPL
  • Endpoint: http://localhost:9200
  • Output Format: Table
  • SQL Plugin Version: 3.1.0.0

If not specify protocol or port number

  • The default protocol is HTTP with port number 9200.
  • If using HTTPS without specifying a port, port 443 is used by default.
OptionsDescription
-e, --endpoint<host:port>Set the OpenSearch endpoint (e.g., protocol://domain:port)
-u, --user<username:password>Provide credentials for secure clusters
-k, --insecureIgnore SSL certificate verification (use with https protocol)
-l, --language<language>Choose query language: ppl or sql
-f, --format<format>Set output format: table, json, or csv
-v, --version<version>Set OpenSearch SQL plugin version (e.g., 3.1, 2.19)
--rebuildRebuild or update the corresponding JAR file
-c, --configShow current configuration values
--helpShow help message and usage examples

Example Usages

# Start with all defaults
opensearchsql
# Use secure endpoint with credentials
opensearchsql -e https://localhost:9200 -u admin:password -k
# Use AWS SigV4 connection
opensearchsql --aws-auth amazon.com
# Use SQL and JSON output
opensearchsql -l sql -f json
# Load specific plugin version
opensearchsql -v 2.19

Interactive Mode Commands

Current Settings Displayed on Start

  • SQL Version: v3.1.0.0
  • Language: PPL or SQL
  • Format: TABLE, JSON, or CSV
OptionsDescription
<query>Execute a query
-l <type>Change language: PPL, SQL
-f <type>Change output format: JSON, TABLE, or CSV
-vToggle vertical table display mode
-s --save <name>Save the latest query result with a given name
-s --load <name>Load and display a saved query result
-s --remove <name>Remove a saved query by name
-s --listList all saved query names
helpShow this help message
exit, quit, qExit the interactive mode

Version Switching

To use a different OpenSearch SQL plug-in version, restart the CLI with

opensearchsql -v <version number>

Configure

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

You can also configure the following connection properties:

Connection Settings

KeyDescriptionExampleDefault
endpointOpenSearch URL (http://localhost:9200, https://localhost:9200, or AWS SigV4 endpoint)localhost:9200localhost:9200
usernameUsername for HTTPS authentication (use "" if not set)"admin"""
passwordPassword for HTTPS authentication (use "" if not set)"admin"""
insecureSkip certificate validation (-k flag)true / falsefalse
aws_authUse AWS SigV4 authenticationtrue / falsefalse

⚠️Security Warning: Passwords stored in this file are not encrypted. Consider using -u username:password instead for sensitive environments.

Query Settings

KeyDescriptionOptionsDefault
languageQuery languageppl, sqlppl
formatOutput formattable, json, csvtable
verticalUse vertical table display modetrue / falsefalse
versionSQL plugin version (as a string)"2.19"""

SQL Plugin Settings

KeyDescriptionDefault
QUERY_SIZE_LIMITMaximum number of rows returned per query200
FIELD_TYPE_TOLERANCETolerate field type mismatchestrue
CALCITE_ENGINE_ENABLEDEnable the Calcite SQL enginetrue
CALCITE_FALLBACK_ALLOWEDFallback to legacy engine if Calcite failstrue
CALCITE_PUSHDOWN_ENABLEDEnable pushdown optimization in Calcitetrue
CALCITE_PUSHDOWN_ROWCOUNT_ESTIMATION_FACTORRow count estimation factor for pushdown1.0
SQL_CURSOR_KEEP_ALIVECursor keep-alive time in minutes1

Note: PPL Calcite result is limited by QUERY_SIZE_LIMIT number

For a list of all available configurations, see config.yaml.

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 password > --insecure --data-binary "@accounts.json"
    
  3. Run a simple SQL/PPL command in OpenSearch SQL CLI:

    # PPL
    source=accounts
    # SQLSELECT*FROM accounts

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

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.

About

The SQL CLI component in OpenSearch is a stand-alone Python application for query

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

SQL CLI Test and BuildLatest VersionDocumentationChatPyPi DownloadsPRs welcome!

OpenSearch SQL CLI

Interactive command-line interface (CLI) for executing PPL (Piped Processing Language) and SQL queries against OpenSearch clusters. Supports secure and insecure endpoints, AWS SigV4 authentication, autocomplete, syntax highlighting, configurable output formats (Table, JSON, CSV), and saved query history. Easily toggle language modes, SQL plugin versions, and vertical display formatting - all from a single terminal session.

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

Query Compatibility Testing

Users can test their existing queries against newer OpenSearch SQL plug-in versions before upgrading their OpenSearch clusters.

For example, user is currently using version 2.19 may want to validate query compatibility with version 3.1 first.

By using this CLI tool, they can:

  • Load and run SQL 3.1 logic locally, without upgrading their OpenSearch cluster.
  • Verify that their current queries execute as expected under the new SQL engine.
  • Avoid potential breaking changes and reduce the need for rollback in production.

This CLI acts as a safe testing environment, allowing smooth transitions between versions with confidence.

SQL CLI

Test and buildSQL CLI CI

Features

  • Autocomplete for SQL and PPL
  • Syntax highlighting
  • Formatted output
    • Table
    • JSON
    • CSV
  • Field names displayed with color
  • Horizontal display for table format
    • Vertical display automatically used when output is too wide
    • Toggle vertical mode on/off with -v
  • Connect to OpenSearch
    • Works with or without OpenSearch security enabled
    • Supports Amazon OpenSearch Service domains
  • Query operations
    • Execute queries
    • Explain plans
    • Save and load queries
  • SQL plugin version selection
  • Command history
    • src/main/python/opensearchsql_cli/.cli_history
  • Configuration file
    • src/main/python/opensearchsql_cli/config/config_file.yaml
  • SQL plug-in connection log
    • src/main/java/sql_library.log
  • Gradle log
    • build.log

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 

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

Startup Commands

Defaults: if no arguments provided

  • Language: PPL
  • Endpoint: http://localhost:9200
  • Output Format: Table
  • SQL Plugin Version: 3.1.0.0

If not specify protocol or port number

  • The default protocol is HTTP with port number 9200.
  • If using HTTPS without specifying a port, port 443 is used by default.
OptionsDescription
-e, --endpoint<host:port>Set the OpenSearch endpoint (e.g., protocol://domain:port)
-u, --user<username:password>Provide credentials for secure clusters
-k, --insecureIgnore SSL certificate verification (use with https protocol)
-l, --language<language>Choose query language: ppl or sql
-f, --format<format>Set output format: table, json, or csv
-v, --version<version>Set OpenSearch SQL plugin version (e.g., 3.1, 2.19)
--rebuildRebuild or update the corresponding JAR file
-c, --configShow current configuration values
--helpShow help message and usage examples

Example Usages

# Start with all defaults
opensearchsql
# Use secure endpoint with credentials
opensearchsql -e https://localhost:9200 -u admin:password -k
# Use AWS SigV4 connection
opensearchsql --aws-auth amazon.com
# Use SQL and JSON output
opensearchsql -l sql -f json
# Load specific plugin version
opensearchsql -v 2.19

Interactive Mode Commands

Current Settings Displayed on Start

  • SQL Version: v3.1.0.0
  • Language: PPL or SQL
  • Format: TABLE, JSON, or CSV
OptionsDescription
<query>Execute a query
-l <type>Change language: PPL, SQL
-f <type>Change output format: JSON, TABLE, or CSV
-vToggle vertical table display mode
-s --save <name>Save the latest query result with a given name
-s --load <name>Load and display a saved query result
-s --remove <name>Remove a saved query by name
-s --listList all saved query names
helpShow this help message
exit, quit, qExit the interactive mode

Version Switching

To use a different OpenSearch SQL plug-in version, restart the CLI with

opensearchsql -v <version number>

Configure

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

You can also configure the following connection properties:

Connection Settings

KeyDescriptionExampleDefault
endpointOpenSearch URL (http://localhost:9200, https://localhost:9200, or AWS SigV4 endpoint)localhost:9200localhost:9200
usernameUsername for HTTPS authentication (use "" if not set)"admin"""
passwordPassword for HTTPS authentication (use "" if not set)"admin"""
insecureSkip certificate validation (-k flag)true / falsefalse
aws_authUse AWS SigV4 authenticationtrue / falsefalse

⚠️Security Warning: Passwords stored in this file are not encrypted. Consider using -u username:password instead for sensitive environments.

Query Settings

KeyDescriptionOptionsDefault
languageQuery languageppl, sqlppl
formatOutput formattable, json, csvtable
verticalUse vertical table display modetrue / falsefalse
versionSQL plugin version (as a string)"2.19"""

SQL Plugin Settings

KeyDescriptionDefault
QUERY_SIZE_LIMITMaximum number of rows returned per query200
FIELD_TYPE_TOLERANCETolerate field type mismatchestrue
CALCITE_ENGINE_ENABLEDEnable the Calcite SQL enginetrue
CALCITE_FALLBACK_ALLOWEDFallback to legacy engine if Calcite failstrue
CALCITE_PUSHDOWN_ENABLEDEnable pushdown optimization in Calcitetrue
CALCITE_PUSHDOWN_ROWCOUNT_ESTIMATION_FACTORRow count estimation factor for pushdown1.0
SQL_CURSOR_KEEP_ALIVECursor keep-alive time in minutes1

Note: PPL Calcite result is limited by QUERY_SIZE_LIMIT number

For a list of all available configurations, see config.yaml.

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 password > --insecure --data-binary "@accounts.json"
    
  3. Run a simple SQL/PPL command in OpenSearch SQL CLI:

    # PPL
    source=accounts
    # SQLSELECT*FROM accounts

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

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.

About

The SQL CLI component in OpenSearch is a stand-alone Python application for query

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SQL CLI Test and BuildLatest VersionDocumentationChatPyPi DownloadsPRs welcome!

OpenSearch SQL CLI

Interactive command-line interface (CLI) for executing PPL (Piped Processing Language) and SQL queries against OpenSearch clusters. Supports secure and insecure endpoints, AWS SigV4 authentication, autocomplete, syntax highlighting, configurable output formats (Table, JSON, CSV), and saved query history. Easily toggle language modes, SQL plugin versions, and vertical display formatting - all from a single terminal session.

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

Query Compatibility Testing

Users can test their existing queries against newer OpenSearch SQL plug-in versions before upgrading their OpenSearch clusters.

For example, user is currently using version 2.19 may want to validate query compatibility with version 3.1 first.

By using this CLI tool, they can:

  • Load and run SQL 3.1 logic locally, without upgrading their OpenSearch cluster.
  • Verify that their current queries execute as expected under the new SQL engine.
  • Avoid potential breaking changes and reduce the need for rollback in production.

This CLI acts as a safe testing environment, allowing smooth transitions between versions with confidence.

SQL CLI

Test and buildSQL CLI CI

Features

  • Autocomplete for SQL and PPL
  • Syntax highlighting
  • Formatted output
    • Table
    • JSON
    • CSV
  • Field names displayed with color
  • Horizontal display for table format
    • Vertical display automatically used when output is too wide
    • Toggle vertical mode on/off with -v
  • Connect to OpenSearch
    • Works with or without OpenSearch security enabled
    • Supports Amazon OpenSearch Service domains
  • Query operations
    • Execute queries
    • Explain plans
    • Save and load queries
  • SQL plugin version selection
  • Command history
    • src/main/python/opensearchsql_cli/.cli_history
  • Configuration file
    • src/main/python/opensearchsql_cli/config/config_file.yaml
  • SQL plug-in connection log
    • src/main/java/sql_library.log
  • Gradle log
    • build.log

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 

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

Startup Commands

Defaults: if no arguments provided

  • Language: PPL
  • Endpoint: http://localhost:9200
  • Output Format: Table
  • SQL Plugin Version: 3.1.0.0

If not specify protocol or port number

  • The default protocol is HTTP with port number 9200.
  • If using HTTPS without specifying a port, port 443 is used by default.
OptionsDescription
-e, --endpoint<host:port>Set the OpenSearch endpoint (e.g., protocol://domain:port)
-u, --user<username:password>Provide credentials for secure clusters
-k, --insecureIgnore SSL certificate verification (use with https protocol)
-l, --language<language>Choose query language: ppl or sql
-f, --format<format>Set output format: table, json, or csv
-v, --version<version>Set OpenSearch SQL plugin version (e.g., 3.1, 2.19)
--rebuildRebuild or update the corresponding JAR file
-c, --configShow current configuration values
--helpShow help message and usage examples

Example Usages

# Start with all defaults
opensearchsql
# Use secure endpoint with credentials
opensearchsql -e https://localhost:9200 -u admin:password -k
# Use AWS SigV4 connection
opensearchsql --aws-auth amazon.com
# Use SQL and JSON output
opensearchsql -l sql -f json
# Load specific plugin version
opensearchsql -v 2.19

Interactive Mode Commands

Current Settings Displayed on Start

  • SQL Version: v3.1.0.0
  • Language: PPL or SQL
  • Format: TABLE, JSON, or CSV
OptionsDescription
<query>Execute a query
-l <type>Change language: PPL, SQL
-f <type>Change output format: JSON, TABLE, or CSV
-vToggle vertical table display mode
-s --save <name>Save the latest query result with a given name
-s --load <name>Load and display a saved query result
-s --remove <name>Remove a saved query by name
-s --listList all saved query names
helpShow this help message
exit, quit, qExit the interactive mode

Version Switching

To use a different OpenSearch SQL plug-in version, restart the CLI with

opensearchsql -v <version number>

Configure

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

You can also configure the following connection properties:

Connection Settings

KeyDescriptionExampleDefault
endpointOpenSearch URL (http://localhost:9200, https://localhost:9200, or AWS SigV4 endpoint)localhost:9200localhost:9200
usernameUsername for HTTPS authentication (use "" if not set)"admin"""
passwordPassword for HTTPS authentication (use "" if not set)"admin"""
insecureSkip certificate validation (-k flag)true / falsefalse
aws_authUse AWS SigV4 authenticationtrue / falsefalse

⚠️Security Warning: Passwords stored in this file are not encrypted. Consider using -u username:password instead for sensitive environments.

Query Settings

KeyDescriptionOptionsDefault
languageQuery languageppl, sqlppl
formatOutput formattable, json, csvtable
verticalUse vertical table display modetrue / falsefalse
versionSQL plugin version (as a string)"2.19"""

SQL Plugin Settings

KeyDescriptionDefault
QUERY_SIZE_LIMITMaximum number of rows returned per query200
FIELD_TYPE_TOLERANCETolerate field type mismatchestrue
CALCITE_ENGINE_ENABLEDEnable the Calcite SQL enginetrue
CALCITE_FALLBACK_ALLOWEDFallback to legacy engine if Calcite failstrue
CALCITE_PUSHDOWN_ENABLEDEnable pushdown optimization in Calcitetrue
CALCITE_PUSHDOWN_ROWCOUNT_ESTIMATION_FACTORRow count estimation factor for pushdown1.0
SQL_CURSOR_KEEP_ALIVECursor keep-alive time in minutes1

Note: PPL Calcite result is limited by QUERY_SIZE_LIMIT number

For a list of all available configurations, see config.yaml.

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 password > --insecure --data-binary "@accounts.json"
    
  3. Run a simple SQL/PPL command in OpenSearch SQL CLI:

    # PPL
    source=accounts
    # SQLSELECT*FROM accounts

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

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.

About

The SQL CLI component in OpenSearch is a stand-alone Python application for query

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SQL CLI Test and BuildLatest VersionDocumentationChatPyPi DownloadsPRs welcome!

OpenSearch SQL CLI

Interactive command-line interface (CLI) for executing PPL (Piped Processing Language) and SQL queries against OpenSearch clusters. Supports secure and insecure endpoints, AWS SigV4 authentication, autocomplete, syntax highlighting, configurable output formats (Table, JSON, CSV), and saved query history. Easily toggle language modes, SQL plugin versions, and vertical display formatting - all from a single terminal session.

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

Query Compatibility Testing

Users can test their existing queries against newer OpenSearch SQL plug-in versions before upgrading their OpenSearch clusters.

For example, user is currently using version 2.19 may want to validate query compatibility with version 3.1 first.

By using this CLI tool, they can:

  • Load and run SQL 3.1 logic locally, without upgrading their OpenSearch cluster.
  • Verify that their current queries execute as expected under the new SQL engine.
  • Avoid potential breaking changes and reduce the need for rollback in production.

This CLI acts as a safe testing environment, allowing smooth transitions between versions with confidence.

SQL CLI

Test and buildSQL CLI CI

Features

  • Autocomplete for SQL and PPL
  • Syntax highlighting
  • Formatted output
    • Table
    • JSON
    • CSV
  • Field names displayed with color
  • Horizontal display for table format
    • Vertical display automatically used when output is too wide
    • Toggle vertical mode on/off with -v
  • Connect to OpenSearch
    • Works with or without OpenSearch security enabled
    • Supports Amazon OpenSearch Service domains
  • Query operations
    • Execute queries
    • Explain plans
    • Save and load queries
  • SQL plugin version selection
  • Command history
    • src/main/python/opensearchsql_cli/.cli_history
  • Configuration file
    • src/main/python/opensearchsql_cli/config/config_file.yaml
  • SQL plug-in connection log
    • src/main/java/sql_library.log
  • Gradle log
    • build.log

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 

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

Startup Commands

Defaults: if no arguments provided

  • Language: PPL
  • Endpoint: http://localhost:9200
  • Output Format: Table
  • SQL Plugin Version: 3.1.0.0

If not specify protocol or port number

  • The default protocol is HTTP with port number 9200.
  • If using HTTPS without specifying a port, port 443 is used by default.
OptionsDescription
-e, --endpoint<host:port>Set the OpenSearch endpoint (e.g., protocol://domain:port)
-u, --user<username:password>Provide credentials for secure clusters
-k, --insecureIgnore SSL certificate verification (use with https protocol)
-l, --language<language>Choose query language: ppl or sql
-f, --format<format>Set output format: table, json, or csv
-v, --version<version>Set OpenSearch SQL plugin version (e.g., 3.1, 2.19)
--rebuildRebuild or update the corresponding JAR file
-c, --configShow current configuration values
--helpShow help message and usage examples

Example Usages

# Start with all defaults
opensearchsql
# Use secure endpoint with credentials
opensearchsql -e https://localhost:9200 -u admin:password -k
# Use AWS SigV4 connection
opensearchsql --aws-auth amazon.com
# Use SQL and JSON output
opensearchsql -l sql -f json
# Load specific plugin version
opensearchsql -v 2.19

Interactive Mode Commands

Current Settings Displayed on Start

  • SQL Version: v3.1.0.0
  • Language: PPL or SQL
  • Format: TABLE, JSON, or CSV
OptionsDescription
<query>Execute a query
-l <type>Change language: PPL, SQL
-f <type>Change output format: JSON, TABLE, or CSV
-vToggle vertical table display mode
-s --save <name>Save the latest query result with a given name
-s --load <name>Load and display a saved query result
-s --remove <name>Remove a saved query by name
-s --listList all saved query names
helpShow this help message
exit, quit, qExit the interactive mode

Version Switching

To use a different OpenSearch SQL plug-in version, restart the CLI with

opensearchsql -v <version number>

Configure

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

You can also configure the following connection properties:

Connection Settings

KeyDescriptionExampleDefault
endpointOpenSearch URL (http://localhost:9200, https://localhost:9200, or AWS SigV4 endpoint)localhost:9200localhost:9200
usernameUsername for HTTPS authentication (use "" if not set)"admin"""
passwordPassword for HTTPS authentication (use "" if not set)"admin"""
insecureSkip certificate validation (-k flag)true / falsefalse
aws_authUse AWS SigV4 authenticationtrue / falsefalse

⚠️Security Warning: Passwords stored in this file are not encrypted. Consider using -u username:password instead for sensitive environments.

Query Settings

KeyDescriptionOptionsDefault
languageQuery languageppl, sqlppl
formatOutput formattable, json, csvtable
verticalUse vertical table display modetrue / falsefalse
versionSQL plugin version (as a string)"2.19"""

SQL Plugin Settings

KeyDescriptionDefault
QUERY_SIZE_LIMITMaximum number of rows returned per query200
FIELD_TYPE_TOLERANCETolerate field type mismatchestrue
CALCITE_ENGINE_ENABLEDEnable the Calcite SQL enginetrue
CALCITE_FALLBACK_ALLOWEDFallback to legacy engine if Calcite failstrue
CALCITE_PUSHDOWN_ENABLEDEnable pushdown optimization in Calcitetrue
CALCITE_PUSHDOWN_ROWCOUNT_ESTIMATION_FACTORRow count estimation factor for pushdown1.0
SQL_CURSOR_KEEP_ALIVECursor keep-alive time in minutes1

Note: PPL Calcite result is limited by QUERY_SIZE_LIMIT number

For a list of all available configurations, see config.yaml.

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 password > --insecure --data-binary "@accounts.json"
    
  3. Run a simple SQL/PPL command in OpenSearch SQL CLI:

    # PPL
    source=accounts
    # SQLSELECT*FROM accounts

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

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.

About

The SQL CLI component in OpenSearch is a stand-alone Python application for query

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

SQL CLI Test and BuildLatest VersionDocumentationChatPyPi DownloadsPRs welcome!

OpenSearch SQL CLI

Interactive command-line interface (CLI) for executing PPL (Piped Processing Language) and SQL queries against OpenSearch clusters. Supports secure and insecure endpoints, AWS SigV4 authentication, autocomplete, syntax highlighting, configurable output formats (Table, JSON, CSV), and saved query history. Easily toggle language modes, SQL plugin versions, and vertical display formatting - all from a single terminal session.

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

Query Compatibility Testing

Users can test their existing queries against newer OpenSearch SQL plug-in versions before upgrading their OpenSearch clusters.

For example, user is currently using version 2.19 may want to validate query compatibility with version 3.1 first.

By using this CLI tool, they can:

  • Load and run SQL 3.1 logic locally, without upgrading their OpenSearch cluster.
  • Verify that their current queries execute as expected under the new SQL engine.
  • Avoid potential breaking changes and reduce the need for rollback in production.

This CLI acts as a safe testing environment, allowing smooth transitions between versions with confidence.

SQL CLI

Test and buildSQL CLI CI

Features

  • Autocomplete for SQL and PPL
  • Syntax highlighting
  • Formatted output
    • Table
    • JSON
    • CSV
  • Field names displayed with color
  • Horizontal display for table format
    • Vertical display automatically used when output is too wide
    • Toggle vertical mode on/off with -v
  • Connect to OpenSearch
    • Works with or without OpenSearch security enabled
    • Supports Amazon OpenSearch Service domains
  • Query operations
    • Execute queries
    • Explain plans
    • Save and load queries
  • SQL plugin version selection
  • Command history
    • src/main/python/opensearchsql_cli/.cli_history
  • Configuration file
    • src/main/python/opensearchsql_cli/config/config_file.yaml
  • SQL plug-in connection log
    • src/main/java/sql_library.log
  • Gradle log
    • build.log

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 

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

Startup Commands

Defaults: if no arguments provided

  • Language: PPL
  • Endpoint: http://localhost:9200
  • Output Format: Table
  • SQL Plugin Version: 3.1.0.0

If not specify protocol or port number

  • The default protocol is HTTP with port number 9200.
  • If using HTTPS without specifying a port, port 443 is used by default.
OptionsDescription
-e, --endpoint<host:port>Set the OpenSearch endpoint (e.g., protocol://domain:port)
-u, --user<username:password>Provide credentials for secure clusters
-k, --insecureIgnore SSL certificate verification (use with https protocol)
-l, --language<language>Choose query language: ppl or sql
-f, --format<format>Set output format: table, json, or csv
-v, --version<version>Set OpenSearch SQL plugin version (e.g., 3.1, 2.19)
--rebuildRebuild or update the corresponding JAR file
-c, --configShow current configuration values
--helpShow help message and usage examples

Example Usages

# Start with all defaults
opensearchsql
# Use secure endpoint with credentials
opensearchsql -e https://localhost:9200 -u admin:password -k
# Use AWS SigV4 connection
opensearchsql --aws-auth amazon.com
# Use SQL and JSON output
opensearchsql -l sql -f json
# Load specific plugin version
opensearchsql -v 2.19

Interactive Mode Commands

Current Settings Displayed on Start

  • SQL Version: v3.1.0.0
  • Language: PPL or SQL
  • Format: TABLE, JSON, or CSV
OptionsDescription
<query>Execute a query
-l <type>Change language: PPL, SQL
-f <type>Change output format: JSON, TABLE, or CSV
-vToggle vertical table display mode
-s --save <name>Save the latest query result with a given name
-s --load <name>Load and display a saved query result
-s --remove <name>Remove a saved query by name
-s --listList all saved query names
helpShow this help message
exit, quit, qExit the interactive mode

Version Switching

To use a different OpenSearch SQL plug-in version, restart the CLI with

opensearchsql -v <version number>

Configure

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

You can also configure the following connection properties:

Connection Settings

KeyDescriptionExampleDefault
endpointOpenSearch URL (http://localhost:9200, https://localhost:9200, or AWS SigV4 endpoint)localhost:9200localhost:9200
usernameUsername for HTTPS authentication (use "" if not set)"admin"""
passwordPassword for HTTPS authentication (use "" if not set)"admin"""
insecureSkip certificate validation (-k flag)true / falsefalse
aws_authUse AWS SigV4 authenticationtrue / falsefalse

⚠️Security Warning: Passwords stored in this file are not encrypted. Consider using -u username:password instead for sensitive environments.

Query Settings

KeyDescriptionOptionsDefault
languageQuery languageppl, sqlppl
formatOutput formattable, json, csvtable
verticalUse vertical table display modetrue / falsefalse
versionSQL plugin version (as a string)"2.19"""

SQL Plugin Settings

KeyDescriptionDefault
QUERY_SIZE_LIMITMaximum number of rows returned per query200
FIELD_TYPE_TOLERANCETolerate field type mismatchestrue
CALCITE_ENGINE_ENABLEDEnable the Calcite SQL enginetrue
CALCITE_FALLBACK_ALLOWEDFallback to legacy engine if Calcite failstrue
CALCITE_PUSHDOWN_ENABLEDEnable pushdown optimization in Calcitetrue
CALCITE_PUSHDOWN_ROWCOUNT_ESTIMATION_FACTORRow count estimation factor for pushdown1.0
SQL_CURSOR_KEEP_ALIVECursor keep-alive time in minutes1

Note: PPL Calcite result is limited by QUERY_SIZE_LIMIT number

For a list of all available configurations, see config.yaml.

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 password > --insecure --data-binary "@accounts.json"
    
  3. Run a simple SQL/PPL command in OpenSearch SQL CLI:

    # PPL
    source=accounts
    # SQLSELECT*FROM accounts

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

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.

About

The SQL CLI component in OpenSearch is a stand-alone Python application for query

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages