sea-eagle

Command line tools for AWS Athena.

https://github.com/heuermh/sea-eagle

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.5%) to scientific vocabulary

Keywords

athena cli command-line command-line-tool tui
Last synced: 4 months ago · JSON representation ·

Repository

Command line tools for AWS Athena.

Basic Info
  • Host: GitHub
  • Owner: heuermh
  • License: apache-2.0
  • Language: Java
  • Default Branch: main
  • Homepage:
  • Size: 78.1 KB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 6
  • Releases: 8
Topics
athena cli command-line command-line-tool tui
Created about 2 years ago · Last pushed 4 months ago
Metadata Files
Readme Funding License Citation Codemeta

README.md

sea-eagle

Command line tools for AWS Athena.

Hacking sea-eagle

Install

  • JDK 17 or later, https://openjdk.java.net
  • Apache Maven 3.6.3 or later, https://maven.apache.org

To build ```bash $ mvn package

$ export PATH=$PATH:pwd/target/appassembler/bin ```

Using sea-eagle

Usage

```bash $ se --help USAGE se [-hV] [--skip-header] [--skip-history] [-b=] [-c=] [-d=] [-f=] [-i=] [--left-pad=] [-n=] [-o=] [-q=] [-w=] [-p=]... [COMMAND]

OPTIONS -c, --catalog= Catalog name, if any. -d, --database= Database name, if any. -w, --workgroup= Workgroup, default primary. -b, --output-location= Output location, if workgroup is not provided. -n, --polling-interval= Query status polling interval, default 250 ms. --skip-header Skip writing header to results. --skip-history Skip writing query to history file. -q, --query= Inline SQL query, if any. -i, --query-path= SQL query input path, default stdin. -p, --execution-parameters= SQL query execution parameters, if any. -o, --results-path= Query results path, default stdout. -f, --format, --results-format= Query results format { pretty, sparse, text, parquet }, default text. --left-pad= Left pad query results, default 2 for pretty and sparse formats. --verbose Show additional logging messages. -h, --help Show this help message and exit. -V, --version Print version information and exit.

COMMANDS help Display help information about the specified command. generate-completion Generate bash/zsh completion script for se. ```

Environment variables

Note the catalog, database, workgroup, and output-location options can also be specified by environment variables SE_CATALOG, SE_DATABASE, SE_WORKGROUP, and SE_OUTPUT_LOCATION, respectively ```bash $ export SE_CATALOG=catalog

$ SE_WORKGROUP=workgroup \ se \ ... \ ```

SQL queries

SQL queries can be provided inline via the -q/--query option bash $ se \ ... \ --query "SELECT * FROM table LIMIT 4"

By default the SQL query is read from stdin bash $ echo "SELECT * FROM table LIMIT 4" | se \ ... \

Or the SQL query can be read from a file via the -i/--query-path option ```bash $ echo "SELECT * FROM table LIMIT 4" > query.sql

$ se \ ... \ --query-path query.sql ```

Execution parameters

SQL queries may contain ?-style execution parameters to be substituted server side bash $ se \ ... \ --query "SELECT * FROM table WHERE foo = ? AND bar > ? LIMIT 4" \ --execution-parameters baz \ --execution-parameters 100000

Alternatively, variable substition can be done via e.g. envsubst on the client side ```bash $ echo "SELECT * FROM table WHERE foo = '$FOO' LIMIT 4" > query.sql

$ export FOO=baz

$ envsubst < query.sql | se \ ... \ ```

SQL query history file

SQL queries are written to a history file ~/.se_history, unless --skip-history flag is present ```bash $ se \ ... \ --query "SELECT * FROM table LIMIT 4"

$ se \ ... \ --skip-history \ --query "SELECT * FROM table WHERE foo = 'top secret!!' LIMIT 4"

$ cat ~/.se_history SELECT * FROM table LIMIT 4 ```

Output formats

Text and display formats

By default, results are written to stdout in tab-delimited text format.

This allows for easy integration with command line tools such as cut, grep, awk, sed, uniq, etc. for post-processing.

```bash $ se \ ... \ --query "SELECT * FROM table LIMIT 2"

foo bar baz 2088090022 185762 232298 2044078009 113652 85962

$ se \ ... \ --query "SELECT * FROM table LIMIT 4" \ --skip-header | cut -f 4 | sort -n

26603 67310 116988 164738 ```

Results may be formatted for display in the terminal, in sparse ```bash $ se \ ... \ --query "SELECT * FROM table LIMIT 4" \ --format sparse

  foo       bar       baz

1499494   2354616   5560703
 516330    758111   1623718
 113663    192870    137600
1028323    960709    850306

```

and pretty formats ```bash $ se \ ... \ --query "SELECT * FROM table LIMIT 4" \ --format pretty

+---------+---------+---------+ | foo | bar | baz | +---------+---------+---------+ | 1088718 | 1779849 | 5096779 | | 17560 | 40360 | 32204 | | 84 | 8273 | 47681 | | 52383 | 100406 | 86338 | +---------+---------+---------+ ```

Results may be written to a file (and optionally compressed) via the -o/--results-path option bash $ se \ ... \ --query "SELECT * FROM table LIMIT 4" \ --results-path results.txt.zstd

Parquet format

Finally, results may be written out to a local Parquet file bash $ se \ ... \ --query "SELECT * FROM table LIMIT 4" \ --format parquet --results-path results.parquet

...which can easily be loaded into e.g. duckdb for further post-processing. ```sql $ duckdb

D SELECT * FROM read_parquet("results.parquet"); ┌─────────┬─────────┬─────────┐ │ foo │ bar │ baz │ │ int64 │ int64 │ int64 │ ├─────────┼─────────┼─────────┤ │ 1670466 │ 2455819 │ 5386130 │ │ 1427967 │ 1990921 │ 3779556 │ │ 66473 │ 97877 │ 73903 │ │ 7767 │ 7766 │ 5888 │ ├─────────┴─────────┴─────────┤ │ 4 rows 3 columns │ └─────────────────────────────┘ ```

Owner

  • Name: Michael L Heuer
  • Login: heuermh
  • Kind: user
  • Location: Minneapolis, MN USA
  • Company: Network.bio

Citation (CITATION.cff)

title: sea-eagle
authors:
  - given-names: Michael
    family-names: Heuer
cff-version: 1.2.0
message: If you use this software, please cite it using the metadata from this file.
type: software
abstract: Command line tools for AWS Athena.
keywords:
  - athena
  - cli
  - command-line
  - command-line-tool
  - tui
license: Apache-2.0
repository-code: https://github.com/heuermh/sea-eagle
date-released: '2025-03-11'
version: '0.8'
doi: 10.5281/zenodo.15009020

CodeMeta (codemeta.json)

{
  "name": "sea-eagle",
  "@context": "https://w3id.org/codemeta/3.0",
  "applicationCategory": "Data base user interface and query",
  "author": [
    {
      "familyName": "Heuer",
      "id": "https://orcid.org/0000-0002-9052-6000",
      "givenName": "Michael",
      "type": "Person"
    }
  ],
  "codeRepository": "https://github.com/heuermh/sea-eagle",
  "dateCreated": "2023-11-03",
  "dateModified": "2025-09-17",
  "datePublished": "2024-06-07",
  "description": "Command line tools for AWS Athena.",
  "developmentStatus": "active",
  "downloadUrl": "https://github.com/heuermh/sea-eagle/releases/tag/sea-eagle-0.6",
  "issueTracker": "https://github.com/heuermh/sea-eagle/issues",
  "keywords": [
    "athena",
    "cli",
    "command-line",
    "command-line-tool",
    "tui"
  ],
  "license": "https://spdx.org/licenses/Apache-2.0",
  "programmingLanguage": [
    "Java"
  ],
  "schema:releaseNotes": "**Full Changelog**: https://github.com/heuermh/sea-eagle/compare/sea-eagle-0.5...sea-eagle-0.6",
  "version": "0.9",
  "type": "SoftwareSourceCode",
  "identifier": "10.5281/zenodo.17143191"
}

GitHub Events

Total
  • Create event: 2
  • Release event: 1
  • Issues event: 3
  • Delete event: 1
  • Issue comment event: 2
  • Push event: 18
  • Pull request event: 2
Last Year
  • Create event: 2
  • Release event: 1
  • Issues event: 3
  • Delete event: 1
  • Issue comment event: 2
  • Push event: 18
  • Pull request event: 2

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 12
  • Total pull requests: 2
  • Average time to close issues: 4 months
  • Average time to close pull requests: 35 minutes
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.42
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 1
  • Bot pull requests: 2
Past Year
  • Issues: 4
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 35 minutes
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 1
  • Bot pull requests: 2
Top Authors
Issue Authors
  • heuermh (11)
  • codefair-io[bot] (1)
Pull Request Authors
  • codefair-io[bot] (2)
  • codefair-app[bot] (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/ci.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-java v2 composite
.github/workflows/deploy.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-java v2 composite
pom.xml maven
  • info.picocli:picocli compile
  • org.dishevelled:dsh-compress compile
  • org.slf4j:slf4j-api compile
  • software.amazon.awssdk:bom 2.20.25 import
  • com.googlecode.lanterna:lanterna 3.2.0-alpha1
  • info.picocli:picocli 4.7.5
  • org.dishevelled:dsh-compress 1.6.5
  • org.slf4j:slf4j-api 1.7.30
  • org.slf4j:slf4j-simple
  • org.slf4j:slf4j-simple 1.7.30
  • software.amazon.awssdk:athena