# Athena

A simplified, promise-based library for querying [Athena](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Athena.html). This removes the need write custom polling logic.

## Get a client

```
const athenaClient = require('@sparkpost/aws').Athena( opts )
```

### Configuration Options

| Property  | Description                                                                                                   |
|-----------|---------------------------------------------------------------------------------------------------------------|
| database  | The Athena database to query. Used for `QueryExecutionContext.Database` in the AWS SDK.                       |
| s3Bucket  | The S3 bucket in which to store results. Used for  `ResultConfiguration.OutputLocation` in the AWS SDK.       |
| workgroup | The Athena workgroup to use for the query. Used for `WorkGroup` in the AWS SDK. Optional - default "primary". |

## Run a Query

Use the `query` method to run a query against Athena. It takes a single string of SQL and returns a promise that will be resolved with the result set or rejected with an error. The wrapper will attempt to coerce the values to native javascript types.


```
return athenaClient.query('select some, cool, columns from my_favorite_table')
  .then((results) => {
    console.log(results);
  }).catch((err) => {
    console.log('something went wrong', err);
  });
```
