Athena-Express-Plus is a Node.js library (v8.1.0) that simplifies executing SQL queries in Amazon Athena and fetching cleaned-up JSON results. It wraps the AWS SDK v3 Athena and S3 clients, handling query initiation, polling, result retrieval from S3, and error retries (ThrottlingException, NetworkingError, TooManyRequestsException). Supports parameterized queries, pagination, streaming, and cost estimation. Actively maintained as a fork of the original Athena-Express, adding AWS SDK v3 support and dynamic parameters. Key differentiator: seamless JSON output and integrated error handling without manual API stitching.
npm install athena-express-plusNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Shows how to instantiate AthenaExpressPlus with AWS SDK v3 clients and execute a simple SELECT query.
Remove aws-sdk v2 and install @aws-sdk/client-athena and @aws-sdk/client-s3.
Create Athena and S3 clients separately and pass them via { athena, s3 }.Use 's3Bucket: 's3://my-bucket'' (no trailing slash).
Remove 'formatJson' from configuration.
Use 'getStats: true' to access cost; treat as estimate only.
Remove 'retry' from configuration; retry logic is built-in.
Set 'maxResults' in query or use 'startQueryExecution' with manual pagination.
Ensure Lambda/EC2 has proper outbound internet access and IAM policy allows 'athena:StartQueryExecution' and 'athena:GetQueryResults'.
Check if the query is valid and the table exists. Use 'LIMIT 1' to test.
Attach policy 'AmazonAthenaFullAccess' or custom policy with 'athena:StartQueryExecution' and 'athena:GetQueryResults'.
Verify bucket name and region; ensure the role has s3:PutObject and s3:GetObject permissions on that bucket.