SQL Client is a bash script that provides a convenient way to export SQL query results to a file or standard output in CSV or JSON format.

The client validates input parameters and executes a request to /api/sql API endpoint using credentials stored in the atsd.config file.


curl -O https://raw.githubusercontent.com/axibase/atsd/master/sql/client/sql.sh


Grant execution permissions to the sql.sh script.

chmod +x sql.sh


Create an atsd.config file located in the same directory as the sql.sh file.

Specify the database URL and user credentials. If the URL protocol is HTTPS, the query and the results are encrypted.


The user must have the API_DATA_READ role and necessary entity read permissions.

The client is stateless with each query triggering a separate HTTP request with the Basic authentication.


Name Type Description
-o, --output string Output file where results are stored. If not specified, results are printed to stdout.
-i, --input string Input file containing SQL query to execute.
-q, --query string SQL query text enclosed in double quotes. Ignored if query is read from input file.
Escape double quotes contained in query text with a backslash.
-f, --format string Output format. Default: csv. Supported options: csv, json.


Execute inline query and print results to stdout.

./sql.sh -q "SELECT * FROM \"mpstat.cpu_busy\" WHERE datetime > now - 1*minute LIMIT 3"

Execute inline query and store results in /tmp/report-2.csv.

./sql.sh --output /tmp/report-2.csv --query "SELECT entity, value FROM \"mpstat.cpu_busy\" WHERE datetime > now - 1*minute LIMIT 3"

Execute query specified in the query.sql file and write CSV results to /tmp/report-1.csv.

./sql.sh -o /tmp/report-1.csv -i query.sql -f csv

Execute inline query and redirect output to a file.

./sql.sh -q "SELECT * FROM \"mpstat.cpu_busy\" WHERE datetime > now-1*hour LIMIT 2" > /tmp/test.csv

Execute inline query with escaped double quotes.

./sql.sh -q "SELECT * FROM \"mpstat.cpu_busy\" WHERE datetime > now-1*hour LIMIT 5"

Execute a multi-line query.

./sql.sh -q "SELECT * FROM \"mpstat.cpu_busy\" WHERE
               datetime > now-1*hour LIMIT 5"