郑州西亚斯学院毕业论文(设计)开题报告表
课题 名称 基于Hive的新能源汽车数据仓库管理系统的设计与实现 课题 来源 学校课题及自选课题 课题 类型 工程实践 指导 教师 付接递 职称/学位 硕士 学生 姓名 徐东升 学号 2020105410243 专业 信息与计算机科学(智能信息处理方向) 班级 2班 一、调研资料准备 对企业进行实地调研,做好需求分析;走访相关企业了解企业的需求以及应用场景,与相关负责人沟通存在的问题,针对于问题做好合理的规划与设计;通过查阅相关资料信息如万方数据等学术网站相关论文内容,分析与研究新能源汽车数据仓库管理系统的功能,并且查阅相关系统开发知识,与指导教师沟通系统设计思路与功能。 二、设计的目的、要求、思路与预期成果 (1)设计目的 本次设计一个基于Hive的新能源汽车数据仓管理系统。企业管理员登录系统后可以在汽车保养时,根据这些汽车内置传感器传回的数据分析其故障原因,以便维修人员更加及时准确处理相关的故障问题。或者对这些数据分析之后向车主进行预警提示车主注意保养汽车,以提高汽车行驶的安全系数。 (2)设计要求 利用Flume进行分布式的日志数据采集,Kafka实现高吞吐量的数据传输,DateX进行数据清洗、转换和整合,MySQL存储结构化数据,HDFS存储大规模原始日志数据,Hive进行数据仓库查询和分析,Spark进行分布式数据计算,Dolphinscheduler进行全流程调度管理,帆软BI工具实现可视化大屏展示。实现数据采集、传输、清洗、存储、查询、计算、调度和展示全流程功能。提供监控、数据质量管理、多维度数据分析等功能。 (3)设计思路 新能源汽车数据仓库管理系统,主要服务于新能源汽车车主,企业负责本系统的登录维护,在进行工作流调度时设置Admin用户进行环境管理或环境创建,设置普通用户权限进行项目工作流的创建和任务节点的配置,在FineBI中设置管理员账号进行环境的搭建以及对数据进行处理展示,使管理人员能够更加直观的获取想要的数据,企业根据系统中的数据为车主提供相关服务。其设计思路着重于多方位的数据处理,涵盖了全面数据采集、数据清洗和质量保障、大规模数据存储、高效数据管理、数据分析与挖掘、可扩展性与灵活性、用户友好的数据查询与报告、高性能与低延迟等多个方面。整体设计思路旨在打造一套高效、安全、可靠的大数据处理平台,为新能源汽车行业提供全面的数据支持,助力业务决策并确保系统在未来的发展中具备良好的可扩展性和适应性。 (4)预期成果 毕业设计1套(包含项目软件和数据库等)和毕业论文1份(符合学校查重要求的毕业论文)。 三、任务完成的阶段内容及时间安排 2023年11月06日前查看相关资料、技术,准备技术文档,做好需求分析,下发任务书; 2023年12月31日前制定软件开发计划,设计软件部分功能,完成开题报告; 2024年01月06日前进行开题答辩; 2024年03月15日前完成系统开发与测试,进行中期检查; 2024年04月22日前撰写论文初稿、完成后和指导老师沟通修改论文、定稿、进行查重检测; 2024年05月19日前完成所有毕设材料、参加答辩。
完成论文(设计)所具备的条件因素(1)硬件方面:Windows10操作系统电脑一台 (2)软件方面:Linux虚拟机、MySQL数据库、帆软BI。 指导教师签名: 日期:
1.课题类型:设计、论文、其他。
2.课题来源:科研项目、社会服务、其他。
核心算法代码分享如下:
// ORM class for table 'tables04'
// WARNING: This class is AUTO-GENERATED. Modify at your own risk.
//
// Debug information:
// Generated date: Wed Sep 06 13:19:28 CST 2023
// For connector: org.apache.sqoop.manager.MySQLManager
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.mapred.lib.db.DBWritable;
import com.cloudera.sqoop.lib.JdbcWritableBridge;
import com.cloudera.sqoop.lib.DelimiterSet;
import com.cloudera.sqoop.lib.FieldFormatter;
import com.cloudera.sqoop.lib.RecordParser;
import com.cloudera.sqoop.lib.BooleanParser;
import com.cloudera.sqoop.lib.BlobRef;
import com.cloudera.sqoop.lib.ClobRef;
import com.cloudera.sqoop.lib.LargeObjectLoader;
import com.cloudera.sqoop.lib.SqoopRecord;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class tables04 extends SqoopRecord implements DBWritable, Writable {
private final int PROTOCOL_VERSION = 3;
public int getClassFormatVersion() { return PROTOCOL_VERSION; }
protected ResultSet __cur_result_set;
private String expiry_date;
public String get_expiry_date() {
return expiry_date;
}
public void set_expiry_date(String expiry_date) {
this.expiry_date = expiry_date;
}
public tables04 with_expiry_date(String expiry_date) {
this.expiry_date = expiry_date;
return this;
}
private Long num;
public Long get_num() {
return num;
}
public void set_num(Long num) {
this.num = num;
}
public tables04 with_num(Long num) {
this.num = num;
return this;
}
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof tables04)) {
return false;
}
tables04 that = (tables04) o;
boolean equal = true;
equal = equal && (this.expiry_date == null ? that.expiry_date == null : this.expiry_date.equals(that.expiry_date));
equal = equal && (this.num == null ? that.num == null : this.num.equals(that.num));
return equal;
}
public boolean equals0(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof tables04)) {
return false;
}
tables04 that = (tables04) o;
boolean equal = true;
equal = equal && (this.expiry_date == null ? that.expiry_date == null : this.expiry_date.equals(that.expiry_date));
equal = equal && (this.num == null ? that.num == null : this.num.equals(that.num));
return equal;
}
public void readFields(ResultSet __dbResults) throws SQLException {
this.__cur_result_set = __dbResults;
this.expiry_date = JdbcWritableBridge.readString(1, __dbResults);
this.num = JdbcWritableBridge.readLong(2, __dbResults);
}
public void readFields0(ResultSet __dbResults) throws SQLException {
this.expiry_date = JdbcWritableBridge.readString(1, __dbResults);
this.num = JdbcWritableBridge.readLong(2, __dbResults);
}
public void loadLargeObjects(LargeObjectLoader __loader)
throws SQLException, IOException, InterruptedException {
}
public void loadLargeObjects0(LargeObjectLoader __loader)
throws SQLException, IOException, InterruptedException {
}
public void write(PreparedStatement __dbStmt) throws SQLException {
write(__dbStmt, 0);
}
public int write(PreparedStatement __dbStmt, int __off) throws SQLException {
JdbcWritableBridge.writeString(expiry_date, 1 + __off, 12, __dbStmt);
JdbcWritableBridge.writeLong(num, 2 + __off, -5, __dbStmt);
return 2;
}
public void write0(PreparedStatement __dbStmt, int __off) throws SQLException {
JdbcWritableBridge.writeString(expiry_date, 1 + __off, 12, __dbStmt);
JdbcWritableBridge.writeLong(num, 2 + __off, -5, __dbStmt);
}
public void readFields(DataInput __dataIn) throws IOException {
this.readFields0(__dataIn); }
public void readFields0(DataInput __dataIn) throws IOException {
if (__dataIn.readBoolean()) {
this.expiry_date = null;
} else {
this.expiry_date = Text.readString(__dataIn);
}
if (__dataIn.readBoolean()) {
this.num = null;
} else {
this.num = Long.valueOf(__dataIn.readLong());
}
}
public void write(DataOutput __dataOut) throws IOException {
if (null == this.expiry_date) {
__dataOut.writeBoolean(true);
} else {
__dataOut.writeBoolean(false);
Text.writeString(__dataOut, expiry_date);
}
if (null == this.num) {
__dataOut.writeBoolean(true);
} else {
__dataOut.writeBoolean(false);
__dataOut.writeLong(this.num);
}
}
public void write0(DataOutput __dataOut) throws IOException {
if (null == this.expiry_date) {
__dataOut.writeBoolean(true);
} else {
__dataOut.writeBoolean(false);
Text.writeString(__dataOut, expiry_date);
}
if (null == this.num) {
__dataOut.writeBoolean(true);
} else {
__dataOut.writeBoolean(false);
__dataOut.writeLong(this.num);
}
}
private static final DelimiterSet __outputDelimiters = new DelimiterSet((char) 44, (char) 10, (char) 0, (char) 0, false);
public String toString() {
return toString(__outputDelimiters, true);
}
public String toString(DelimiterSet delimiters) {
return toString(delimiters, true);
}
public String toString(boolean useRecordDelim) {
return toString(__outputDelimiters, useRecordDelim);
}
public String toString(DelimiterSet delimiters, boolean useRecordDelim) {
StringBuilder __sb = new StringBuilder();
char fieldDelim = delimiters.getFieldsTerminatedBy();
__sb.append(FieldFormatter.escapeAndEnclose(expiry_date==null?"null":expiry_date, delimiters));
__sb.append(fieldDelim);
__sb.append(FieldFormatter.escapeAndEnclose(num==null?"null":"" + num, delimiters));
if (useRecordDelim) {
__sb.append(delimiters.getLinesTerminatedBy());
}
return __sb.toString();
}
public void toString0(DelimiterSet delimiters, StringBuilder __sb, char fieldDelim) {
__sb.append(FieldFormatter.escapeAndEnclose(expiry_date==null?"null":expiry_date, delimiters));
__sb.append(fieldDelim);
__sb.append(FieldFormatter.escapeAndEnclose(num==null?"null":"" + num, delimiters));
}
private static final DelimiterSet __inputDelimiters = new DelimiterSet((char) 44, (char) 10, (char) 0, (char) 0, false);
private RecordParser __parser;
public void parse(Text __record) throws RecordParser.ParseError {
if (null == this.__parser) {
this.__parser = new RecordParser(__inputDelimiters);
}
List
__loadFromFields(__fields);
}
public void parse(CharSequence __record) throws RecordParser.ParseError {
if (null == this.__parser) {
this.__parser = new RecordParser(__inputDelimiters);
}
List
__loadFromFields(__fields);
}
public void parse(byte [] __record) throws RecordParser.ParseError {
if (null == this.__parser) {
this.__parser = new RecordParser(__inputDelimiters);
}
List
__loadFromFields(__fields);
}
public void parse(char [] __record) throws RecordParser.ParseError {
if (null == this.__parser) {
this.__parser = new RecordParser(__inputDelimiters);
}
List
__loadFromFields(__fields);
}
public void parse(ByteBuffer __record) throws RecordParser.ParseError {
if (null == this.__parser) {
this.__parser = new RecordParser(__inputDelimiters);
}
List
__loadFromFields(__fields);
}
public void parse(CharBuffer __record) throws RecordParser.ParseError {
if (null == this.__parser) {
this.__parser = new RecordParser(__inputDelimiters);
}
List
__loadFromFields(__fields);
}
private void __loadFromFields(List
Iterator
String __cur_str = null;
try {
__cur_str = __it.next();
if (__cur_str.equals("null")) { this.expiry_date = null; } else {
this.expiry_date = __cur_str;
}
__cur_str = __it.next();
if (__cur_str.equals("null") || __cur_str.length() == 0) { this.num = null; } else {
this.num = Long.valueOf(__cur_str);
}
} catch (RuntimeException e) { throw new RuntimeException("Can't parse input data: '" + __cur_str + "'", e); } }
private void __loadFromFields0(Iterator
String __cur_str = null;
try {
__cur_str = __it.next();
if (__cur_str.equals("null")) { this.expiry_date = null; } else {
this.expiry_date = __cur_str;
}
__cur_str = __it.next();
if (__cur_str.equals("null") || __cur_str.length() == 0) { this.num = null; } else {
this.num = Long.valueOf(__cur_str);
}
} catch (RuntimeException e) { throw new RuntimeException("Can't parse input data: '" + __cur_str + "'", e); } }
public Object clone() throws CloneNotSupportedException {
tables04 o = (tables04) super.clone();
return o;
}
public void clone0(tables04 o) throws CloneNotSupportedException {
}
public Map
Map
__sqoop$field_map.put("expiry_date", this.expiry_date);
__sqoop$field_map.put("num", this.num);
return __sqoop$field_map;
}
public void getFieldMap0(Map
__sqoop$field_map.put("expiry_date", this.expiry_date);
__sqoop$field_map.put("num", this.num);
}
public void setField(String __fieldName, Object __fieldVal) {
if ("expiry_date".equals(__fieldName)) {
this.expiry_date = (String) __fieldVal;
}
else if ("num".equals(__fieldName)) {
this.num = (Long) __fieldVal;
}
else {
throw new RuntimeException("No such field: " + __fieldName);
}
}
public boolean setField0(String __fieldName, Object __fieldVal) {
if ("expiry_date".equals(__fieldName)) {
this.expiry_date = (String) __fieldVal;
return true;
}
else if ("num".equals(__fieldName)) {
this.num = (Long) __fieldVal;
return true;
}
else {
return false; }
}
}
参考文章
发表评论