论文部分内容阅读
智慧城市理念核心思想就是利用计算机技术提高城市竞争力,随着互联网技术的迅速发展,尤其是近年来移动互联网技术的发展,为建设智慧城市提供了数据支撑。用电数据采集系统是采用智能电表对居民用电信息的采集系统,其采集的数据每天可达20GB,使用传统的关系型数据库对这些用电信息存储出现瓶颈,研究一个支持大规模用电数据存储系统是本文的基本需求。电厂发电能量是没办法存储的,电厂只能通过历史数据预测将来的电力使用来发同等的电量,因此需要根据用电历史数据准确的预测用户用电量,为电厂发电量提供准确的指导,同时提供数据统计查询功能,为建设节能减排智慧城市提供数据支撑。为了实现上述提出的需求,本文首先对系统需求做详细分析,将系统需求分解为用电数据采集与存储需求和用电数据分析需求,用电数据分析包括对用电数据进行SQL统计查询分析和用电预测。用电存储系统采用Hadoop分布式文件系统HDFS来作为系统的存储方案,并基于Zookeeper方案提供HDFS高可用性,使系统具备高可靠性、高容错性等特性。用电存储系统数据采集使用开源工具Sqoop来实现将原始关系型数据库中的数据导入到Hadoop分布式文件系统中。用电分析系统分为用电数据统计分析和用电预测两个部分,用电数据统计分析是根据前端页面输入的SQL语句为系统对用电数据提供SQL查询功能,使用SparkSQL作为用电数据统计查询分析方案。用电预测是使用用户历史用电数据,预测用户一天的用电量,本文采用决策树回归模型对用电数据建立用电预测模型,通过皮尔逊系数理论,对用户用电量的因素做相关性分析,将影响因子较大的因素作为决策树回归模型的特征向量,然后使用Spark求解决策树回归模型。使用10-折交叉验证的方法对结果进行误差分析,不断调整决策树回归模型的参数,在模型平均绝对误差和模型求解时间上作出平衡选择,选择在平均绝对误差和求解时间上最平衡的决策树回归模型的参数作为预测决策树的参数。最后在测试环境中对系统的功能和非功能需求进行测试,验证了系统能够满足系统的功能和非功能需求。其中用电预测在选择好决策树的参数后,用电预测值和用电真实值的平均绝对误差能够达到5%以下,模型的求解时间也在可接受到范围内,表明用电预测模型具备可行性。在测试部分还给出使用SparkSQL、Hive分别来做SQL查询的性能比较,结果表明SparkSQL在速度上优于Hive,同时给出了SparkSQL执行SQL查询与直接在数据库中做SQL查询的性能比较,结果表明SparkSQL速度优于数据库。各种测试结果表明,本文在设计上是合理的。