第3章 模拟数据
3.1 数据模拟概述
根据数据大屏中的图表组件内容需要,并结合当前主流的大数据存储数据库,向以下目标设备中模拟产生以下数据。
数据库的安装和配置,请参考相关课程资料。
目标设备 | 数据描述 | 粒度 |
Mysql | 每秒的下单和退单数 | 一个时间的下单和退单数是一条数据 |
Redis | 手机品牌的访问热度 | 使用Zset存储所有手机的访问热度值 |
HBase | 各手机品牌在各省份订单的实时成交数据 | 一种手机在一个省某一时刻的下单数和金额是一条数据 |
ElasticSearch | 手机购买客户的背景信息 | 一个顾客是一条数据 |
Clickhouse | 手机订单的实时成交流水 | 一笔流水是一行 |
3.2 数据模拟
本套专栏已经提供了数据模拟程序,可以直接使用。
在数据模拟工具的配置文件application.yml中配置数据库环境的相关信息,其中红色部分为需要修改的参数:
#并行模拟数据的线程数
#并行模拟数据的线程数 dataCount: mockCount: 1 hiveDataCount: 20 sleepMs: logSleep: 1000 redisMockSleep: 1000 mysqlMockSleep: 1000 ckMockSleep: 1000 hbaseMockSleep: 1000 esMockSleep: 1000 dest: logUrl: http://localhost:8080/app redisDataKey: hotphone param: logStr mybatis: configuration: mapUnderscoreToCamelCase: true spring: elasticsearch: uris: http://hadoop102:9200 redis: host: hadoop102 port: 6379 datasource: dynamic: primary: mysql strict: false datasource: mysql: url: jdbc:mysql://hadoop102:3306/gmall_report?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=UTF-8 username: root password: “000000” driver-class-name: com.mysql.cj.jdbc.Driver ck: url: jdbc:clickhouse://hadoop102:8123/default username: password: driver-class-name: ru.yandex.clickhouse.ClickHouseDriver hbase: url: jdbc:phoenix:hadoop102,hadoop103,hadoop104:2181 username: password: driver-class-name: org.apache.phoenix.jdbc.PhoenixDriver
数据模拟程序默认为每个数据库启动一个线程,以1s每条的速率模拟产生对应的数据。如果需要增加数据量,可以修改蓝色标注的参数。
配置文件修改完毕后,可以在命令行使用java -jar 命令启动数据模拟程序。程序执行的计算机需要有Jre运行环境。
3.3 数据查验
开启数据模拟程序后,可以在对应的数据库中查看是否有模拟数据产生。
在Mysql数据库中,会创建名为di的表,数据如下:
在Clickhouse数据库中,会创建名为di的表,数据为7天内的随机一笔订单。数据如下:
在HBase数据库中,会创建名为di的表,数据如下:
在ElasticSearch数据库中,会创建名为di的index,数据如下:
{ “_class” : “com.atguigu.datamock.bean.Customer”, “id” : 0, “name” : “谭妍菁”, “sex” : “女”, “source” : “邮件营销”, “profession” : “电子网络” }
在Redis数据库中,会创建名为hotphone的key,数据如下: