From a2f2500a1816dbb3d68d82b68dd48db21b3a4bb7 Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Thu, 4 May 2017 17:58:16 -0700 Subject: [PATCH] Removing uneeded results_backends.py --- docs/installation.rst | 70 +++++++-- superset/assets/images/tutorial/add_db.png | Bin 0 -> 157717 bytes superset/results_backends.py | 175 --------------------- tests/results_backends_tests.py | 124 --------------- 4 files changed, 58 insertions(+), 311 deletions(-) create mode 100644 superset/assets/images/tutorial/add_db.png delete mode 100644 superset/results_backends.py delete mode 100644 tests/results_backends_tests.py diff --git a/docs/installation.rst b/docs/installation.rst index 71907022e2e9..8cca39edac8a 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -366,28 +366,74 @@ Upgrading should be as straightforward as running:: SQL Lab ------- SQL Lab is a powerful SQL IDE that works with all SQLAlchemy compatible -databases out there. By default, queries are run in a web request, and +databases. By default, queries are executed in the scope of a web +request so they may eventually timeout as queries exceed the maximum duration of a web request in your environment, whether it'd be a reverse proxy or the Superset server itself. -In the modern analytics world, it's not uncommon to run large queries that -run for minutes or hours. +On large analytic databases, it's common to run queries that +execute for minutes or hours. To enable support for long running queries that execute beyond the typical web request's timeout (30-60 seconds), it is -necessary to deploy an asynchronous backend, which consist of one or many -Superset worker, which is implemented as a Celery worker, and a Celery -broker for which we recommend using Redis or RabbitMQ. - -It's also preferable to setup an async result backend as a key value store -that can hold the long-running query results for a period of time. More -details to come as to how to set this up here soon. - -SQL Lab supports templating in queries, and it's possible to override +necessary to configure an asynchronous backend for Superset which consist of: + +* one or many Superset worker (which is implemented as a Celery worker), and + can be started with the ``superset worker`` command, run + ``superset worker --help`` to view the related options +* a celery broker (message queue) for which we recommend using Redis + or RabbitMQ +* a results backend that defines where the worker will persist the query + results + +Configuring Celery requires defining a ``CELERY_CONFIG`` in your +``superset_config.py``. Both the worker and web server processes should +have the same configuration. + +.. code-block:: python + + class CeleryConfig(object): + BROKER_URL = 'redis://localhost:6379/0' + CELERY_IMPORTS = ('superset.sql_lab', ) + CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' + CELERY_ANNOTATIONS = {'tasks.add': {'rate_limit': '10/s'}} + + CELERY_CONFIG = CeleryConfig + +To setup a result backend, you need to pass an instance of a derivative +of ``werkzeug.contrib.cache.BaseCache`` to the ``RESULTS_BACKEND`` +configuration key in your ``superset_config.py``. It's possible to use +Memcached, Redis, S3 (https://pypi.python.org/pypi/s3werkzeugcache), +memory or the file system (in a single server-type setup or for testing), +or to write your own caching interface. Your ``superset_config.py`` may +look something like: + +.. code-block:: python + + # On S3 + from s3cache.s3cache import S3Cache + S3_CACHE_BUCKET = 'foobar-superset' + S3_CACHE_KEY_PREFIX = 'sql_lab_result' + RESULTS_BACKEND = S3Cache(S3_CACHE_BUCKET, S3_CACHE_KEY_PREFIX) + + # On Redis + from werkzeug.contrib.cache import RedisCache + RESULTS_BACKEND = RedisCache( + host='localhost', port=6379, key_prefix='superset_results') + + +Also note that SQL Lab supports Jinja templating in queries, and that it's +possible to overload the default Jinja context in your environment by defining the ``JINJA_CONTEXT_ADDONS`` in your superset configuration. Objects referenced in this dictionary are made available for users to use in their SQL. +.. code-block:: python + + JINJA_CONTEXT_ADDONS = { + 'my_crazy_macro': lambda x: x*2, + } + Making your own build --------------------- diff --git a/superset/assets/images/tutorial/add_db.png b/superset/assets/images/tutorial/add_db.png new file mode 100644 index 0000000000000000000000000000000000000000..728234376b4ca773130a6771430f93ef3402505e GIT binary patch literal 157717 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 literal 0 HcmV?d00001 diff --git a/superset/results_backends.py b/superset/results_backends.py deleted file mode 100644 index 0448d7c390c4..000000000000 --- a/superset/results_backends.py +++ /dev/null @@ -1,175 +0,0 @@ -"""Results backends are used to store long-running query results - -The Abstraction is flask-cache, which uses the BaseCache class from werkzeug -""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -try: - import cPickle as pickle -except ImportError: - import pickle - -import io -import logging - -import boto3 -from werkzeug.contrib.cache import BaseCache - -from superset import app - -config = app.config - - -class S3Cache(BaseCache): - - """S3 cache implementation. - - Adapted from examples in - https://github.com/pallets/werkzeug/blob/master/werkzeug/contrib/cache.py. - - Timeout parameters are ignored as S3 doesn't support key-level expiration. - To expire keys, set up an expiration policy as described in - https://aws.amazon.com/blogs/aws/amazon-s3-object-expiration/. - """ - - def __init__(self, default_timeout=300): - self.default_timeout = default_timeout - - self.s3_client = boto3.client('s3') - - self.bucket = config.get('S3_CACHE_BUCKET') - self.key_prefix = config.get('S3_CACHE_KEY_PREFIX') - - def get(self, key): - """Look up key in the cache and return the value for it. - - :param key: the key to be looked up. - :returns: The value if it exists and is readable, else ``None``. - """ - if not self._key_exists(key): - return None - else: - value_file = io.BytesIO() - - try: - self.s3_client.download_fileobj( - self.bucket, - self._full_s3_key(key), - value_file - ) - except Exception as e: - logging.warn('Error while trying to get key %s', key) - logging.exception(e) - - return None - else: - value_file.seek(0) - return pickle.load(value_file) - - def delete(self, key): - """Delete `key` from the cache. - - :param key: the key to delete. - :returns: Whether the key existed and has been deleted. - :rtype: boolean - """ - if not self._key_exists(key): - return False - else: - try: - self.s3_client.delete_objects( - Bucket=self.bucket, - Delete={ - 'Objects': [ - { - 'Key': self._full_s3_key(key) - } - ] - } - ) - except Exception as e: - logging.warn('Error while trying to delete key %s', key) - logging.exception(e) - - return False - else: - return True - - def set(self, key, value, timeout=None): - """Add a new key/value to the cache. - - If the key already exists, the existing value is overwritten. - - :param key: the key to set - :param value: the value for the key - :param timeout: the cache timeout for the key in seconds (if not - specified, it uses the default timeout). A timeout of - 0 idicates that the cache never expires. - :returns: ``True`` if key has been updated, ``False`` for backend - errors. Pickling errors, however, will raise a subclass of - ``pickle.PickleError``. - :rtype: boolean - """ - value_file = io.BytesIO() - pickle.dump(value, value_file) - - try: - value_file.seek(0) - self.s3_client.upload_fileobj( - value_file, - self.bucket, - self._full_s3_key(key) - ) - except Exception as e: - logging.warn('Error while trying to set key %s', key) - logging.exception(e) - - return False - else: - return True - - def add(self, key, value, timeout=None): - """Works like :meth:`set` but does not overwrite existing values. - - :param key: the key to set - :param value: the value for the key - :param timeout: the cache timeout for the key in seconds (if not - specified, it uses the default timeout). A timeout of - 0 idicates that the cache never expires. - :returns: Same as :meth:`set`, but also ``False`` for already - existing keys. - :rtype: boolean - """ - if self._key_exists(key): - return False - else: - return self.set(key, value, timeout=timeout) - - def clear(self): - """Clears the cache. - - Keep in mind that not all caches support completely clearing the cache. - :returns: Whether the cache has been cleared. - :rtype: boolean - """ - return False - - def _full_s3_key(self, key): - """Convert a cache key to a full S3 key, including the key prefix.""" - return '%s%s' % (self.key_prefix, key) - - def _key_exists(self, key): - """Determine whether the given key exists in the bucket.""" - try: - self.s3_client.head_object( - Bucket=self.bucket, - Key=self._full_s3_key(key) - ) - except Exception: - # head_object throws an exception when object doesn't exist - return False - else: - return True diff --git a/tests/results_backends_tests.py b/tests/results_backends_tests.py deleted file mode 100644 index 146759c5f041..000000000000 --- a/tests/results_backends_tests.py +++ /dev/null @@ -1,124 +0,0 @@ -try: - import cPickle as pickle -except ImportError: - import pickle - -import mock - -from superset import app, results_backends -from .base_tests import SupersetTestCase - -app.config['S3_CACHE_BUCKET'] = 'test-bucket' -app.config['S3_CACHE_KEY_PREFIX'] = 'test-prefix/' - - -class ResultsBackendsTests(SupersetTestCase): - requires_examples = False - - @mock.patch('boto3.client') - def setUp(self, mock_boto3_client): - self.mock_boto3_client = mock_boto3_client - self.mock_s3_client = mock.MagicMock() - - self.mock_boto3_client.return_value = self.mock_s3_client - - self.s3_cache = results_backends.S3Cache() - self.s3_cache._key_exists = ResultsBackendsTests._mock_key_exists - - @staticmethod - def _mock_download_fileobj(bucket, key, value_file): - value_file.write(pickle.dumps('%s:%s' % (bucket, key))) - - @staticmethod - def _mock_key_exists(key): - return key == 'test-key' - - def test_s3_cache_initilization(self): - self.mock_boto3_client.assert_called_with('s3') - - def test_s3_cache_set(self): - result = self.s3_cache.set('test-key', 'test-value') - - self.assertTrue(result) - self.mock_s3_client.upload_fileobj.assert_called_once() - - call_args = self.mock_s3_client.upload_fileobj.call_args_list[0][0] - - self.assertEquals(pickle.loads(call_args[0].getvalue()), 'test-value') - self.assertEquals(call_args[1], 'test-bucket') - self.assertEquals(call_args[2], 'test-prefix/test-key') - - def test_s3_cache_set_exception(self): - self.mock_s3_client.upload_fileobj.side_effect = Exception('Something bad happened!') - result = self.s3_cache.set('test-key', 'test-value') - - self.assertFalse(result) - self.mock_s3_client.upload_fileobj.assert_called_once() - - def test_s3_cache_get_exists(self): - self.mock_s3_client.download_fileobj.side_effect = ( - ResultsBackendsTests._mock_download_fileobj) - result = self.s3_cache.get('test-key') - - self.assertEquals(result, 'test-bucket:test-prefix/test-key') - self.mock_s3_client.download_fileobj.assert_called_once() - - def test_s3_cache_get_does_not_exist(self): - result = self.s3_cache.get('test-key2') - - self.assertEquals(result, None) - self.assertFalse(self.mock_s3_client.download_fileobj.called) - - def test_s3_cache_get_exception(self): - self.mock_s3_client.download_fileobj.side_effect = Exception('Something bad happened') - result = self.s3_cache.get('test-key') - - self.assertEquals(result, None) - self.mock_s3_client.download_fileobj.assert_called_once() - - def test_s3_cache_delete_exists(self): - result = self.s3_cache.delete('test-key') - - self.assertTrue(result) - self.mock_s3_client.delete_objects.assert_called_once_with( - Bucket='test-bucket', - Delete={'Objects': [{'Key': 'test-prefix/test-key'}]} - ) - - def test_s3_cache_delete_does_not_exist(self): - result = self.s3_cache.delete('test-key2') - - self.assertFalse(result) - self.assertFalse(self.mock_s3_client.delete_objects.called) - - def test_s3_cache_delete_exception(self): - self.mock_s3_client.delete_objects.side_effect = Exception('Something bad happened') - result = self.s3_cache.delete('test-key') - - self.assertFalse(result) - self.mock_s3_client.delete_objects.assert_called_once() - - def test_s3_cache_add_exists(self): - result = self.s3_cache.add('test-key', 'test-value') - - self.assertFalse(result) - self.assertFalse(self.mock_s3_client.upload_fileobj.called) - - def test_s3_cache_add_does_not_exist(self): - result = self.s3_cache.add('test-key2', 'test-value') - - self.assertTrue(result) - self.mock_s3_client.upload_fileobj.assert_called_once() - - call_args = self.mock_s3_client.upload_fileobj.call_args_list[0][0] - - self.assertEquals(pickle.loads(call_args[0].getvalue()), 'test-value') - self.assertEquals(call_args[1], 'test-bucket') - self.assertEquals(call_args[2], 'test-prefix/test-key2') - - def test_s3_cache_add_exception(self): - self.mock_s3_client.upload_fileobj.side_effect = Exception('Something bad happened') - result = self.s3_cache.add('test-key2', 'test-value') - - self.assertFalse(result) - self.mock_s3_client.upload_fileobj.assert_called_once()