# Athena reader.
Athena reader allow execute SQL with AWS Athena. We using SQLAlchemy and PyAthena under the hood.
## Permissions
WE HIGHLY RECOMMEND USING THIS LOADER WITH AWS EC2 IAM ROLE.
## Usage
Here's an example usage of the AthenaReader.
```
import os
import dotenv
from llama_index import SQLDatabase,ServiceContext
from llama_index.indices.struct_store import NLSQLTableQueryEngine
from llama_index.llms import OpenAI
from llama_hub.athena import AthenaReader
dotenv.load_dotenv()
AWS_REGION = os.environ['AWS_REGION']
S3_STAGING_DIR = os.environ['S3_STAGING_DIR']
DATABASE = os.environ['DATABASE']
WORKGROUP = os.environ['WORKGROUP']
TABLE = os.environ['TABLE']
llm = OpenAI(model="gpt-4",temperature=0, max_tokens=1024)
engine = AthenaReader.create_athena_engine(
aws_region=AWS_REGION,
s3_staging_dir=S3_STAGING_DIR,
database=DATABASE,
workgroup=WORKGROUP
)
service_context = ServiceContext.from_defaults(
llm=llm
)
sql_database = SQLDatabase(engine, include_tables=[TABLE])
query_engine = NLSQLTableQueryEngine(
sql_database=sql_database,
tables=[TABLE],
service_context=service_context
)
query_str = (
"Which blocknumber has the most transactions?"
)
response = query_engine.query(query_str)
```
## Screeshot
![image](https://vultureprime-research-center.s3.ap-southeast-1.amazonaws.com/Screenshot+2566-10-07+at+17.58.45.png)
Raw data
{
"_id": null,
"home_page": "",
"name": "llama-index-readers-athena",
"maintainer": "mattick27",
"docs_url": null,
"requires_python": ">=3.8.1,<4.0",
"maintainer_email": "",
"keywords": "aws athena,datalake,sql",
"author": "Your Name",
"author_email": "you@example.com",
"download_url": "https://files.pythonhosted.org/packages/ea/2b/e2abf1e6d5b356cf3a92a7bbb0d5a9425e34c14e52bedea1e09c8f901287/llama_index_readers_athena-0.1.3.tar.gz",
"platform": null,
"description": "# Athena reader.\n\nAthena reader allow execute SQL with AWS Athena. We using SQLAlchemy and PyAthena under the hood.\n\n## Permissions\n\nWE HIGHLY RECOMMEND USING THIS LOADER WITH AWS EC2 IAM ROLE.\n\n## Usage\n\nHere's an example usage of the AthenaReader.\n\n```\nimport os\nimport dotenv\nfrom llama_index import SQLDatabase,ServiceContext\nfrom llama_index.indices.struct_store import NLSQLTableQueryEngine\nfrom llama_index.llms import OpenAI\nfrom llama_hub.athena import AthenaReader\n\ndotenv.load_dotenv()\n\nAWS_REGION = os.environ['AWS_REGION']\nS3_STAGING_DIR = os.environ['S3_STAGING_DIR']\nDATABASE = os.environ['DATABASE']\nWORKGROUP = os.environ['WORKGROUP']\nTABLE = os.environ['TABLE']\n\nllm = OpenAI(model=\"gpt-4\",temperature=0, max_tokens=1024)\n\nengine = AthenaReader.create_athena_engine(\n aws_region=AWS_REGION,\n s3_staging_dir=S3_STAGING_DIR,\n database=DATABASE,\n workgroup=WORKGROUP\n)\n\nservice_context = ServiceContext.from_defaults(\n llm=llm\n)\n\nsql_database = SQLDatabase(engine, include_tables=[TABLE])\n\nquery_engine = NLSQLTableQueryEngine(\n sql_database=sql_database,\n tables=[TABLE],\n service_context=service_context\n)\nquery_str = (\n \"Which blocknumber has the most transactions?\"\n)\nresponse = query_engine.query(query_str)\n```\n\n## Screeshot\n\n![image](https://vultureprime-research-center.s3.ap-southeast-1.amazonaws.com/Screenshot+2566-10-07+at+17.58.45.png)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "llama-index readers athena integration",
"version": "0.1.3",
"project_urls": null,
"split_keywords": [
"aws athena",
"datalake",
"sql"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "523568e77932af966b8c034785b8c014f93e812cc2f0ba4012a8b8e6b22141a5",
"md5": "c22eadeedc5c2c52bc091a151db37fbf",
"sha256": "c84cd87501320159a791da58eb3916096807c217b5d6d9ccfd22bf680d5c69da"
},
"downloads": -1,
"filename": "llama_index_readers_athena-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c22eadeedc5c2c52bc091a151db37fbf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8.1,<4.0",
"size": 3109,
"upload_time": "2024-02-21T19:27:31",
"upload_time_iso_8601": "2024-02-21T19:27:31.984859Z",
"url": "https://files.pythonhosted.org/packages/52/35/68e77932af966b8c034785b8c014f93e812cc2f0ba4012a8b8e6b22141a5/llama_index_readers_athena-0.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ea2be2abf1e6d5b356cf3a92a7bbb0d5a9425e34c14e52bedea1e09c8f901287",
"md5": "c8bb0d9638ef11a28dc6b8c7db80d0a5",
"sha256": "399f66d69ff264b97763d953245203922683059b90fa73f766d62ce74f51aac4"
},
"downloads": -1,
"filename": "llama_index_readers_athena-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "c8bb0d9638ef11a28dc6b8c7db80d0a5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.1,<4.0",
"size": 2891,
"upload_time": "2024-02-21T19:27:33",
"upload_time_iso_8601": "2024-02-21T19:27:33.537925Z",
"url": "https://files.pythonhosted.org/packages/ea/2b/e2abf1e6d5b356cf3a92a7bbb0d5a9425e34c14e52bedea1e09c8f901287/llama_index_readers_athena-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-21 19:27:33",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "llama-index-readers-athena"
}