首页 > 编程知识 正文

excel数据转换图表(异构数据库整合方式)

时间:2023-05-04 00:57:14 阅读:103476 作者:2276

摘要:针对传统关系数据库在处理海量数据时效率低下的问题,提出了一种基于键值数据库Level DB和传统关系数据库MySQL协同存储的海量数据管理方案,以及两种数据库之间的数据转换方法。首先,分析了两种数据库的特点,提出了异构数据库系统的存储策略。在此基础上,介绍了Level DB到MySQL的数据传输过程和实用的异构数据转换方法。最后给出了一个数据转换的应用实例,结果表明该方法具有良好的可行性和实用价值。

0简介

随着社会节能环保意识的不断增强,能耗监管网关广泛应用于学校、企业等各类大型公共建筑,其运行的核心内容是能耗数据[1]。由于能耗的快速增加,使用单一的传统关系数据库管理系统处理能耗数据存在很大的局限性,因此可以采用多数据库异构数据库系统的处理方案进行协同管理。支持数据管理的数据库产品多种多样,常见的大致可以分为两类,即键值数据库和关系数据库,两者各有利弊。

键值存储模型简单,具有高吞吐量、大容量存储、可扩展性强的特点[2]。它可以作为实时数据库,快速存储感知层上报的能耗数据。由于关系数据库的访问路径对用户透明,数据独立性好,因此关系数据库为数据库用户提供了一种简单、健壮、灵活、高效的结构化数据组织管理方法[3],适用于设计网关平台数据库,为用户提供能耗数据的页面显示和历史数据记录的查询。

将键值数据库与关系数据库相结合,构建能耗监管网关数据管理系统,可以充分发挥各自优势,实现能耗数据的高效存储和访问。本文描述的建筑能耗监控网关采用了关键数据库Level DB关系数据库MySQL的数据存储方案。由于两个数据库的数据存储模型不同,在实际运行环境中,它们之间的数据交换和转换实现数据共享是网关系统运行中不可避免的问题[4]。在描述了数据库系统的体系结构设计后,详细介绍了异构数据转换的方法。

1数据库系统架构

图1显示了数据系统的整体架构。

通过数据上报模板,将采集到的能耗数据自动实时上传到实时数据库,确保数据得到有效处理,支持高效查询服务。数据报表采用统一的JSON格式,实现数据组织、存储、交换的一致性。

网关数据库系统接收并存储感知层上传的能耗数据,并对其进行处理。具体设计分为关键数据库和传统关系数据库两部分。数据库收到数据后,首先将数据存储在实时数据库Level DB中,并根据业务需求将数据存储在相应的数据库中。客户端程序可以通过REST接口将数据上传到页面,实现对能耗数据的实时监控。同时后台程序读取JSON格式的实时数据,进行数据转换,形成相应的CSV文件,批量存储在MySQL中。因此,客户端也可以通过SQL语言接口访问传统的关系数据库MySQL,查询历史数据记录。

数据库访问接口集成了两种封装能耗数据的接口:一种是标准的结构化查询语言SQL接口,用于访问关系数据库MySQL;REST接口用于访问实时数据库Level DB。REST实时数据接口封装了Level DB数据库的API,形成类似关系数据库对象关系映射模型的数据对象接口,隐藏了客户端与不同类型数据库之间的连接细节,简化了用户的数据读写和管理过程

数据传输和存储效率是能耗监管网关非常重要的指标,因此选择合适的数据格式非常重要。作为一种轻量级的数据格式,JSON独立于编程语言和开发平台,易于读取和编码[5]。与传统的XML文件格式相比,JSON格式屏蔽了解析文件的复杂性,缩短了数据传输和存储时间[6]。这些特性使得JSON成为一种理想的数据交换语言,通用密钥数据库支持JSON作为应用开发的数据载体[7]。因此,网关系统选择JSON格式作为传输介质,将能耗数据实时存储在关键数据库Level DB中,并将数据上报给应用层客户端。

网关数据库基于关系数据库MySQL设计,数据的大容量存储采用CSV格式。这是一种用于存储数据的纯文本格式,通常用于读写传统的关系数据库。CSV格式好,主流数据库支持,非常有利于异构数据迁移[8]。

能耗数据上传并存储到实时数据库后,需要传输到平台数据库MySQL,让用户通过服务器访问查询数据记录。图2展示了将能耗数据从实时数据库Level DB导入MySQL的整体过程。

整个过程包括以下四个步骤:

(1)导出实时数据表。能耗数据采集后,从数据资源层上报,存储在实时数据库Level DB中。第一步是从Level DB中取出实时数据,因为是以JSON格式存储的,取出保存后会形成JSON格式的数据文件。

(2)JOSN文件被放入缓冲区。由于两个数据库的读写速度不同,为了让两者协同工作,在处理器中打开一个缓冲区,临时存储交换的数据文件,这样就把存储实时数据表的JSON文件取出来存储在缓冲区中。

(3)数据转换。这是数据传输过程的核心。由于数据转换是在缓冲区内完成的,在导入MySQL之前会判断转换是否成功,不会因为程序执行滞后而导致系统操作受阻。转换程序

执行以后,需要根据文件生成的时间判断转换是否成功。此部分具体的转换程序在本文第3部分会详细叙述。

(4)MySQL是关系数据库,采用SQL语句将CSV文件批量导入MySQL。由于JSON格式保存了字段的值,没有值对应的属性信息,而数据在存入MySQL前,需要根据这些值的属性信息建立对应的数据表。数据表结构用于设置这些属性信息,在CSV数据导入前通过它可以在MySQL中建立对应的数据表,从而完成整个导入流程。文件结构表如表1所示,其中Field栏是字段列名,Type栏中是数据类型,括号中数字表示给字段分配的字节数,PRI表示主键,Default表示默认,NULL表示任何值都能保存。

3 数据转换程序设计

3.1 字段映射关系建立

建立异构数据格式之间的字段映射关系是数据转换的首要步骤,图3所示为字段映射关系示意图。图中上半部分的表格为数据记录的CSV格式,第一行为字段,第二、三、四行是字段内容;图的下半部分为JSON格式,字段和数值在双引号中,中间用冒号隔开,以值对的形式表示,例如“NodeID”:“1001”,多个值对组成一组记录,用大括号“{}”括起来的,每组记录对应CSV文件中每一行记录。在进行数据转换前,根据已知格式文件中的字段建立另一种文件格式的模板。通过读取CSV文件,执行转换程序,并将执行结果插入到数据模板中的相应位置,就可以得到相应JSON文档。

3.2 JSON文件转换成CSV文件

转换过程中,首先读取JSON文件,再利用push函数将每组记录存入临时数组arr[0],arr[2],...,arr[n],最后将各个临时数组作为数据流导入CSV文件,每个数组arr[i]作为一行记录,利用监听函数的记录的导入记录数,判断数据是否准确导入CSV文件,这样就将JSON格式的数据转换保存为CSV格式的文件。此转换过程如图4所示。

4 数据转换应用示例

数据转换程序设计是异构数据导入流程的核心部分,采用JavaScript语言作为数据转换部分的编程语言,软件环境采用在Linux系统中嵌入的Node.js平台。

将网关现场设备采集的数据存入实时数据库Level DB并上报至平台后,后台程序通过该数据转换方法将从实时数据库取出的JSON格式数据(图5所示为设备信息表的一部分)转换成CSV格式后,批量存入关系数据库MySQL。打开MySQL监视器,键入查看命令select*from DevInfo可以查看存入MySQL的设备信息表DevInfo。图6为MySQL监视器中设备信息表DevInfo截图。

5 结论

本文提出了基于键值数据库Level DB和关系数据库MySQL协同存储能耗数据的方案及其异构数据存储格式之间的转换方法。两种异构数据库数据结构不同,后台程序将数据从Level DB转移到MySQL时调用数据转换程序,可以实现两者的无缝对接。本文提出的存储方案和数据转换方法已应用于实际的能源监测系统中且系统运行良好,该方法具有一定的实用价值。

参考文献

[1] 敏感的微笑,jjdds.MySQL与SQL Server数据转换研究与实现[J].电脑开发与应用,2010,23(4):31-32,36.

[2] 周沫.Key value数据库的发展与展望[J].信息与电脑(理论版),2012(7):152-153.

[3] 懵懂的音响.分布式海量空间数据存储结构研究[J].地矿测绘,2014,30(1):16-18,22.

[4] Li Ning, Xu wydzjy, Zhao Xin, et al. Database conversion based on relationship schema mapping[C]. 2011 International Conference on Internet Technology and Applications (iTAP), 2011:1-5.

[5] jldg,现代的高跟鞋.JSON数据传输效率研究[J].计算机工程与设计,2011,32(7):2267-2270.

[6] WEHNER P, PIBERGER C, GOHRINGER D. Using JSON to manage communication between services in the Internet of Things[C]. 2014 9th International Symposium on Reconfigurable and Communication-Centric Systems-on-Chip (ReCoSoC), 2014:1-4.

[7] Liu Zhenhua, HAMMERSCHMIDT B, MCMAHON D. JSON data management-supporting schema-less development in RDBMS[C]. Proceedings of the ACM SIGMOD International Conference on Management of Data, 2014: 1247-1258.

[8] 激昂的裙子.EXCEL到mongoDB数据迁移解决方案[J].信息通信,2013(7):87-88.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。