Skip to content

bobesa/go-aws-athena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go AWS Athena driver for database/sql

Go database/sql driver for AWS Athena wraps Athena's AWS SDK to provide go sql driver as you would expect. This allows you to query AWS Athena in same way as any other SQL database.

This driver also allows you to use custom session generators to use bastion accounts or other ways of creating aws session.

Install

go get github.com/bobesa/go-aws-athena

Usage

Register the driver trough the go imports, this will allow you to use athena driver

import _ "github.com/bobesa/go-aws-athena/athenasql"

db, err := sql.Open("athena", "foo=bar")

DSN Attributes

Driver support multiple attributes to be passed

Database

Database name to operate on. Required for execution

db, err := sql.Open("athena", "db=sampledb")

Region

AWS Region

db, err := sql.Open("athena", "region=eu-west-1")

S3 Results Bucket

S3 bucket for results. Supply without s3://

db, err := sql.Open("athena", "s3_bucket=aws-athena-query-results-xxxxxxxx-eu-west-1")

Session Generator

Sessiong Generator to create AWS session. This allows you to use custom session generators

db, err := sql.Open("athena", "session_generator=mysessiongenerator")

Custom Session Generators

To create custom session generator just use athenasql.RegisterCustomSessionGenerator to provide it. Function signature is func(cfg athenasql.Config) (*session.Session, error). Config (athenasql.Config) will provide you with Region, S3 Bucket and other stuff.

import "github.com/bobesa/go-aws-athena/athenasql"

athenasql.RegisterCustomSessionGenerator("mysessiongenerator", func(cfg athenasql.Config) (*session.Session, error) {
	return session.NewSession(&aws.Config{
		Region: aws.String(region),
	})
})

Afterwards you can use it when opening sql db connection

db, err := sql.Open("athena", "session_generator=mysessiongenerator")

Notes

About

Go AWS Athena driver for database/sql

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages