#athena #command-line-interface #sql-database #sql #query-execution #cli-config

bin+lib athena-cli

A command-line interface for AWS Athena with interactive query execution and result management

4 releases (2 breaking)

new 0.3.0 Mar 21, 2025
0.2.2 Mar 8, 2025
0.2.0 Mar 8, 2025
0.1.0 Feb 27, 2025

#324 in Database interfaces

Download history 121/week @ 2025-02-23 190/week @ 2025-03-02 101/week @ 2025-03-09 68/week @ 2025-03-16

480 downloads per month

MIT license

1MB
1.5K SLoC

AWS Athena CLI

Build status Crates.io Packaging status Crates.io License: MIT

A command-line interface tool written in Rust for interacting with AWS Athena, providing a streamlined experience similar to the Athena web console.

Athena CLI Demo

Purpose

  • Execute SQL queries against AWS Athena databases
  • List and manage workgroups
  • View query history and results
  • Manage databases and tables
  • Save frequently used queries

Installation

  1. Ensure you have Rust installed (1.70 or later)
  2. Clone this repository
  3. Run cargo install --path .
  4. Copy config.example.toml to ~/.config/athena-cli/config.toml and update with your settings

Usage

Basic commands:

  • athena-cli query "SELECT * FROM table" - Execute a query
  • athena-cli database list - List available databases
  • athena-cli table list - List tables in a database
  • athena-cli table describe <table-name> - Describe table structure
  • athena-cli workgroup list - List available workgroups
  • athena-cli history - Show recent queries
  • athena-cli inspect <query-id> - Show detailed information about a query
  • athena-cli inspect <query-id> -o <path> - Inspect query and download results
  • athena-cli download <query-id> - Download query results (shortcut for inspect with download)

Configuration

For configuration, edit ~/.config/aws-athena-cli/config.toml to set:

  • Default workgroup
  • Output location
  • AWS credentials (if not using AWS CLI configuration)

Requirements

  • AWS account with Athena access
  • Configured AWS credentials
  • Rust 1.70+

For detailed documentation and examples, see the Wiki.

Milestones

Completed ✅

  • Authorize athena with SSO profile and ENV variables
  • Basic query execution with AWS Athena
  • Configuration management with TOML config file
  • Query result caching and reuse
  • Polars integration for DataFrame handling
  • Get detail a history query
  • Database schema exploration

Coming Soon 🚀

  • Custom output formatting
  • Export results to various formats
  • Query history tracking
  • Test cases

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Setup

  1. Clone the repository
  2. Install pre-commit hooks to ensure code quality:
    pip install pre-commit
    pre-commit install
    

The pre-commit hooks will automatically:

  • Format your code with cargo fmt
  • Run cargo check to ensure compilation
  • Fix common issues with cargo clippy --fix
  • Check for other issues like trailing whitespace, YAML/TOML format, etc.

Dependencies

~63MB
~1M SLoC