Superset缓存配置作用、永久自动刷新仪表盘及缓存机制疑问
Superset生产环境缓存配置与仪表盘刷新问题
背景
我在生产环境部署了多个Superset仪表盘,了解到生产环境推荐使用Redis作为缓存方案。
问题1:FILTER_STATE_CACHE_CONFIG配置的作用
想了解在superset_config.py中添加以下配置的具体效果:
FILTER_STATE_CACHE_CONFIG = { 'CACHE_TYPE': 'RedisCache', 'CACHE_DEFAULT_TIMEOUT': 86400, 'CACHE_KEY_PREFIX': 'superset_filter_', 'CACHE_REDIS_URL': 'redis://localhost:6379/2' }
问题2:实现仪表盘永久自动刷新
如何让Superset仪表盘实现永久自动刷新,而不是仅当前会话有效的临时刷新?
2022年7月26日更新(后续实践)
我已在superset_config.py中配置了多组Redis缓存:
from datetime import timedelta from superset.utils.cache import CacheConfig CACHE_CONFIG: CacheConfig = { 'CACHE_TYPE': 'RedisCache', 'CACHE_DEFAULT_TIMEOUT': int(timedelta(days=1).total_seconds()), 'CACHE_KEY_PREFIX': 'superset_cache_', 'CACHE_REDIS_URL': 'redis://redis:6379/2' } # 数据源元数据与查询结果缓存 DATA_CACHE_CONFIG: CacheConfig = { 'CACHE_TYPE': 'RedisCache', 'CACHE_DEFAULT_TIMEOUT': int(timedelta(days=1).total_seconds()), 'CACHE_KEY_PREFIX': 'superset_data_', 'CACHE_REDIS_URL': 'redis://redis:6379/3' } FILTER_STATE_CACHE_CONFIG: CacheConfig = { 'CACHE_TYPE': 'RedisCache', 'CACHE_DEFAULT_TIMEOUT': int(timedelta(days=1).total_seconds()), 'CACHE_KEY_PREFIX': 'superset_filter_', 'CACHE_REDIS_URL': 'redis://redis:6379/4' } EXPLORE_FORM_DATA_CACHE_CONFIG: CacheConfig = { 'CACHE_TYPE': 'RedisCache', 'CACHE_DEFAULT_TIMEOUT': int(timedelta(days=1).total_seconds()), 'CACHE_KEY_PREFIX': 'superset_explore_', 'CACHE_REDIS_URL': 'redis://redis:6379/5' }
Superset启动成功,刷新仪表盘时能在redis-cli中看到查询记录,但我有个疑问:每次在仪表盘上应用过滤器时,数据都会重新缓存,是否应该为数据源的每个过滤器组合单独缓存一次,以此避免每次都直接访问数据库获取数据?
内容的提问来源于stack exchange,提问作者NikSp
相关产品推荐
相关产品推荐

