Кэширование данных в дашбордах
Для ускорения работы SDP BI (Superset) использует кэширование данных в диаграммах.
Нажав на три точки в правой верхней части диаграммы, отобразится выпадающее меню, в котором видно какие данные вы просматриваете в текущий момент, и когда они были обновлены.
Если вам необходимо получить самые свежие и актуальные данные, то вы можете принудительно обновить данные, нажав на кнопку Принудительное обновление.
То же самое можно сделать для всего дашборда, нажав на иконку с тремя точками в верхнем правом углу страницы и выбрав пункт Обновить дашборд.
Также можно установить интервал, с которым дашборд будет запрашивать актуальные данные автоматически, выбрав пункт Интервал обновления.
Фоновое кэширование через конфигурационный файл
Продукт поддерживает установку кэширования в фоновом режиме через конфиг файл. В конфиг файле можно использовать одну или все три стратегии кэширования, в том числе для настройки интервала обновления данных внутри кэша.
Поддерживается три стратегии кэширования:
- Кэширование наиболее популярных дашбордов по количеству обращений пользователей к ним. Можно настроить произвольные количество таких дашбордов (топ 5, 10, 15, 20)
- Кэширование дашбордов по тегам. Внутри конфиг файла задается через список тегов дашбордов, которые нужно обновлять и сохранять внутри кэша и интервал подобного действия. Сами теги можно в дальнейшем присваивать дашбордам внутри SDP BI, тем самым передавая им это свойство.
- Кэширование дашбордов по id дашборда. Внутри конфиг файла задается через список id дашбордов, которые нужно обновлять и сохранять внутри кэша, и интервал подобного действия.
Пример кода внутри конфигурационного файла, который можно настроить для получения оптимального результата.
Развернуть исходный код
class CeleryConfig:
beat_schedule = {
'cache-warmup-dash-top-n': {
'task': 'cache-warmup',
'schedule': crontab(minute=1, hour='*'), # @hourly
'kwargs': {
'strategy_name': 'top_n_dashboards',
'top_n': 5,
'since': '7 days ago',
},
},
'cache-warmup-dash-tags': {
'task': 'cache-warmup',
'schedule': crontab(minute=1, hour='*'), # @hourly
'kwargs': {
'strategy_name': 'dashboard_tags',
'tags': ['core', 'warmup'],
},
},
'cache-warmup-dash-ids': {
'task': 'cache-warmup',
'schedule': crontab(minute=1, hour='*'), # @hourly
'kwargs': {
'strategy_name': 'dashboard_ids',
'ids': [1, 2, 3],
},
},
}