:mod:`airflow.contrib.hooks.aws_athena_hook` ============================================ .. py:module:: airflow.contrib.hooks.aws_athena_hook Module Contents --------------- .. py:class:: AWSAthenaHook(aws_conn_id='aws_default', sleep_time=30, *args, **kwargs) Bases: :class:`airflow.contrib.hooks.aws_hook.AwsHook` Interact with AWS Athena to run, poll queries and return query results :param aws_conn_id: aws connection to use. :type aws_conn_id: str :param sleep_time: Time to wait between two consecutive call to check query status on athena :type sleep_time: int .. attribute:: INTERMEDIATE_STATES :annotation: = ['QUEUED', 'RUNNING'] .. attribute:: FAILURE_STATES :annotation: = ['FAILED', 'CANCELLED'] .. attribute:: SUCCESS_STATES :annotation: = ['SUCCEEDED'] .. method:: get_conn(self) check if aws conn exists already or create one and return it :return: boto3 session .. method:: run_query(self, query, query_context, result_configuration, client_request_token=None) Run Presto query on athena with provided config and return submitted query_execution_id :param query: Presto query to run :type query: str :param query_context: Context in which query need to be run :type query_context: dict :param result_configuration: Dict with path to store results in and config related to encryption :type result_configuration: dict :param client_request_token: Unique token created by user to avoid multiple executions of same query :type client_request_token: str :return: str .. method:: check_query_status(self, query_execution_id) Fetch the status of submitted athena query. Returns None or one of valid query states. :param query_execution_id: Id of submitted athena query :type query_execution_id: str :return: str .. method:: get_state_change_reason(self, query_execution_id) Fetch the reason for a state change (e.g. error message). Returns None or reason string. :param query_execution_id: Id of submitted athena query :type query_execution_id: str :return: str .. method:: get_query_results(self, query_execution_id) Fetch submitted athena query results. returns none if query is in intermediate state or failed/cancelled state else dict of query output :param query_execution_id: Id of submitted athena query :type query_execution_id: str :return: dict .. method:: poll_query_status(self, query_execution_id, max_tries=None) Poll the status of submitted athena query until query state reaches final state. Returns one of the final states :param query_execution_id: Id of submitted athena query :type query_execution_id: str :param max_tries: Number of times to poll for query state before function exits :type max_tries: int :return: str .. method:: stop_query(self, query_execution_id) Cancel the submitted athena query :param query_execution_id: Id of submitted athena query :type query_execution_id: str :return: dict