Redash
======
********
Overview
********
The ``Redash`` class allows you to interact with a `Redash server `_ to fetch fresh or cached
query results as a Parsons Table.
.. note::
Authentication
The `Redash API `_ has two types of API keys:
*User API keys* which are found on user profile pages, and *Query API keys* which are found on query pages. The
``Redash`` class supports fetching fresh queries with a User API Key, and cached queries with a Query API Key.
**********
Quickstart
**********
When instantiating the ``Redash`` class, you must provide the base URL for your Redash instance, either as the
environmental variable ``REDASH_BASE_URL`` or as a keyword argument.
For fresh queries, a User API Key is also required, and can be specified with either the environmental variable
``REDASH_USER_API_KEY`` or a keyword argument.
.. code-block:: python
from parsons import Redash
# Instantiate class with the base URL and User API key as keyword arguments
redash = Redash(base_url='www.example.com', user_api_key='my_user_api_key')
# Fetch fresh query results
redash.load_to_table(query_id=1001, params={'datelimit': '2020-01-01'})
To fetch cached queries, you must provide a Query API Key, either as the environmental variable ``REDASH_QUERY_API_KEY``
or as a keyword argument. You do not need a User API Key to fetch a cached query.
Note that if you specify a Query API Key when loading a table, the method will fetch cached results even if you
provided a User API Key when instantiating the class.
.. code-block:: python
# Pass a Query API Key to fetch cached results
redash.load_to_table(query_api_key='my_query_api_key', query_id=1001)
***
API
***
.. autoclass :: parsons.redash.Redash
:inherited-members:
:members: