• day15--统计分析


    day15--统计分析

    谷粒学院功能简介及系统架构 https://www.cnblogs.com/coderD/p/14506161.html

    day01--MybatisPlus的使用 https://www.cnblogs.com/coderD/p/14506180.html

    day02--环境搭建与讲师管理接口开发 https://www.cnblogs.com/coderD/p/14506295.html

    day03--项目前端相关基础知识 https://www.cnblogs.com/coderD/p/14506446.html

    day04--项目前端相关基础知识(二) https://www.cnblogs.com/coderD/p/14506481.html

    day05--讲师管理模块前端开发 https://www.cnblogs.com/coderD/p/14506505.html

    day06--讲师管理模块前端开发 https://www.cnblogs.com/coderD/p/14506540.html

    day07--课程发布-添加课程信息 https://www.cnblogs.com/coderD/p/14506574.html

    day08--课程发布-添加课程信息 https://www.cnblogs.com/coderD/p/14506609.html

    day09--课程列表和整合阿里云视频点播 https://www.cnblogs.com/coderD/p/14506636.html

    day10--微服务调用 https://www.cnblogs.com/coderD/p/14506649.html

    day11--首页数据显示和添加Redis缓冲 https://www.cnblogs.com/coderD/p/14506655.html

    day12--首页登录和注册 https://www.cnblogs.com/coderD/p/14506657.html

    day13--微信扫码登陆 https://www.cnblogs.com/coderD/p/14506670.html

    day14--首页课程和名师功能 https://www.cnblogs.com/coderD/p/14506677.html

    day15--统计分析 https://www.cnblogs.com/coderD/p/14506685.html

    day16--权限管理 https://www.cnblogs.com/coderD/p/14506689.html

    day17--权限管理和配置服务 https://www.cnblogs.com/coderD/p/14506701.html

    1、ECharts

    1.1、简介

    ECharts是百度的一个项目,后来百度把Echart捐给apache,用于图表展示,提供了常规的折线图柱状图散点图饼图K线图,用于统计的盒形图,用于地理数据可视化的地图热力图线图,用于关系数据可视化的关系图treemap旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图仪表盘,并且支持图与图之间的混搭。

    官方网站:https://echarts.baidu.com/

    1.2、基本使用

    入门参考:官网->文档->教程->5分钟上手ECharts

    (1)创建html页面:柱图.html

    (2)引入ECharts

    <!-- 引入 ECharts 文件 -->
    <script src="echarts.min.js"></script>
    

    (3)定义图表区域

    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style=" 600px;height:400px;"></div> 
    

    (4)渲染图表

    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        // 指定图表的配置项和数据
        var option = {
            title: {
                text: 'ECharts 入门示例'
            },
    
            tooltip: {},
            legend: {
                data:['销量']
            },
            
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        };
    
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
    

    1.3、折线图

    实例参考:官网->实例->官方实例 https://echarts.baidu.com/examples/

    折线图.html

    <script>
        var myChart = echarts.init(document.getElementById('main'));
        var option = {
            //x轴是类目轴(离散数据),必须通过data设置类目数据
            xAxis: {
                type: 'category',
                data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
            },
            
            //y轴是数据轴(连续数据)
            yAxis: {
                type: 'value'
            },
    
            //系列列表。每个系列通过 type 决定自己的图表类型
            series: [{
                //系列中的数据内容数组
                data: [820, 932, 901, 934, 1290, 1330, 1320],
    
                //折线图
                type: 'line'
            }]
        };
        myChart.setOption(option);
    </script>
    

    2、Canal介绍

    2.1、应用场景

    在前面的统计分析功能中,我们采取了服务调用获取统计数据,这样耦合度高,效率相对较低,目前我采取另一种实现方式,通过实时同步数据库表的方式实现,例如我们要统计每天注册与登录人数,我们只需把会员表同步到统计库中,实现本地统计就可以了,这样效率更高,耦合度更低,Canal就是一个很好的数据库同步工具。canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL。

    2.2、Canal环境搭建

    canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能

    开启mysql服务: service mysql start

    (1)检查binlog功能是否有开启

    mysql> show variables like 'log_bin';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | log_bin       | OFF    |
    +---------------+-------+
    1 row in set (0.00 sec)
    

    (2)如果显示状态为OFF表示该功能未开启,开启binlog功能

    1,修改 mysql 的配置文件 my.cnf
    vi /etc/my.cnf 
    追加内容:
    log-bin=mysql-bin     #binlog文件名
    binlog_format=ROW     #选择row模式
    server_id=1           #mysql实例id,不能和canal的slaveId重复
    2,重启 mysql:
    service mysql restart   
    3,登录 mysql 客户端,查看 log_bin 变量
    mysql> show variables like 'log_bin';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | log_bin       | ON|
    +---------------+-------+
    1 row in set (0.00 sec)
    ————————————————
    如果显示状态为ON表示该功能已开启
    

    (3)在mysql里面添加以下的相关用户和权限

    CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';
    GRANT SHOW VIEW, SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
    FLUSH PRIVILEGES;
    

    3、下载安装Canal服务

    下载地址:

    https://github.com/alibaba/canal/releases

    (1)下载之后,放到目录中,解压文件

    cd /usr/local/canal

    canal.deployer-1.1.4.tar.gz

    tar zxvf canal.deployer-1.1.4.tar.gz
    

    (2)修改配置文件

    vi conf/example/instance.properties
    
    #需要改成自己的数据库信息
    canal.instance.master.address=192.168.44.132:3306
    
    #需要改成自己的数据库用户名与密码
    canal.instance.dbUsername=canal
    canal.instance.dbPassword=canal
    #需要改成同步的数据库表规则,例如只是同步一下表
    #canal.instance.filter.regex=.*\..*
    canal.instance.filter.regex=guli_ucenter.ucenter_member
    

    注:

    mysql 数据解析关注的表,Perl正则表达式.
    多个正则之间以逗号(,)分隔,转义符需要双斜杠(\) 
    常见例子:
    1.  所有表:.*   or  .*\..*
    2.  canal schema下所有表: canal\..*
    3.  canal下的以canal打头的表:canal\.canal.*
    4.  canal schema下的一张表:canal.test1
    5.  多个规则组合使用:canal\..*,mysql.test1,mysql.test2 (逗号分隔)
    注意:此过滤条件只针对row模式的数据有效(ps. mixed/statement因为不解析sql,所以无法准确提取tableName进行过滤)
    
    

    (3)进入bin目录下启动

    sh bin/startup.sh

  • 相关阅读:
    设计模式
    Lambda表达式
    网络通信
    排序
    可变参数
    反弹shell学习总结
    Apache Flink任意Jar包上传导致远程代码执行漏洞复现
    定时执行rsync同步数据以及mysql备份
    python练习
    django 模型生成sql(多对多)
  • 原文地址:https://www.cnblogs.com/coderD/p/14506685.html
Copyright © 2020-2023  润新知