背景

日常工作中,有时候领导对某些数据统计感兴趣,会要求分析人员定期取数报送,面对这种需求我们可以设计一个大屏,将领导关注的数据以可视化方式展示;如今,借助 ETLCloud 的“生成Echarts图表H5页面”组件,可以将数据库表中的数据执行一个统计 SQL 然后把数据展示可视化图表通过邮件企业微信、钉钉等直接发送给业务用户,实现报表统计、发送的全自动化

工具选型

Note这里选择的是社区版,采用 Docker 部署方式轻量快速启动docker pull ccr.ccs.tencentyun.com/restcloud/restcloud-etl:V2.2

购买组件

2023-07-03-1-Buy1.jpg
2023-07-03-1-Buy2.jpg
因为“生成Echarts图表H5页面”组件未包含ETLCloud 社区版中,所以先到官方的组件库中选择购买(生成 Echarts 图表 H5 页面的组件是免费的)。在官方的组件库中选择图表统计分析-生成Echarts图表H5页面-点击购买,之后可以在我购买的组件页面查看需要登录)。
2023-07-03-1-Buy3.jpg

安装组件

“生成Echarts图表H5页面”组件购买成功后,可以在 ETLCloud管理后台的“数据处理组件”页面进行安装选择远程安装,会出现购买的组件列表;这里选择安装到通用组件分类下,安装完成后刷新页面
2023-07-03-2-Install.jpg

实践:数据统计-可视化-钉钉发送

接下来进入我们迁移实践:全程零代码可视化、拖拉拽,鼠标点一点即可完成数据统计、图表可视化推送的全流程

数据源

数据源选择之前文章迁移ClickHouse 诗词数据库

-- 柱状图-查询唐诗宋词所有作者作品数量并排序(仅列出作品数量超过1000的作者
SELECT author, count(*) AS count FROM poetry.poetry GROUP BY author HAVING count >=1000 ORDER BY count DESC;

创建应用与流程

创建应用填写基本应用配置信息。接着,创建数据流程,填写信息即可。
创建好流程后,可以通过点击“流程设计按钮进入流程可视化的配置页面。

可视化配置流程

配置流程前,简单介绍这个配置页面的各个区:左侧是组件区,中间顶部功能区,中间的大部分为流程绘制区,双击绘制区的组件,可以看到抽屉风格弹出的组件详细配置项区。

  1. 库表批量输入:ClickHouse

在左侧的输入组件中,选择“库表输入”,拖至中央的流程绘制区,双击进入配置阶段

一步:选择我们配置好的 ClickHouse 数据源,选择 poetry 数据库
2023-07-03-3-CK1.jpg
第二步:配置统计数据的SQL语句
2023-07-03-3-CK2.jpg
第三步:选择最终输出字段
2023-07-03-3-CK3.jpg
第四步:数据预览确认 SQL 语句查询结果信息是否符合预期。
2023-07-03-3-CK4.jpg

  1. 生成Echarts图表H5页面

在左侧的通用组件中,选择“生成Echarts图表H5页面”,拖至中央的流程绘制区,双击进入配置阶段
2023-07-03-4-Echarts.jpg
在H5页面代码填写生成Echarts图表的代码,可参考 Echarts 官方实例完成图表展示;此外要注意上一步统计结果中的字段,这里是 authorcount ,在代码通过 ${} 获取变量值

<!DOCTYPE html>
<html lang="zh-CN" style="height: 100%">

<head>
    <title&gt;柱状图</title&gt;
    <meta charset="utf-8"&gt;
</head&gt;

<body&gt;
    <center>需要修改item.age和item.totalapi返回rows行中的字段id
        <div id="container" style="height: 500px;width:100%;"></div>
    </center>
    <script type="text/javascript" src="https://fastly.jsdelivr.net/npm/echarts@5.4.0/dist/echarts.min.js">
    </script>
    <script type="text/javascript">
        var dom = document.getElementById('container');
        var myChart = echarts.init(dom, null, {
            renderer: 'canvas',
            useDirtyRect: false
        });
        var app = {};
        var option;
        option = {
            xAxis: {
                type: 'category',
                data: [#foreach($item in $data)
                    '$!{item.author}', #end
                ]
            },
            yAxis: {
                type: 'value'
            },
            series: [{
                data: [#foreach($item in $data)
                    '$!{item.count}', #end
                ],
                type: 'bar',
                showBackground: true,
                backgroundStyle: {
                    color: 'rgba(180, 180, 180, 0.2)'
                }
            }]
        };
        if (option &amp;&amp; typeof option === 'object') {
            myChart.setOption(option);
        }
        window.addEventListener('resize', myChart.resize);
    </script>
</body>

</html>
  1. 钉钉消息

在左侧的通用组件中,选择“钉钉消息”,拖至中央的流程绘制区,双击进入配置阶段。关于钉钉如何开启并配置钉钉机器人,这里就不做介绍了。选择 Text 类型消息输入消息内容,这里通过 ${pageurl} 获取上一步生成的图表页面的地址变量值。
2023-07-03-5-DingTalk.jpg
Note:钉钉群里的机器人配置时,要注意关键词消息内容匹配,我这里配置的关键词是:唐诗宋词。

  1. 完善流程

最后通过 流程线开始库表输入生成Echarts图表H5页面钉钉消息结束组件分别连接起来,数据统计、图表可视化、推送的流程配置便告完成,Done~
2023-07-03-6-Flow.jpg

运行流程

保存流程,运行流程;之后可查看对应的流程日志,并可视化监控迁移进度
2023-07-03-8-FlowOK.jpg
Note:通过机器发送到钉钉群里后,链接IP 地址Docker 容器地址,无法直接访问,这里将 IP 换为 Docker 宿主机IP 后,可以在浏览器直接打开展示。
2023-07-03-7-DingTalk.jpg
确认我们的图表是否正确,再从 ClickHouse查询下数据。
2023-07-03-9-CK.jpg

问题记录

运行流程时,出现安装的组件报错问题:也就是说未找见我们自己安装的组件。之后联系了官方技术人员,给我发了一个 ETLGenerateHtmlPage.class 文件放到指定目录cn.restcloud.etl.module.plugin.report 成功运行
2023-07-03-9-Error.jpg

2023-07-03-9-Docker.jpg

# 进入容器
[root@etl ~]# docker exec -it de63b29c71d0 /bin/bash
root@de63b29c71d0:/usr# cd /usr/tomcat/webapps/ROOT/WEB-INF/classes/cn/restcloud/

# 这个目录一开始不存在,先在容器中创建目录
root@de63b29c71d0:/usr/tomcat/webapps/ROOT/WEB-INF/classes/cn/restcloud# mkdir -p etl/module/plugin/report

# 从宿主机复制文件容器指定目录
[root@etl ~]# docker cp /opt/ETLGenerateHtmlPage.class de63b29c71d0:/usr/tomcat/webapps/ROOT/WEB-INF/classes/cn/restcloud/etl/module/plugin/report
                                             Successfully copied 6.14kB to de63b29c71d0:/usr/tomcat/webapps/ROOT/WEB-INF/classes/cn/restcloud/etl/module/plugin/report
# 重启ETLCloud服务
[root@etl ~]# docker restart de63b29c71d0
de63b29c71d0

总结

以上就是使用 ETLCloudClickHouse 中的统计数转换Echarts 图表并发送至钉钉的全部过程实现报表统计、发送的全自动化;同时也体验了一下如何从官方的组件市场安装使用新组件。

Reference


If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!

原文地址:https://blog.csdn.net/u013810234/article/details/131615417

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_43860.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注