Awesome
Athena CLI
Presto-like CLI tool for AWS Athena. The alternative is using the AWS CLI Athena sub-commands.
Requirements
A recent version of the aws
CLI must be available on the PATH.
Installation
To install using pip
run:
$ pip install athena-cli
Or, clone the GitHub repo and run:
$ python setup.py install
Configuration
Only required configuration is AWS credentials.
Usage
$ athena --help
usage: athena [--debug] [--execute <statement>] [--output-format <format>] [--schema <schema>]
[--profile <profile>] [--region <region>] [--s3-bucket <bucket>]
[--server-side-encryption] [--version]
Athena interactive console
optional arguments:
-h, --help show this help message and exit
--debug enable debug mode
--execute STATEMENT execute statement in batch mode
--output-format {ALIGNED,VERTICAL,CSV,TSV,CSV_HEADER,TSV_HEADER,NULL}
output format for batch mode
--schema SCHEMA, --database SCHEMA, --db SCHEMA
default schema
--profile PROFILE AWS profile
--region REGION AWS region
--s3-bucket BUCKET, --bucket BUCKET
AWS S3 bucket for query results
--server-side-encryption, --encryption
Use server-side-encryption for query results
--version show version info and exit
athena> help
Supported commands:
QUIT
SELECT
ALTER DATABASE <schema>
ALTER TABLE <table>
CREATE DATABASE <schema>
CREATE TABLE <table>
CREATE TABLE <table> AS <query>
CREATE [OR REPLACE] VIEW <view> AS <query>
DESCRIBE <table>
DROP DATABASE <schema>
DROP TABLE <table>
MSCK REPAIR TABLE <table>
SHOW COLUMNS FROM <table>
SHOW CREATE TABLE <table>
SHOW DATABASES [LIKE <pattern>]
SHOW PARTITIONS <table>
SHOW TABLES [IN <schema>] [<pattern>]
SHOW TBLPROPERTIES <table>
USE [<catalog>.]<schema>
VALUES row [, ...]
See http://docs.aws.amazon.com/athena/latest/ug/language-reference.html
Example
athena> use sampledb;
athena:sampledb> show tables;
tab_name
------------
elb_logs
(1 rows)
Query deb156b5-293e-472d-8897-5ee195b06b11, SUCCEEDED
https://eu-west-1.console.aws.amazon.com/athena/home?force®ion=eu-west-1#query/history/deb156b5-293e-472d-8897-5ee195b06b11
Time: 0:00:00, CPU Time: 474ms total, Data Scanned: 0.00B, Cost: $0.00
Troubleshooting
Use the --debug
option when launching the athena
CLI to get AWS debug output:
$ athena --debug
2017-07-21 10:10:45,477 botocore.credentials [DEBUG] Looking for credentials via: env
2017-07-21 10:10:45,478 botocore.credentials [DEBUG] Looking for credentials via: assume-role
2017-07-21 10:10:45,478 botocore.credentials [DEBUG] Looking for credentials via: shared-credentials-file
2017-07-21 10:10:45,479 botocore.credentials [INFO] Found credentials in shared credentials file: ~/.aws/credentials
...
Turn on debug at the athena>
prompt by typing:
athena> set debug true
debug - was: False
now: True
Command history is written to ~/.athena_history
.
Similar Projects
- AthenaCLI: CLI tool for AWS Athena service that can do auto-completion and syntax highlighting.
- athena-cli (Ruby): CLI for Amazon Athena, powered by JRuby.
References
- AWS Athena: https://aws.amazon.com/athena/
- AWS SDK for Python: https://boto3.readthedocs.io/en/latest/reference/services/athena.html
- PrestoDB: https://prestodb.io/docs/current/
License
Athena CLI
Copyright 2017-2018 Guardian News & Media
Copyright 2019,2023 Nick Satterly
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.