如何将炫酷的报表直接截图发送邮件——在Superset 0.37使用Schedule Email功能
Superset的图表是非常炫酷的,但是原来的版本只能在web端查看,而最新的0.37版本,可以将图表截图直接发送成邮件,非常的方便。
本文将详细介绍Superset 0.37 定时邮件功能。安装过程遇到的任何问题请关注 “实时流式计算” 随时与我联系。所有的离线安装包已经整理好,请后台回复 “superset0928” 下载。
开启邮件功能
superset 0.37的电子邮件功能 默认是关闭的
电子邮件功能允许用户对以下两种电子邮件进行报告:
图表和仪表板(附件或嵌在邮件之中)
图表数据(CSV附件)
vi config.py
开启邮件功能
ENABLE_SCHEDULED_EMAIL_REPORTS = True
要发送电子邮件 还需要配置一下SMTP
EMAIL_NOTIFICATIONS = True
SMTP_HOST = "email-smtp.eu-west-1.amazonaws.com"
SMTP_STARTTLS = True
SMTP_SSL = False
SMTP_USER = "smtp_username"
SMTP_PORT = 25
SMTP_PASSWORD = os.environ.get("SMTP_PASSWORD")
SMTP_MAIL_FROM = "insights@komoot.com"
启动前记得执行 superset init 否则可能看不到菜单
这时候再登录superset,我们可以看到在Manage下有两个新的菜单了
Dashboard Emails 和 Chart Email Schedules
配置Celery
邮件功能需要使用Celery进行定时调度,为了开启Celery,需要在config.py中进行配置。
class CeleryConfig(object):
BROKER_URL = 'redis://localhost:6379/0'
CELERY_IMPORTS = (
'superset.sql_lab',
'superset.tasks',
)
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
CELERYD_LOG_LEVEL = 'DEBUG'
CELERYD_PREFETCH_MULTIPLIER = 10
CELERY_ACKS_LATE = True
CELERY_ANNOTATIONS = {
'sql_lab.get_sql_results': {
'rate_limit': '100/s',
},
'email_reports.send': {
'rate_limit': '1/s',
'time_limit': 120,
'soft_time_limit': 150,
'ignore_result': True,
},
}
CELERYBEAT_SCHEDULE = {
'email_reports.schedule_hourly': {
'task': 'email_reports.schedule_hourly',
'schedule': crontab(minute=1, hour='*'),
},
}
CELERY_CONFIG = CeleryConfig
随后启动celery worker和celery beat
celery worker --app=superset.tasks.celery_app:app --pool=prefork -O fair -c 4
celery beat --app=superset.tasks.celery_app:app
为了更好地监控Celery,建议大家安装flower,这是一个celery的监控,可以清楚的看到celery任务的执行情况。
pip install flower
celery flower --app=superset.tasks.celery_app:app
flower页面:
安装浏览器驱动
为了可以渲染看板,需要在superset所在环境下本地安装浏览器驱动。
驱动的类型在config.py中配置
EMAIL_REPORT_WEBDRIVER = "chrome"
这里安装chrome
从google官方网站下载google chrome安装包
http://www.google.cn/chrome/browser/desktop/index.html
选择linux系统,并下载google-chrome-stable_current_x86_64.rpm
安装:rpm -ivh google-chrome-stable_current_x86_64.rpm
再安装chromedriver
http://chromedriver.chromium.org/
unzip chromedriver_linux64.zip
mv chromedriver /usr/bin/
清注意两者版本一定要保证一致
安装成功输入 chrome 和 chromedriver验证一下
发送邮件
准备工作做好以后,就可以新建一个邮件发送任务了。
发送看板:
可以选择发送的看板,crontab表达式,邮箱,是否发送测试邮件,内联还是附件。。
也可以选择发送图表:
可以选择发送原始数据。
最后,在邮件中接收到看板和图表了~
邮件看板:
邮件图表:
原始数据:
常见错误
接收不到邮件,也没有看到错误提示
请仔细查看celery worker的log日志,如果发送失败会有错误提示。
可能是SMTP或者其他的配置问题。
如果log正常,请注意设置 SCHEDULED_EMAIL_DEBUG_MODE 是不是设置成了True,如果是True将进行调试模式不会真正的发送邮件,要改成False。
Error: Failed dependencies:
Error: Failed dependencies:
libappindicator3.so.1()(64bit) is needed by google-chrome-stable-85.0.4183.121-1.x86_64
liberation-fonts is needed by google-chrome-stable-85.0.4183.121-1.x86_64
libvulkan.so.1()(64bit) is needed by google-chrome-stable-85.0.4183.121-1.x86_64
安装chrome依赖失败,有网的情况下 yum install libappindicator3 等等 依次安装,没网的话只能自行下载
IndexError: pop from empty list
redis.exceptions.AuthenticationError: Authentication required.
redis认证失败,redis设置了密码,但是访问的URL没有设置密码,设置好密码: “redis://xxx:xxx@localhost:6379/0”
想去掉邮件中的Explore in Superset
需要修改源码,位于
anaconda3/lib/python3.7/site-packages/apache_superset-0.37.0-py3.7.egg/superset/tasks/schedules.py
里面有report charts的邮件模板,修改为自己想要的即可。
最新文章
- html基础 2
- http 错误 500.21
- php Internal Server Error
- Activity的四种启动模式详解
- R语言描述性统计常用函数
- mysql 数据库自增id 的总结
- cos-26上传
- Understand Rails Authenticity Token
- 这样就算会了PHP么?-3
- 判断一个key 是否在map中存在
- jQuery全屏插件Textarea Fullscreen
- Life in Changsha 第一次scrum冲刺
- Js中的subStr和subString的区别
- SpringBoot技术栈搭建个人博客【前台开发/项目总结】
- XML语法随记
- js &; parseFloat &; toFixed
- 【整理】Virtualbox中的网络类型(NAT,桥接等),网卡,IP地址等方面的设置
- BZOJ_3224 Tyvj 1728 普通平衡树 【离散化+权值线段树】
- linux基础命令学习 (十一)系统管理命令
- 20145333《Java程序设计》课程总结
热门文章
- 常见面试题之操作系统中的LRU缓存机制实现
- 精讲响应式WebClient第5篇-请求超时设置与异常处理
- Java 实例 - 获取本机ip地址及主机名
- lammps_data文件
- 基于ABP 底层代码生成器
- SSM项目_Eclipse卡进程 一直loading加载spring-xx.xsd/无法加载SpringXSD文件
- 【原创】Kuberneters-ConfigMap的实践
- JAVA中 错误代码是 the public type must be defined in its own file 解决方法 android开发 java编程
- 【HttpRunner v3.x】笔记 ——2. 用脚手架快速创建项目
- 01vue.config.js