2023年全国职业院校技能大赛
赛题第09套
赛项名称: 大数据应用开发
英文名称: Big Data Application Development
赛项组别: 高等职业教育组
赛项编号: GZ033
背景描述
工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑,工业大数据则是工业互联网实现工业要素互联之后的核心价值创造者。随着大数据行业的发展,工业数据收集呈现时间维度不断延长、数据范围不断扩大、数据粒度不断细化的趋势。以上三个维度的变化使得企业所积累的数据量以加速度的方式在增加,最终构成了工业大数据的集合。
为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综合利用
Hive、Spark、Flink、Vue.js等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。
环境说明:
服务端登录地址详见各任务服务端说明。 补充说明:宿主机及各容器节点可通过Asbru工具或SSH客户端进行SSH访问。 MySQL已在容器的Master中安装完毕,用户名/密码为root/123456 |
本任务需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:
本任务需要使用root用户完成相关配置,安装HBase需要配置Hadoop和ZooKeeper等前置环境。命令中要求使用绝对路径,具体要求如下:
本任务需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:
环境说明:
服务端登录地址详见各任务服务端说明。 补充说明:各节点可通过Asbru工具或SSH客户端进行SSH访问; 主节点MySQL数据库用户名/密码:root/123456(已配置远程连接); Hive的配置文件位于/opt/apache-hive-2.3.4-bin/conf/ Spark任务在Yarn上用Client运行,方便观察日志。 |
编写Scala代码,使用Spark将MySQL库中表EnvironmentData,ChangeRecord,BaseMachine,MachineData,ProduceRecord全量抽取到Hive的ods库中对应表environmentdata,changerecord,basemachine, machinedata, producerecord中。
编写Hive SQL代码,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。
dws.machine_produce_per_avgtime:
字段 |
类型 |
中文含义 |
备注 |
produce_record_id |
int |
生产记录id |
每生产一件产品产生一条数据 |
produce_machine_id |
int |
设备id |
|
producetime |
int |
该产品耗时 |
|
produce_per_avgtime |
int |
设备生产一个产品平均耗时 |
单位:秒 |
字段 |
类型 |
中文含义 |
备注 |
machine_id |
int |
设备id |
|
first_time |
int |
耗时最长 |
|
second_time |
int |
耗时次长 |
字段 |
类型 |
中文含义 |
备注 |
base_id |
int |
检测设备ID |
|
machine_avg |
varchar |
单设备检测平均值 |
|
factory_avg |
varchar |
厂内所有设备平均值 |
|
comparison |
varchar |
比较结果 |
高/低/相同 |
env_date_year |
varchar |
检测年份 |
如:2021 |
env_date_month |
varchar |
检测月份 |
如:12 |
环境说明:
服务端登录地址详见各任务服务端说明。 补充说明:各节点可通过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中的数据并进行相应的数据统计计算。
注:时间语义使用Processing Time。
中文内容及格式必须为示例所示内容。
同一设备3分钟只预警一次。
字段 |
类型 |
中文含义 |
rowkey |
String |
设备id-系统时间(如:123-2023-01-01 12:06:06.001) |
machine_id |
String |
设备id |
out_warning_time |
String |
预警生成时间 预警信息生成时间格式:yyyy-MM-dd HH:mm:ss |
threemin_warning_state_agg表:
字段 |
类型 |
中文含义 |
change_machine_id |
int |
设备id |
totalwarning |
int |
未被处理预警总数 |
window_end_time |
varchar |
窗口结束时间(yyyy-MM-dd HH:mm:ss) |
注:时间语义使用Processing Time。
注:时间语义使用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) |
环境说明:
数据接口地址及接口描述详见各任务服务端说明。 注:所有数据排序按照接口返回数据顺序处理即可,不用特意排序。 |
编写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】中对应的任务序号下。
Flink 任务出现很高的延迟,你会如何入手解决类似问题,将内容编写至客户端桌面【Release\任务F提交结果.docx】中对应的任务序号下。
请简述你对Spark的Job、Stage、Task的理解,它们分别如何划分,将内容编写至客户端桌面【Release\任务F提交结果.docx】中对应的任务序号下。
如果你是工厂技术人员,通过可视化结果你将会对工厂设备优化、排班优化(不限于该角度,考生自行扩展分析角度)做出哪些建议,将内容编写至客户端桌面【Release\任务F提交结果.docx】中对应的任务序号下。