BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по Open-source BI - Apache Superset, Metabase, Redash » Как настроить отправку отчетов на почту в Apache Superset Docker (Reporting and Alerting)

Как настроить отправку отчетов на почту в Apache Superset Docker (Reporting and Alerting)

Описание процесса настройки репортинга в Apache Superset

Alerts и Reports можно настраивать в Apache Superset начиная с версии 1.0.1.

Пользователи могут настраивать автоматические оповещения и отчеты для отправки информационных панелей или диаграмм получателю электронной почты или каналу Slack.

  • Оповещения отправляются при достижении условия SQL
  • Отчеты отправляются по расписанию

Оповещения и отчеты по умолчанию отключены. Чтобы их включить, нужно выполнить некоторые настройки, описанные ниже.

Процесс настройки в этой инструкции будет описан для версии Apache Superset 2.1.1. 

Официальная и полуофициальная документация здесь:

  • https://superset.apache.org/docs/installation/alerts-reports/
  • https://docs.preset.io/docs/alerts-reports
  • YouTube: Apache Superset / Preset : Alerts and report

 

 

Краткая последовательность действий по настройке Reporting в Apache Superset 2.1.1

В этом разделе я опишу верхнеуровнево процесс настройки reporting функциональности и опишу как что работает внутри (опять же без низкоуровневых деталей).

Погнали!

Как выглядит процесс настройки с нуля:

  1. Устанавливаем Apache Superset (подробности здесь)
    • Качаем с github репозиторий
    • Переключаемся на версию 2.1.1
    • Правим версию образа в docker-compose (или используем переменную TAG)
  2. Собираем образ Apache Superset на основе официального с chromedriver или firefox. Здесь нам нужно создать файл Dockerfile и запустить процесс сборки.
  3. В файле superset/docker/pythonpath_dev/superset_config.py необходимо сделать следующие настройки:
  4. Устанавить флаг ALERT_REPORTS = TRUE
  5. Импортировать crontab from celery.schedules import crontab (по умолчанию есть)
  6. Настроить CeleryConfig и другие необходимые настройки Email/Slack configuration
  7. Прописать WebDriver configuration (внутри контейнера используется браузер для производства скриншотов для отправки)
  8. Настроить учетную запись, от которой будут отправляться отчеты (from superset.tasks.types import ExecutorType)
  9. Отключить пробный режим ALERT_REPORTS_NOTIFICATION_DRY_RUN = False
  10. Опционально можно еще настроить взаимосвязь Apache Superset и Apache Airflow (подробнее в документации Schedule Reports). В этой статье Apache Airflow рассматриваться не будет.

 

Общая схема настройки Alerting and Reporting

 

Пара рекомендаций при экспериментах с Docker

В этом разделе мы подробно рассмотрим все шаги с нуля, как начать использовать модуль рассылки отчетов на почту.

 

Отключаем загрузку примеров Superset в конфиге

Если вы запускаете Apache Superset локально, то при развертывании с помощью команды

sudo docker-compose -f docker-compose-non-dev.yml up

 

у вас загружаются примеры дашбордов, датасеты и т.п. Это сильно тормозит локальные эксперименты с Apache Superset. Рекомендую сразу их отключить при первичной настройке, чтобы не тратить время на итерациях из-за скачивания примеров. Когда у вас безошибочно запустится Superset, то можно будет активировать обратно загрузку примеров.

В файле superset/docker/.env-non-dev меняем значение параметра:

SUPERSET_LOAD_EXAMPLES=no

 

По умолчанию стоит yes.

 

Portainer tool

Для удаления контейнеров, образов и volumes я рекомендую использовать Portainer (community edition). Он позволяет в браузере покопаться в ваших контейнерах, в том числе скачать лог контейнера, также удобно в несколько кликов удалить ненужные контейнеры и volumes (если что-то пошло не так) и начать развертывание с начала.

Этот инструмент при настройке не понадобится, это лишь рекомендация по удобной работе с Docker, в том числе на продуктиве (если вы не фанат консоли, конечно ).

 

Chrome: Конфигурация Apache Superset для использования Reporting on Email

Пункт 1. Собираем образ Apache Superset на основе официального с chromedriver

Если вы создаете свой собственный образ или используете официальные образы с версией, отличной от разработки (отсутствует префикс dev, например, apache/superset:2.1.1-dev), вам потребуется веб-драйвер (и автономный браузер) для захвата снимков экрана диаграмм и информационных панелей, которые затем отправляются получателю.

Ниже представлен Dockerfile (название может отличаться), чтобы делать снимки экрана в Chrome:

FROM apache/superset:2.1.1
USER root
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \
libnss3 \
libdbus-glib-1-2 \
libgtk-3-0 \
libx11-xcb1 \
libasound2 \
libxtst6 \
unzip \
wget
RUN apt-get update && \
wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
apt-get install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb && \
rm -f google-chrome-stable_current_amd64.deb
# refer https://googlechromelabs.github.io/chrome-for-testing/
# superset issue https://github.com/apache/superset/issues/25284
RUN export CHROMEDRIVER_VERSION=$(curl --silent https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_STABLE) && \
wget -q https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/${CHROMEDRIVER_VERSION}/linux64/chromedriver-linux64.zip && \
unzip chromedriver-linux64.zip && \
mv chromedriver-linux64/chromedriver /usr/bin/ && \
chmod 755 /usr/bin/chromedriver && \
rm -f chromedriver-linux64.zip && \
rm -f -r chromedriver-linux64
RUN pip install --no-cache gevent psycopg2 redis
USER superset

 

Далее запускаем команду:

sudo docker build -f Dockerfile --force-rm -t chromedriver-superset:2.1.1 .

 

Пункт 2. Настраиваем superset/docker/pythonpath_dev/superset_config.py

Этот конфиг файл замещает настройки по умолчанию. Этот конфиг подключается через файл superset/docker/.env-non-dev:

# Add the mapped in /app/pythonpath_docker which allows devs to override stuff
PYTHONPATH=/app/pythonpath:/app/docker/pythonpath_dev

 

Итак, нам нужно для начала установить необходимый параметр FEATURE_FLAGS (в 2.1.1 уже по умолчанию стоит True):

FEATURE_FLAGS = {
"ALERT_REPORTS": True
}

 

Меняем параметр ALERT_REPORTS_NOTIFICATION_DRY_RUN на False:

ALERT_REPORTS_NOTIFICATION_DRY_RUN = False

 

Устанавливаем два параметра для скриншотов:

SCREENSHOT_LOCATE_WAIT = 100
SCREENSHOT_LOAD_WAIT = 600

 

Устанавливаем параметры для установки внутреннего браузера, почты smtp и slack:

# Slack configuration
SLACK_API_TOKEN = "xoxb-"
# Email configuration
SMTP_HOST = "smtp.yandex.ru" # change to your host
SMTP_PORT = 587 # your port, e.g. 587
SMTP_STARTTLS = True
SMTP_SSL_SERVER_AUTH = True # If your using an SMTP server with a valid certificate
SMTP_SSL = False
SMTP_USER = "your-email-username@yandex.com" # use the empty string "" if using an unauthenticated SMTP server
SMTP_PASSWORD = "your_password_qwerty123" # use the empty string "" if using an unauthenticated SMTP server
SMTP_MAIL_FROM = "your-email-username@yandex.com"
EMAIL_REPORTS_SUBJECT_PREFIX = "[Report] superset-bi.ru" # optional - overwrites default value in config.py of "[Report] "
# WebDriver configuration
# If you use Firefox, you can stick with default values
# If you use Chrome, then add the following WEBDRIVER_TYPE and WEBDRIVER_OPTION_ARGS
WEBDRIVER_TYPE = "chrome"
WEBDRIVER_OPTION_ARGS = [
"--force-device-scale-factor=2.0",
"--high-dpi-support=2.0",
"--headless",
"--disable-gpu",
"--disable-dev-shm-usage",
"--no-sandbox",
"--disable-setuid-sandbox",
"--disable-extensions",
]

 

Заходим в отдельно скачанный репозиторий superset. В ветке 2.1.1 в файле docker-compose-non-dev.yml меняем строку

x-superset-image: &superset-image apache/superset:${TAG:-latest-dev}

 

на

x-superset-image: &superset-image chromedriver-superset:2.1.1

 

Запускаем развертывание apache superset с образом chromedriver-superset

sudo docker-compose -f docker-compose-non-dev.yml up

 

Firefox: Конфигурация Apache Superset для использования Reporting on Email

Dockerfile для Firefox

FROM apache/superset:2.1.1
USER root
ARG GECKODRIVER_VERSION=v0.32.0
ARG FIREFOX_VERSION=106.0.3
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \
libnss3 \
libdbus-glib-1-2 \
libgtk-3-0 \
libx11-xcb1 \
libasound2 \
libxtst6 \
wget
# Install GeckoDriver WebDriver
RUN wget https://github.com/mozilla/geckodriver/releases/download/${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz -O /tmp/geckodriver.tar.gz && \
tar xvfz /tmp/geckodriver.tar.gz -C /tmp && \
mv /tmp/geckodriver /usr/local/bin/geckodriver && \
rm /tmp/geckodriver.tar.gz
# Install Firefox
RUN wget https://download-installer.cdn.mozilla.net/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2 -O /opt/firefox.tar.bz2 && \
tar xvf /opt/firefox.tar.bz2 -C /opt && \
ln -s /opt/firefox/firefox /usr/local/bin/firefox
USER superset

 

Настройки для superset/docker/pythonpath_dev/superset_config.py

Добавляем настройки в superset_config.py

SCREENSHOT_LOCATE_WAIT = 100
SCREENSHOT_LOAD_WAIT = 600
# Slack configuration
SLACK_API_TOKEN = "xoxb-"
# Email configuration
SMTP_HOST = "smtp.yandex.ru" # change to your host
SMTP_PORT = 587 # your port, e.g. 587
SMTP_STARTTLS = True
SMTP_SSL_SERVER_AUTH = True # If your using an SMTP server with a valid certificate
SMTP_SSL = False
SMTP_USER = "your-email-username@yandex.com" # use the empty string "" if using an unauthenticated SMTP server
SMTP_PASSWORD = "your_password_qwerty123" # use the empty string "" if using an unauthenticated SMTP server
SMTP_MAIL_FROM = "your-email-username@yandex.com"
EMAIL_REPORTS_SUBJECT_PREFIX = "[Report] superset-bi.ru" # optional - overwrites default value in config.py of "[Report] "

 

Команда для build локального образа

sudo docker build -f Dockerfile --force-rm -t firefox-superset:2.1.1 .

 

Правим docker-compose файл в репозитории

Заходим в скачанный репозиторий superset. В файле docker-compose-non-dev.yml Меняем строку

x-superset-image: &superset-image apache/superset:${TAG:-latest-dev}

 

на

x-superset-image: &superset-image firefox-superset:2.1.1

 

Запускаем развертывание apache superset с образом firefox-superset

sudo docker-compose -f docker-compose-non-dev.yml up

 

Исходники Dockerfile для версии 2.1.1 для chrome и firefox drivers на GitHub

https://github.com/superset-bi/superset-alerting-reporting-settings

Источник:  Блог superset-bi

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Как сделать красивую табличку в Apache Superset. Как добавить url/link и image
Следующая статья →
Сравнение Apache Superset с Yandex Datalens Open-Source
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Ручная обработка заявок на займы в МФО ДоброЗайм была малоэффективной и приводила к высоким затратам по ФОТ отдела верификации и андеррайтинга. При этом время обработки заявок было высоким, как и количество ошибок под влиянием человеческого фактора. Дополнительные сложности создавал сложный документооборот, обусловленный неконсолидированной кредитной историей и скоринговой оценкой. Все это суммарно мешало масштабированию бизнеса МФО.

  • ПАО «Банк Уралсиб» (Публичное акционерное общество «Банк Уралсиб») — российский коммерческий банк. В 2020 году входил в топ-20 банков РФ по размеру активов (рэнкинг рейтингового агентства Эксперт РА), в 2021 году — в топ-25 крупнейших банков страны по расчётам агрегатора Банки.ру

  • «Лента» – первая по величине сеть гипермаркетов и четвертая среди крупнейших розничных сетей страны. Компания была основана в 1993 г. в Санкт-Петербурге.

    «Лента» управляет 249 гипермаркетами в 88 городах России и 131 супермаркетом в Москве, Санкт-Петербурге, Сибири, Уральском и Центральном регионах с общей торговой площадью около 1 494 тыс. кв. м. Средняя торговая площадь одного гипермаркета «Лента» составляет около 5 500 кв.м, средняя площадь супермаркета – 800 кв.м. Компания оперирует двенадцатью распределительными центрами. Штат компании – около 50, 5 тыс. человек.

  • ООО «Модум-Транс» — независимый оператор грузовых железнодорожных перевозок, лидирующий по количеству инновационного парка на сети РЖД.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.