All Projects → dbcli → Athenacli

dbcli / Athenacli

Licence: bsd-3-clause
AthenaCLI is a CLI tool for AWS Athena service that can do auto-completion and syntax highlighting.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Athenacli

Bat
A cat(1) clone with wings.
Stars: ✭ 30,833 (+20319.21%)
Mutual labels:  cli, command-line, syntax-highlighting
Dynein
DynamoDB CLI written in Rust.
Stars: ✭ 126 (-16.56%)
Mutual labels:  cli, command-line
Nnn
n³ The unorthodox terminal file manager
Stars: ✭ 13,138 (+8600.66%)
Mutual labels:  cli, command-line
Check It Out
A command line interface for Git Checkout. See branches available for checkout.
Stars: ✭ 127 (-15.89%)
Mutual labels:  cli, command-line
Chest
Bash glue to encrypt and hide files
Stars: ✭ 123 (-18.54%)
Mutual labels:  cli, command-line
Flow Cli
The Flow CLI is a command-line interface that provides useful utilities for building Flow applications
Stars: ✭ 123 (-18.54%)
Mutual labels:  cli, command-line
Grmon
Command line monitoring for goroutines
Stars: ✭ 1,703 (+1027.81%)
Mutual labels:  cli, command-line
Cum
comic updater, mangafied
Stars: ✭ 117 (-22.52%)
Mutual labels:  cli, command-line
Entrypoint
Composable CLI Argument Parser for all modern .Net platforms.
Stars: ✭ 136 (-9.93%)
Mutual labels:  cli, command-line
Git Tidy
Tidy up stale git branches.
Stars: ✭ 137 (-9.27%)
Mutual labels:  cli, command-line
Brotab
Control your browser's tabs from the command line
Stars: ✭ 137 (-9.27%)
Mutual labels:  cli, command-line
Spectre.cli
An extremely opinionated command-line parser.
Stars: ✭ 121 (-19.87%)
Mutual labels:  cli, command-line
Bull Repl
Bull / BullMQ queue command line REPL
Stars: ✭ 121 (-19.87%)
Mutual labels:  cli, command-line
Clrcli
CLRCLI is an event-driven library for building line-art user interfaces in C#/.Net command-line applications.
Stars: ✭ 124 (-17.88%)
Mutual labels:  cli, command-line
Coinmon
💰 The cryptocurrency price tool on CLI. 🖥
Stars: ✭ 1,581 (+947.02%)
Mutual labels:  cli, command-line
Typin
Declarative framework for interactive CLI applications
Stars: ✭ 126 (-16.56%)
Mutual labels:  cli, command-line
Node Promptly
Simple command line prompting utility for nodejs
Stars: ✭ 140 (-7.28%)
Mutual labels:  cli, command-line
Nodejs Cli Apps Best Practices
The largest Node.js CLI Apps best practices list ✨
Stars: ✭ 2,144 (+1319.87%)
Mutual labels:  cli, command-line
Micropy Cli
Micropython Project Management Tool with VSCode support, Linting, Intellisense, Dependency Management, and more!
Stars: ✭ 112 (-25.83%)
Mutual labels:  cli, autocompletion
The Way
A command line code snippets manager
Stars: ✭ 132 (-12.58%)
Mutual labels:  cli, command-line

Build Status PyPI image image Join the chat at https://gitter.im/dbcli/athenacli

Introduction

AthenaCLI is a command line interface (CLI) for the Athena service that can do auto-completion and syntax highlighting, and is a proud member of the dbcli community.

Quick Start

Install

Install via pip

If you already know how to install python packages, then you can simply do:

$ pip install athenacli

Install via brew

Homebrew users can install by:

$ brew install athenacli

If you don't know how to install python packages, please check the Install page for more options (e.g docker)

Config

A config file is automatically created at ~/.athenacli/athenaclirc at first launch (run athenacli). See the file itself for a description of all available options.

Below 4 variables are required. If you are a user of aws cli, you can refer to awsconfig file to see how to reuse credentials configuration of aws cli.

# AWS credentials
aws_access_key_id = ''
aws_secret_access_key = ''
region = '' # e.g us-west-2, us-east-1

# Amazon S3 staging directory where query results are stored.
# NOTE: S3 should in the same region as specified above.
# The format is 's3://<your s3 directory path>'
s3_staging_dir = ''

# Name of athena workgroup that you want to use
work_group = '' # e.g. primary

or you can also use environment variables:

$ export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
$ export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
$ export AWS_DEFAULT_REGION=us-west-2
$ export AWS_ATHENA_S3_STAGING_DIR=s3://YOUR_S3_BUCKET/path/to/
$ export AWS_ATHENA_WORK_GROUP=YOUR_ATHENA_WORK_GROUP

Create a table

$ athenacli -e examples/create_table.sql

You can find examples/create_table.sql here.

Run a query

$ athenacli -e 'select elb_name, request_ip from elb_logs LIMIT 10'

REPL

$ athenacli [<database_name>]

Features

  • Auto-completes as you type for SQL keywords as well as tables and columns in the database.
  • Syntax highlighting.
  • Smart-completion will suggest context-sensitive completion.
    • SELECT * FROM <tab> will only show table names.
    • SELECT * FROM users WHERE <tab> will only show column names.
  • Pretty prints tabular data and various table formats.
  • Some special commands. e.g. Favorite queries.
  • Alias support. Column completions will work even when table names are aliased.

Please refer to the Features page for the screenshots of above features.

Usages

$ athenacli --help
Usage: main.py [OPTIONS] [DATABASE]

A Athena terminal client with auto-completion and syntax highlighting.

Examples:
    - athenacli
    - athenacli my_database

Options:
-e, --execute TEXT            Execute a command (or a file) and quit.
-r, --region TEXT             AWS region.
--aws-access-key-id TEXT      AWS access key id.
--aws-secret-access-key TEXT  AWS secretaccess key.
--s3-staging-dir TEXT         Amazon S3 staging directory where query
                                results are stored.
--work-group TEXT             Amazon Athena workgroup in which query is run, default is primary
--athenaclirc PATH            Location of athenaclirc file.
--help                        Show this message and exit.

Please go to the Usages for detailed information on how to use AthenaCLI.

Contributions

If you're interested in contributing to this project, first of all I would like to extend my heartfelt gratitude. I've written a small doc to describe how to get this running in a development setup.

Please feel free to reach out to me if you need help. My email: zhuzhaolong0 AT gmail com

FAQs

Please refer to the FAQs for other information, e.g. "How can I get support for athenacli?".

Credits

A special thanks to Amjith Ramanujam for creating pgcli and mycli, which inspired me to create this AthenaCLI, and AthenaCLI is created based on a clone of mycli.

Thanks to Jonathan Slenders for creating the Python Prompt Toolkit, which leads me to pgcli and mycli. It's a lot of fun playing with this library.

Thanks to PyAthena for a pure python adapter to Athena database.

Last but not least, thanks my team and manager encourage me to work on this hobby project.

Similar projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].