异构数据库系统数据转换方法设计与实现*

2016-01-01 10:56:00陈旭飞于凤芹钦道理江南大学物联网工程学院江苏无锡锐泰节能系统科学有限公司江苏无锡435
网络安全与数据管理 2015年8期
关键词:关系数据库键值字段

陈旭飞,于凤芹,钦道理(.江南大学 物联网工程学院,江苏 无锡 4;.锐泰节能系统科学有限公司,江苏 无锡 435)

异构数据库系统数据转换方法设计与实现*

陈旭飞1,于凤芹1,钦道理2
(1.江南大学 物联网工程学院,江苏 无锡 214122;2.锐泰节能系统科学有限公司,江苏 无锡 214135)

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

异构;能耗数据;存储;数据转换

0 引言

随着社会节能环保意识的不断加强,能耗监管网关被广泛地使用在学校、企业等各种大型公共建筑中,其运行的核心内容就是能耗数据[1]。由于能源消耗的激增,采用单一的传统关系数据库管理系统处理能耗数据存在很大的局限性,因此可以采用多个数据库协同管理的异构数据库系统的处理方案。支持数据管理的数据库产品呈现多样化,比较常见的大体分为两类,分别是键值数据库和关系数据库,两者都有各自的优缺点。

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

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

1 数据库系统架构

图1所示为数据系统整体架构。

图1 数据库系统整体架构

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

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

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

2 异构数据转移流程

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

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

能耗数据上传并存储至实时数据库以后,需要转移到平台数据库MySQL,以便用户通过服务器访问查询数据记录。图2所示为能耗数据从实时数据库Level DB导入MySQL的总体流程。

图2 Level DB数据导入MySQL流程

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

(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表示任何值都能保存。

表1 数据表结构

3 数据转换程序设计

3.1字段映射关系建立

建立异构数据格式之间的字段映射关系是数据转换的首要步骤,图3所示为字段映射关系示意图。图中上半部分的表格为数据记录的CSV格式,第一行为字段,第二、三、四行是字段内容;图的下半部分为 JSON

表1数据表结构格式,字段和数值在双引号中,中间用冒号隔开,以值对的形式表示,例如“NodeID”:“1001”,多个值对组成一组记录,用大括号“{}”括起来的,每组记录对应 CSV文件中每一行记录。在进行数据转换前,根据已知格式文件中的字段建立另一种文件格式的模板。通过读取CSV文件,执行转换程序,并将执行结果插入到数据模板中的相应位置,就可以得到相应JSON文档。

图3 字段映射关系示意图

3.2JSON文件转换成CSV文件

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

图4 JSON文件到CSV文件转换流程

4 数据转换应用示例

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

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

图5 Level DB中JSON格式数据

图6 MySQL监视器截图

5 结论

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

[1]曹洪波,陈扬.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 Bin,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]高静,段会川.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 ReconfigurableandCommunication-CentricSystems-on-Chip (ReCoSoC),2014:1-4.

[7]Liu Zhenhua,HAMMERSCHMIDT B,MCMAHOND.JSONdata management-supporting schema-less development in RDBMS[C].Proceedings of the ACM SIGMOD International ConferenceonManagement of Data,2014:1247-1258.

[8]毛应爽.EXCEL到mongoDB数据迁移解决方案[J].信息通信,2013(7):87-88.

The design and realization of the data conversion method in heterogeneous database system

Chen Xufei1,Yu Fengqin1,Qin Daoli2
(1.School of Internet of Things Engeneering,Jiangnan University,Wuxi 214122,China;2.Reatgreen Energy-saving SystemScience Co.,Ltd.,Wuxi 214135,China)

In consideration of the low efficiency of the traditional relational database when processing massive data,a plan based on key-value database Level DBand traditional relational database MySQL to store and manage the massive data was proposed.The data conversion method between the two databases was also proposed.After analyzing the characteristics of the two databases,a storage strategy based on heterogeneous database was proposed.Based on this strategy,the data transfer process from Level DB to MySQL was introduced,and heterogeneous data conversion method based on practice was presented.Finally,the applied example of data conversion was showed.The result shows that the data conversion method has great feasibility and practical value.

heterogeneous;the data of energy consumption;store;data conversion

TP311.1

A

1674-7720(2015)08-0094-03

2014-11-23)

陈旭飞(1988-),通信作者,男,硕士研究生,主要研究方向:嵌入式系统及机器人。E-mail:chenyxy@163.com。

于凤芹(1962-),女,博士,教授,主要研究方向:基于物联网的能耗感知系统研究与设计、语音和图像等多模态信号分析与处理。

钦道理(1980-),男,硕士,软件工程师,主要研究方向:嵌入式系统科学与节能。

2012 年度教育部-中国移动科研基金项目(MCM20122013)

猜你喜欢
关系数据库键值字段
关系数据库在高炉数据采集系统中的应用
山东冶金(2022年2期)2022-08-08 01:51:30
图书馆中文图书编目外包数据质量控制分析
非请勿进 为注册表的重要键值上把“锁”
一键直达 Windows 10注册表编辑高招
电脑爱好者(2017年9期)2017-06-01 21:38:08
基于索引结构的关系数据库关键词检索
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
关于CNMARC的3--字段改革的必要性与可行性研究
图书馆建设(2014年3期)2014-02-12 15:41:35
一种基于数据图划分的关系数据库关键词检索方法
基于用户反馈的关系数据库关键字查询系统