专栏首页腾讯技术工程官方号的专栏Serverless:云函数 + 小马BI,将报表极速搬上云

Serverless:云函数 + 小马BI,将报表极速搬上云

本文作者:sevenyjluo ,腾讯 CSIG 前端开发工程师

很多业务都需要进行运营数据统计,如统计用户数、调用量等等。相较于传统方式,在拥抱云计算的大潮下,如何借助腾讯云上 PAAS 产品无服务云函数 SCF(Serverless CloudFunction),云数据库(MySQL),以及结合报表可视化工具"小马 BI"(https://xiaoma.tencent.com/#/),来快速开发我们的运营报表呢?

效果展示、架构介绍

运营日报的整体架构如下:

简单概括下,就是通过云函数的定时触发器,每天定时从源数据库(或API接口等)获取数据并处理,之后存到目标数据库。小马 BI 从目标数据库拉取数据进行展示。so easy!

报表效果如下:

第一步、申请注册腾讯云账号

在腾讯云(https://cloud.tencent.com/)上,申请注册一个腾讯云账号。

第二步、购买云 MYSQL(非必需)

腾讯云数据库控制台购买一个数据库,用于存储我们处理后的数据。

(理论上,目标数据库只要位于小马 BI 能访问到的服务器上就行。如果你不想把数据存在云数据库中,您可跳过此步。)

第三步、创建云函数

腾讯云云函数控制台新建云函数。(如若您的MYSQL数据库配置了VPC, 请确保云函数与其位于同一VPC内)。

第四步、开发

接下来就是具体的代码开发,云函数只是帮我集成了各个语言(如 Node Python 等)的运行时。

代码的开发与正常开发别无二致。

在此不再赘述。可以参考SCF 快速入门。

4.1 存量项目迁移

云函数通过指定的函数入口来进行调用。

所以现有项目,只需要入口执行代码改为函数,并在控制台配置相应的函数入口,即可实现无缝迁移。

第五步、部署

代码开发完以后,可以通过手动、命令行工具等方式上传。

配置定时触发器,每天 8 点执行就可以了。

可以通过控制台比较方便地查看日报每天的执行日志:

第六步、配置告警(非必需)

日报执行出错,作为开发人员我们很希望第一时间接收到通知,以便排查。

6.1  通过云监控来配置告警

6.2 通过企业微信机器人

可以通过代码改造,全局捕获错误,将函数执行成功或失败的推送给企业微信机器的回调地址。

效果如下:

第七步、配置小马 BI

处理后的数据存入云数据库以后,在小马 BI 上配置数据库地址为云上数据库(或您的目标数据库)的地址。

之后拖拽组件生成图表就 OK 了。更多配置细节,可参考小马 BI 帮助手册。

写在最后

运营报表上云相较于之前,有以下优势:

1、更方便的重跑日报。当天日报出错。需要重跑的话,只需要通过在控制台点击按钮就能完成,无需登机器。

2、更方便的查看日志。原先查日志都需要登录服务器,现在通过控制台界面就能完成。

3、部署更方便。原先想更改文件,需要通过rz/sz的方式把文件传到机器上,现在结合云函数的命令行工具,可以很方便地进行部署。

4、更方便地监控与提醒。日报出错,通过微信机器人、云监控的告警功能来更方便的提醒。

结合小马 BI 的可视化、推送能力,我们可以很方便、快速地完成运营报表开发。

本文分享自微信公众号 - 腾讯技术工程(Tencent_TEG)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL的主键命名挺任性,就这么定了

    最近在梳理数据生命周期管理的细节时,发现了一个小问题,那就是MySQL的主键命名策略,似乎会忽略任何形式的自定义命名。

    jeanron100
  • 代码分析引擎 CodeQL 初体验

    QL是一种查询语言,支持对C++,C#,Java,JavaScript,Python,go等多种语言进行分析,可用于分析代码,查找代码中控制流等信息。

    madneal
  • 数据湖如何为企业带来9%的高增长?可否取代数据仓库?

    数据湖是一个集中的存储库,允许您以任何规模存储所有结构化和非结构化数据。您可以按原样存储数据,而不必首先构造数据,并运行不同类型的分析—从仪表板和可视化到大数据...

    用户2769421
  • ORDER BY导致未按预期使用索引

    在MySQL中经常出现未按照理想情况使用索引的情况,今天记录一种Order by语句的使用导致未按预期使用索引的情况。

    July
  • Linux 命令(105)—— service 命令

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    Dabelv
  • 今天,我要无条件吹爆这位算法大佬

    大家好,我是帅地,写文章有一年了,这一年里写了150多篇原创文章,主要写「数据结构与算法」,「计算机基础」:包括数据库,计算机网络,Linux等。这这些计算机基...

    用户5224393
  • 华为的数据基础设施革命

    华为在走一条之前没有从未走过的路。继今年9月基于“鲲鹏+昇腾”双引擎全面启航计算战略后,近日华为面向鲲鹏计算产业,宣布全面启动数据基础设施战略。

    AI研习社
  • 经典面试题-什么是ORM?

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明...

    cwl_java
  • FreeSql v0.11 几个实用功能说明

    FreeSql 开源发布快一年了,立志成为 .Net 平台方便好用的 ORM,仓库地址:https://github.com/2881099/FreeSql

    梁规晓
  • 科技公司最爱的50款开源工具,你都用过吗?

    本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施、开发产品。

    用户6543014

扫码关注云+社区

领取腾讯云代金券