2023年全国职业院校技能大赛
赛题第05套
赛项名称: 大数据应用开发
英文名称: Big Data Application Development
赛项组别: 高等职业教育组
赛项编号: GZ033
背景描述
工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑,工业大数据则是工业互联网实现工业要素互联之后的核心价值创造者。随着大数据行业的发展,工业数据收集呈现时间维度不断延长、数据范围不断扩大、数据粒度不断细化的趋势。以上三个维度的变化使得企业所积累的数据量以加速度的方式在增加,最终构成了工业大数据的集合。
为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用 Hive、Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。
环境说明:
服务端登录地址详见各任务服务端说明。 补充说明:宿主机及各容器节点可通过Asbru工具或SSH客户端进行SSH访问。 |
本任务需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:
本任务需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:
本任务需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:
环境说明:
服务端登录地址详见各任务服务端说明。 补充说明:各节点可通过Asbru工具或SSH客户端进行SSH访问; 主节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 |
编写Scala代码,使用Spark将MySQL库中表ChangeRecord,BaseMachine,MachineData, ProduceRecord全量抽取到Hive的ods库中对应表changerecord,basemachine, machinedata,producerecord中。
编写Scala代码,使用Spark将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。
字段 |
类型 |
中文含义 |
备注 |
machine_id |
int |
设备id |
|
machine_factory |
int |
所属车间 |
|
total_running_time |
int |
运行总时长 |
结果以秒为单位 |
字段 |
类型 |
中文含义 |
备注 |
start_month |
varchar |
月份 |
如:2021-12 |
machine_factory |
int |
车间号 |
|
comparison |
varchar |
比较结果 |
高/低/相同 |
factory_avg |
varchar |
车间平均时长 |
|
company_avg |
varchar |
所有设备平均时长 |
字段 |
类型 |
中文含义 |
备注 |
machine_id |
int |
设备id |
|
record_state |
varchar |
状态信息 |
最近第二次的状态 |
change_start_time |
varchar |
状态开始时间 |
|
change_end_time |
varchar |
状态结束时间 |
环境说明:
服务端登录地址详见各任务服务端说明。 补充说明:各节点可通过Asbru工具或SSH客户端进行SSH访问; 主节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 该任务均使用Scala编写,利用Spark相关库完成。 |
dwd.fact_machine_learning_data表结构:
字段 |
类型 |
中文含义 |
备注 |
machine_record_id |
int |
主键 |
|
machine_id |
double |
设备id |
|
machine_record_state |
double |
设备状态 |
默认0.0 |
machine_record_mainshaft_speed |
double |
主轴转速 |
默认0.0 |
machine_record_mainshaft_multiplerate |
double |
主轴倍率 |
默认0.0 |
machine_record_mainshaft_load |
double |
主轴负载 |
默认0.0 |
machine_record_feed_speed |
double |
进给倍率 |
默认0.0 |
machine_record_feed_multiplerate |
double |
进给速度 |
默认0.0 |
machine_record_pmc_code |
double |
PMC程序号 |
默认0.0 |
machine_record_circle_time |
double |
循环时间 |
默认0.0 |
machine_record_run_time |
double |
运行时间 |
默认0.0 |
machine_record_effective_shaft |
double |
有效轴数 |
默认0.0 |
machine_record_amount_process |
double |
总加工个数 |
默认0.0 |
machine_record_use_memory |
double |
已使用内存 |
默认0.0 |
machine_record_free_memory |
double |
未使用内存 |
默认0.0 |
machine_record_amount_use_code |
double |
可用程序量 |
默认0.0 |
machine_record_amount_free_code |
double |
注册程序量 |
默认0.0 |
machine_record_date |
timestamp |
记录日期 |
|
dwd_insert_user |
string |
||
dwd_insert_time |
timestamp |
||
dwd_modify_user |
string |
||
dwd_modify_time |
timestamp |
ml_result表结构:
字段 |
类型 |
中文含义 |
备注 |
machine_record_id |
int |
主键 |
|
machine_record_state |
double |
设备状态 |
报警为1,其他状态则为0 |
环境说明:
服务端登录地址详见各任务服务端说明。 补充说明:各节点可通过Asbru工具或SSH客户端进行SSH访问; Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。 |
编写Scala代码,使用Flink消费Kafka中的数据并进行相应的数据统计计算。
注:ProduceRecord主题,每生产一个产品产生一条数据;
change_handle_state字段为1代表已经检验,0代表为检验;
时间语义使用Processing Time。
字段 |
类型 |
中文含义 |
rowkey |
String |
设备id-系统时间(如:123-2023-01-01 12:06:06.001) |
machine_id |
String |
设备id |
total_produce |
String |
最近5分钟生产总数 |
注:时间语义使用Processing Time。
change_state_other_to_run_agg表:
字段 |
类型 |
中文含义 |
change_machine_id |
int |
设备id |
last_machine_state |
varchar |
上一状态。即触发本次统计的最近一次非运行状态 |
total_change_torun |
int |
从其他状态转为运行的总次数 |
in_time |
varchar |
flink计算完成时间(yyyy-MM-dd HH:mm:ss) |
注:时间语义使用Processing Time。
环境说明:
数据接口地址及接口描述详见各任务服务端说明。 注:所有数据排序按照接口返回数据顺序处理即可,不用特意排序。 |
编写Vue工程代码,根据接口,用多个饼状图展示OP170B该设备的每天各个状态的持续时长(秒)占比,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。
编写Vue工程代码,根据接口,用基础散点图展示设备运行时长(秒),同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。
编写Vue工程代码,根据接口,用单轴散点图展示各设备加工每件产品所需时长(秒),同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。
编写Vue工程代码,根据接口,用折线图展示设备所处环境的PM2.5浓度的变化,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。
子任务五:用条形图展示每日各设备产量
编写Vue工程代码,根据接口,用条形图展示每日各设备产量,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。
请简述你对维度建模和范式建模的理解以及他们的区别,将内容编写至客户端桌面【Release\任务F提交结果.docx】中对应的任务序号下。
请简述你对Task Slot的理解,将内容编写至客户端桌面【Release\任务F提交结果.docx】中对应的任务序号下。
请简述Flume数据采集是否会导致数据丢失以及其原理,将内容编写至客户端桌面【Release\任务F提交结果.docx】中对应的任务序号下。