{ "info": { "author": "chris.pruitt", "author_email": "chris.pruitt15@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# pythena\n\nThis is a simple python module that will allow you to query athena the same way the AWS Athena console would. It only requires a database name and query string.\n\n## Install\n```bash\npip install pythena\n```\n\n## Setup\nBe sure to set up your AWS authentication credentials. You can do so by using the aws cli and running\n```\npip install awscli\naws configure\n```\nMore help on configuring the aws cli here https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html\n\n\n## Simple Usage\n\n```python\nimport pythena\n\nathena_client = pythena.Athena(\"mydatabase\") \n\n# Returns results as a pandas dataframe\ndf = athena_client.execute(\"select * from mytable\")\n\nprint(df.sample(n=2)) # Prints 2 rows from your dataframe\n```\n\n## Connect to Database\n```python\nimport pythena\n\n# Connect to a database\nathena_client = pythena.Athena(database=\"mydatabase\")\n# Connect to a database and override default aws region in your aws configuration\nathena_client = pythena.Athena(database=\"mydatabase\", region='us-east-1')\n\n```\n\n## athena_client.execute()\n```\nexecute(\n query = 'SQL_QUERY', # Required\n s3_output_url='FULL_S3_PATH', # Optional (Format example: 's3://mybucket/mydir'\n save_results=TRUE | FALSE # Optional. Defaults to True only when 's3_output_url' is provided. If True, the s3 results will not be deleted and an tuple is returned with the execution_id.\n run_async=TRUE | FALSE # Optional. If True, allows you to run the query asynchronously. Returns execution_id, use get_result(execution_id) to fetch it when finished\n)\n```\n\n## Full Usage Examples\n\n```python\nimport pythena\n\n# Prints out all databases listed in the glue catalog\npythena.print_databases()\npythena.print_databases(region='us-east-1') # Overrides default region\n\n# Gets all databases and returns as a list\npythena.get_databases()\npythena.get_databases(region='us-east-1') # Overrides default region\n\n# Connect to a database\nathena_client = pythena.Athena(database=\"mydatabase\")\n\n# Prints out all tables in a database\nathena_client.print_tables()\n\n# Gets all tables in the database you are connected to and returns as a list\nathena_client.get_tables()\n\n# Execute a query\ndataframe = athena_client.execute(query=\"select * from my_table\") # Results are returned as a dataframe\n\n# Execute a query and save results to s3\ndataframe = athena_client.execute(query=\"select * from my_table\", s3_output_url=\"s3://mybucket/mydir\") # Results are returned as a dataframe\n\n# Get Execution Id and save results\ndataframe, execution_id = athena_client.execute(query=\"select * from my_table\", save_results=True)\n\n# Execute a query asynchronously\nexecution_id = athena_client.execute(query=\"select * from my_table\", run_async=True) # Returns just the execution id \ndataframe = athena_client.get_result(execution_id) # Will report errors if query failed or let you know if it is still running\n\n# With asynchronous queries, can check status, get error, or cancel\npythena.get_query_status(execution_id)\npythena.get_query_error(execution_id)\npythena.cancel_query(execution_id)\n\n```\n\n## Note\nBy default, when executing athena queries, via boto3 or the AWS athena console, the results are saved in an s3 bucket. This module by default, assuming a successful execution, will delete the s3 result file to keep s3 clean. If an s3_output_url is provided, then the results will be saved to that location and will not be deleted.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/chrispruitt/pythena", "keywords": "", "license": "Mozilla Public License Version 2.0", "maintainer": "", "maintainer_email": "", "name": "pythena", "package_url": "https://pypi.org/project/pythena/", "platform": "", "project_url": "https://pypi.org/project/pythena/", "project_urls": { "Homepage": "https://github.com/chrispruitt/pythena" }, "release_url": "https://pypi.org/project/pythena/1.3.1/", "requires_dist": [ "pandas (>=0.22.0)", "boto3 (>=1.9.90)", "botocore (>=1.12.90)", "retrying (>=1.3.3)" ], "requires_python": "", "summary": "A simple athena wrapper leveraging boto3 to execute queries and return results while only requiring a database and a query string.", "version": "1.3.1" }, "last_serial": 5803181, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e9ac8df829f4e82e03368e2506de8438", "sha256": "acd7be4b8ebff08fee00df67a4dd3b84a50cba0ff4d0010d149f78c77a7ca45a" }, "downloads": -1, "filename": "pythena-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e9ac8df829f4e82e03368e2506de8438", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8668, "upload_time": "2019-02-28T20:45:42", "url": "https://files.pythonhosted.org/packages/69/28/6b7d6ad865f93e96bed10931d94e4183c41c5b97fa67d5b0f783ef5d29c3/pythena-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49f21d0a4e94cb286f121def94003194", "sha256": "5a63b97c24b13476d29d230983160d33ade24e9be7f0ec734ad1304227be9fb3" }, "downloads": -1, "filename": "pythena-0.1.0.tar.gz", "has_sig": false, "md5_digest": "49f21d0a4e94cb286f121def94003194", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2774, "upload_time": "2019-02-28T20:45:44", "url": "https://files.pythonhosted.org/packages/af/e4/e208afffcfb49e6463a43fd6a8555aed43380c253af2f2d170569b0e2a38/pythena-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "e72735003f5dafb31748cf370896f4fc", "sha256": "e78f31323edf2774ea7dcb5ee2f2f67db7894e7315993c3a4c44883132b95d24" }, "downloads": -1, "filename": "pythena-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e72735003f5dafb31748cf370896f4fc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8807, "upload_time": "2019-02-28T20:57:16", "url": "https://files.pythonhosted.org/packages/43/a6/374cb6980f0919a7bcd05294d38b9ac7a6fc49d9d656cb8b3e1f6d85dca2/pythena-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f7030a7c4796ed1e0ce4e877a92ae3d", "sha256": "02c6064ac9e6140ad25f2ba214ad588dd8499f481f1f701cc01bd422a58beb79" }, "downloads": -1, "filename": "pythena-0.1.1.tar.gz", "has_sig": false, "md5_digest": "8f7030a7c4796ed1e0ce4e877a92ae3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2947, "upload_time": "2019-02-28T20:57:17", "url": "https://files.pythonhosted.org/packages/e0/bb/6ed10953e031465f950132790180b554e0a1c138ca82aee237b758618339/pythena-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "10f6c3f6d1f7a0f9f1d4c8d0aecff30e", "sha256": "f2b7661aaacd1547e75b94b1f14020e48d9388610c2498c4825135cac6634a11" }, "downloads": -1, "filename": "pythena-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "10f6c3f6d1f7a0f9f1d4c8d0aecff30e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9030, "upload_time": "2019-02-28T21:26:55", "url": "https://files.pythonhosted.org/packages/10/27/d0adcf97586c4f687cc79c18a25940891ab6ee60381fc11e50bf92f0bea6/pythena-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d4d0e7f6044fb8cb7980c8f734a336c", "sha256": "94058ff568dc2e6e14952144ec6361da59078735b211f55d3ac40bf5825caeb5" }, "downloads": -1, "filename": "pythena-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2d4d0e7f6044fb8cb7980c8f734a336c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3164, "upload_time": "2019-02-28T21:26:57", "url": "https://files.pythonhosted.org/packages/eb/ad/9c8a9fceb6093a5d0b0a88878b1483d8b3f75643166fe434bc922f1c6c2f/pythena-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "f4b012131f8c75f4b9370d858fdcd651", "sha256": "f8ff963ac27ee9d45281e2be3260608c419803499c78ccf5a17a0e2be953dc88" }, "downloads": -1, "filename": "pythena-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f4b012131f8c75f4b9370d858fdcd651", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9018, "upload_time": "2019-03-01T20:14:01", "url": "https://files.pythonhosted.org/packages/eb/d4/9174ac10618d28f6e5c3f501006ec9c0e8cda7e7953e706d7d08c1e8ee7e/pythena-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df079f6ba74c853873f47f8de16948e9", "sha256": "367d8df5cbe5c68002dad6dae1880e682af0e0d71b142c6b7bf12b4daffd23e3" }, "downloads": -1, "filename": "pythena-0.2.1.tar.gz", "has_sig": false, "md5_digest": "df079f6ba74c853873f47f8de16948e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3159, "upload_time": "2019-03-01T20:14:02", "url": "https://files.pythonhosted.org/packages/7a/0e/e7f022621fc13196c3f8f5a54c3cb85a4562b7af4db314d8a2178cfc6c82/pythena-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "0a19ce674db32a97e09d5943edf446ca", "sha256": "b2ea6ce397c5dc70f525afb422c1456fe1a344cb43a675dd168a0bff3d768751" }, "downloads": -1, "filename": "pythena-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0a19ce674db32a97e09d5943edf446ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9874, "upload_time": "2019-03-04T16:48:53", "url": "https://files.pythonhosted.org/packages/dc/8e/9005d1e18d00eefa96c39aa8d1f3383bef464292008adaa7a1dd2a4e89c3/pythena-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24ce15e43100aedd12a81b9b38917fc8", "sha256": "c4d75906cb943ad29da5799644b1938824a7917597411ee57d34e511a05123fe" }, "downloads": -1, "filename": "pythena-0.3.0.tar.gz", "has_sig": false, "md5_digest": "24ce15e43100aedd12a81b9b38917fc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3566, "upload_time": "2019-03-04T16:48:54", "url": "https://files.pythonhosted.org/packages/99/30/894b7496b613aeb4ed858996d27fc81ab5931bc30b4232305596a3e9b222/pythena-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "732ce8406f21869fea9bbebf99e12f2d", "sha256": "1ab21fe9040b4151c7895c694fb35daa66d12fbf5679d4a334872e6ef43b1199" }, "downloads": -1, "filename": "pythena-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "732ce8406f21869fea9bbebf99e12f2d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9884, "upload_time": "2019-03-04T17:38:26", "url": "https://files.pythonhosted.org/packages/eb/c8/3c698e356d50d53966360742f1b5768dc6f59900639c39f2f63abca528e4/pythena-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3669db447abbd677d959bc9ff684fa01", "sha256": "bbb6ebe816789583d59d2c18730593b341e35c9103e7faf268b88e6eac3c2fe5" }, "downloads": -1, "filename": "pythena-0.3.1.tar.gz", "has_sig": false, "md5_digest": "3669db447abbd677d959bc9ff684fa01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3576, "upload_time": "2019-03-04T17:38:27", "url": "https://files.pythonhosted.org/packages/a4/fa/53ff273fd43f6e93689953235df41d9811c807d077bc094f463f96e92148/pythena-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "c2c818185dd46bc55ef49c4eec34e266", "sha256": "98c7e9d6d04f60314db8434baeda6815fd9a130d099a38f808a160e75726ece0" }, "downloads": -1, "filename": "pythena-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c2c818185dd46bc55ef49c4eec34e266", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9994, "upload_time": "2019-03-05T13:01:29", "url": "https://files.pythonhosted.org/packages/92/56/1d60f42e4ab66ec4e22478993f68ad2408f984ea81873c6d68584f9525cb/pythena-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "892fc182cb8cb0e27c38294301a20f4f", "sha256": "ebe327274f62da7ac791fef975d4f4d17a9eecd662821036b1f9198df5cd9c09" }, "downloads": -1, "filename": "pythena-0.3.2.tar.gz", "has_sig": false, "md5_digest": "892fc182cb8cb0e27c38294301a20f4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3702, "upload_time": "2019-03-05T13:01:30", "url": "https://files.pythonhosted.org/packages/e7/44/29a2cc33ebbbdf26a949ec6145819eca46b92b764bf165f3c35c400d2c26/pythena-0.3.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "0f1e4794d83d33b5aa1d1d30a6046753", "sha256": "037ce583362c9a36ef4741a7f3c43654c63297e9132ff394fbcbe65b03acfe29" }, "downloads": -1, "filename": "pythena-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0f1e4794d83d33b5aa1d1d30a6046753", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10220, "upload_time": "2019-04-11T15:51:53", "url": "https://files.pythonhosted.org/packages/52/9c/d4c2488905fb207c6110b5e841fef738edc2cf51be41ef9c7594e69e7e53/pythena-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eed68c4f06790efb9445f2fa40d77364", "sha256": "c2dddb16cb8fb851a6de2cd838037d95f8d3c5be31b6254b08b3cfa809e862bb" }, "downloads": -1, "filename": "pythena-1.0.0.tar.gz", "has_sig": false, "md5_digest": "eed68c4f06790efb9445f2fa40d77364", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3953, "upload_time": "2019-04-11T15:51:54", "url": "https://files.pythonhosted.org/packages/a2/e0/24ebd545f83194901fad65cf8089cfe86512d0fa901c2301e4d5522a6348/pythena-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "a1054135b0e2e15a73cd512a1b4c3cd0", "sha256": "ef7f547eb0218af47579894b6819833d7da588dee4e826c0862bf8e1340c9666" }, "downloads": -1, "filename": "pythena-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a1054135b0e2e15a73cd512a1b4c3cd0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10450, "upload_time": "2019-04-18T18:15:04", "url": "https://files.pythonhosted.org/packages/82/6c/6081cd69d170a84e12ab6942383f5624c2536b7243b2699588135c59d5ac/pythena-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ad0fe8c5c7c1b87f3897869c2e4e205", "sha256": "5e06f55452b8dc2acd91688abc0e3e89ced0bbe32b567a11dbb9edfedc32359b" }, "downloads": -1, "filename": "pythena-1.1.0.tar.gz", "has_sig": false, "md5_digest": "9ad0fe8c5c7c1b87f3897869c2e4e205", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4230, "upload_time": "2019-04-18T18:15:06", "url": "https://files.pythonhosted.org/packages/26/26/819bd3dd9a8cf7c7624e894014977b7bbb0e470e2181ae7f08ec44e205db/pythena-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "95c883718c0244e076436fe05ba51509", "sha256": "a7ac97e137087e7f7125ba000f17eb6fe9a745cc2a79e12a8326df96941913e7" }, "downloads": -1, "filename": "pythena-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "95c883718c0244e076436fe05ba51509", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10823, "upload_time": "2019-08-27T13:01:24", "url": "https://files.pythonhosted.org/packages/a2/10/729063bba4a852b531c834d0da8b8a31034e64d6c5d58119aaf973a62a52/pythena-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4604a6682c895c151e453fdf6cda5f38", "sha256": "6c971fdf485e17fdb6cb2ed56b1d757c773155170e5f035c31906a40f9378ec1" }, "downloads": -1, "filename": "pythena-1.2.0.tar.gz", "has_sig": false, "md5_digest": "4604a6682c895c151e453fdf6cda5f38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4563, "upload_time": "2019-08-27T13:01:26", "url": "https://files.pythonhosted.org/packages/a8/8e/d5f318c056629a0fe2ff3fac01175aab4c4d6f4968f84bd9940a32b4b137/pythena-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "737c10e5ea1154d3dff5a7669f3abda5", "sha256": "47f2d0e60b4911a3e64683ed360a4a31089a7fccb387db3c31a1cebcb88168e5" }, "downloads": -1, "filename": "pythena-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "737c10e5ea1154d3dff5a7669f3abda5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11027, "upload_time": "2019-09-05T18:00:21", "url": "https://files.pythonhosted.org/packages/1d/e2/f226ab25dfc8118a09bba5ddfbc574066527c70804151a7c662c47168487/pythena-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbab4598f406d012168fe9fd9efa332f", "sha256": "0ac40507567579d38805da56d446ef3872908e87c67de86779e8765ecc930125" }, "downloads": -1, "filename": "pythena-1.3.0.tar.gz", "has_sig": false, "md5_digest": "dbab4598f406d012168fe9fd9efa332f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4774, "upload_time": "2019-09-05T18:00:22", "url": "https://files.pythonhosted.org/packages/aa/1e/f5400aa7da619151003f583286ad575466bc7558c296e817687c1649d8bb/pythena-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "2b320d3c20d6d97f7352dd25d62947f2", "sha256": "d49805b6a1e3cd13ecd5554502551a052af6fc76615f098b6d505987745628bc" }, "downloads": -1, "filename": "pythena-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2b320d3c20d6d97f7352dd25d62947f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11019, "upload_time": "2019-09-09T11:27:54", "url": "https://files.pythonhosted.org/packages/5c/fb/fed1f86d82c43a508f60c835479e618c28c477e38c65225c051f62c3224e/pythena-1.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c260255c0f6879e0302befe01afd29b8", "sha256": "a14c8897ec925137d1df4c9a4446a102ab465ac8bb086dbe9861a029a50d8482" }, "downloads": -1, "filename": "pythena-1.3.1.tar.gz", "has_sig": false, "md5_digest": "c260255c0f6879e0302befe01afd29b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4779, "upload_time": "2019-09-09T11:27:56", "url": "https://files.pythonhosted.org/packages/88/9c/b22f2520a5cf56cf6344a305259c844a411894130905b5c77dc6adddc5b7/pythena-1.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2b320d3c20d6d97f7352dd25d62947f2", "sha256": "d49805b6a1e3cd13ecd5554502551a052af6fc76615f098b6d505987745628bc" }, "downloads": -1, "filename": "pythena-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2b320d3c20d6d97f7352dd25d62947f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11019, "upload_time": "2019-09-09T11:27:54", "url": "https://files.pythonhosted.org/packages/5c/fb/fed1f86d82c43a508f60c835479e618c28c477e38c65225c051f62c3224e/pythena-1.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c260255c0f6879e0302befe01afd29b8", "sha256": "a14c8897ec925137d1df4c9a4446a102ab465ac8bb086dbe9861a029a50d8482" }, "downloads": -1, "filename": "pythena-1.3.1.tar.gz", "has_sig": false, "md5_digest": "c260255c0f6879e0302befe01afd29b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4779, "upload_time": "2019-09-09T11:27:56", "url": "https://files.pythonhosted.org/packages/88/9c/b22f2520a5cf56cf6344a305259c844a411894130905b5c77dc6adddc5b7/pythena-1.3.1.tar.gz" } ] }