APP下载

公交动态信息系统之数据库应用——比较数据介接效能

2015-05-08林大杰颜嘉俊李昀蓁

交通信息与安全 2015年3期
关键词:数据库系统数据量公交

林大杰 董 莹 颜嘉俊 李昀蓁

(1.逢甲大学运输科技与管理学系 台湾台中40724;2.逢甲大学资讯工程学系 台湾台中40724)

0 引 言

近年来,随着经济的发展,私人运具不断普及,政府大力推行大众运输,先进大众运输系统(advanced public transport systems,APTS)成为新的焦点话题。而公交动态信息系统作为其中重要的一环其关键性不言而喻。

随着大众运输基础建设不断完善,如今公交路线、车辆的数量已颇为可观,造成了公交动态信息系统需储存、处理大量数据的巨大压力。由于信息需求量越来越大,对公交动态系统而言,系统的负载也越来越重。为了满足民众之需求,系统也需要随着科技而改变进化。

传统的关系型数据库系统已逐渐不能满足处理巨量数据的需求,而与此同时,NoSQL数据库的兴起引起了各界的关注。因其能够处理超巨量数据的特性,NoSQL数据库成为了1个极其热门的新领域,其产品的发展也非常迅速。笔者在文中探讨了2种数据库在数据介接方面的效能优劣。

1 数据库

数据库即1群有关联、有组织数据的集合,以不重复的方式储存,使用者可透过数据库管理系统(database management system,DBMS)进行检索、排序、计算、组织、查询等方式,有效转换成有用的信息。Rick Cattell[1]按照数据储存方式之不同,将数据库区分为 Key-value Stores,Document Stores,Extensible Record Stores,以及relation databases。随着数据处理模式的演进,数据结构不断发展,按照时间发展的顺序可分为:阶层式数据库(hierarchical database)、网状式数据库(network database)、关系型数据库(relational database),以及面向对象式数据库(object-oriented database)、对象关系型数据库(object-relational database)[2]。

关系型数据库是目前最重要的、应用最广泛的1种数据库模型,采用关系型模型作为数据的组织方式[3]。关系型数据库系统的典型代表有Oracle,IBM的DB2,微软的 MS SQL Server,以及Informix,ADABASD等。关系型数据库为了确保数据之完整性及正确性,会依照不同的分类而储存在数个表格之中,再利用字段之间的参考来建立表格之间的关联。每个表格都可以各自进行数据的新增、修改、查询和删除,也可以使用关联性在数个表格中取得所要查询的数据。而若要描述对象与对象之间的复杂关系,则必须外建立1个表格来做处理。而且当数据量越来越多时,必须额外新建更多的表格才足以应付需求。如此,关连式数据库无法记录越来越复杂的数据结构。而且当系统数据量越来越大时,透过主键(primary key)以及外键(foreign key)来查询与处理数据,其执行效率会大大降低。

非关系型数据库(NoSQL),即不同于传统关系型数据库的数据库管理系统的统称。随着Web2.0时代的兴起,传统的关系型数据库在处理超大规模和高并发的SNS类型Web2.0纯动态网站时暴露了许多难以克服问题。致力于处理巨量数据的非关系型数据库应运而生。Eric Evans[4]提出了NoSQL的概念,NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。非关系型数据库强调Key-Value Stores和文文件数据库的优点,并具有极佳的可扩充性。IBM,MICROSOFT,FACEBOOK以及YAHOO GOOGLE等各大厂商纷纷提出云端架构来储存巨量数据以及对巨量数据进行加值运算。现有产品包括Cassandra,MongoDB,HBase与Hadoop[5-7],等等。

总的来说,关系型数据库优势在于发展多年,各种优化工作已经做得很深,便于对数据进行交叉分析,而其劣势在于可扩充性较差,面临巨量数据时,效能较差;非关系型数据库的优势在于可扩充性佳,读写快速,成本较低;其劣势也很明显,未形成一定的标准,支持的特性不够丰富,提供功能比较有限,各种产品层出不穷,内部混乱,现有产品不够成熟,还需时间的检验。

2 公交数据交换技术

目前,台湾已逐渐发展以XML技术架构为基础的数据交换模式,多用于旅行者信息之发布。

图1 公交数据交换流程示意Fig1 Bus data exchange process indicate

公交上设备GPRS Modern将实时行车数据(包括定时数据A1,定点数据A2)透过GPRS基地台传送到地区公交数据中心,数据中心再藉由网络将数据传送给公交动态信息系统,于公交动态信息系统之数据库服务器进行数据的新增、更新、查询、删除。

XML可用来标记数据、定义数据类型,是1种允许用户对自己的标示语言进行定义的源语言,具有弹性结构、容易产生、阅读及传送的优势,适于网络传输见图2。其XML包含3部分,分别为檔宣告(prolog)、根 元 素 (rootelement)以 及 子 元 素 (element)。

范例如下。

图2 XML数据结构示意图Fig2 XML data structure

第1行为文件宣告,「<BusDynInfo>,</Bus-DynInfo>」即为根元素,「<BusInfo>,</BusInfo>」为子元素。

3 数据库测试

3.1 测试设计

现有关系型数据库以及非关系型数据库并无统一的测试标准与工具,因此本文将參考相關操作書籍[8-11]並尽量仿真数据库于公交动态信息系统中介接数据之模式,对SQL Server和MongoDB进行统一测试。就应用端而言,数据介接涉及数据库的2个方面,分别为Insert,用户插入新的数据,及Update,当用户编辑或修改数据库之数据。

笔者采用公交的实际数据作为数据库测试数据,以SQL Server作为关系型数据库之代表,以MongoDB作为非关系型数据库之代表,从使用者应用端的角度出发,主要测试2种数据库之数据介接操作的性能:分为数据库中有少量数据以及有大量数据的情况下,对数据库做插入与更新数据动作,期间测试数据库之运行时间,以此作为衡量两者的标准,分析两种数据库之效能。

本文采取之软件规格:SQL Server 2012;MongoDB,版本2.4.6,以及编程软件 Microsoft Visual C#2010Express。测试环境如下:Windows版本,Windows Server 2008R2Enterprise;处理器,Intel(R)Xeon(R)CPU E5-2620 0@2.00GHz 2.00GHz(2处理器);内存24.0GB;系统类型,64-bit操作系统。

3.2 测试结果分析

数据库内10万笔数据量的情况下,插入并更新1,1 000,5 000,10 000,20 000,30 000,40 000,50 000笔数据,运行时间。

数据库内千万笔数据量的情况下,插入并更新1,1 000,5 000,10 000,20 000,30 000,40 000,50 000笔数据,运行时间。

汇总见表1、表2及图3、图4。

表1 数据库内不同数据量情况下插入数据运行时间Tab.1 Running time of insert data under different circumstances of database within different amounts of data

表2 数据库内不同数据量情况下更新数据运行时间Tab.2 Running time of update data under different circumstances of database within different amounts of data

图3 不同数据量插入不同笔数据运行时间Fig3 Running time of insert different amounts of data under different circumstances of database

图4 不同数据量更新不同笔数据运行时间Fig4 Running time of update different amounts of data under different circumstances of database

由此可以看出,2种数据库都随着插入笔数的增加,其运行时间也在增加;数据库小量数据的情况下,MongoDB之Insert效能较佳;而千万笔数据量基础上,即大量数据的情况下,也是MongoDB之Insert效能有较为显着的优势;也就是说,数据库内数据量越大,则MongoDB在insert方面的优势越明显。

2种数据库之更新笔数则情况有所不同,随着执行笔数的增加,运行时间有增加的趋势,且在数据库小量数据的情况下,SQL Server之update效能较佳,而千万笔数据量基础上,则MongoDB效能有较为明显的优势,即就update而言,MongoDB在数据量较大的情况下,具有较佳的效能。

取更新10万到100万笔数据量的情况,比较数据库更新10 000笔数据的运行时间的变化:

表3 数据库内不同数据量情况下更新10 000笔数据运行时间Tab.3 Running time of update 10 000data under circumstances of database within different amounts of data

图5 不同数据量更新10 000笔数据运行时间Fig4 Running time of update 10 000data under different circumstances of database

由图5可见,MongoDB更新运行时间随着数据库内数据量增加,变化并不明显,而SQL Server随着数据库内数据量增加,其运行时间不断增大,二者差距愈加明显。故可以得出update在小数据量的情况下SQL Server具有一定优势,但随着数据增加,MongoDB的效能会慢慢超越,并且越来越明显。

4 结束语

当数据库内数据量较少时,insert方面,MongoDB具有优势,而update方面则是SQL Server具有优势,但由于数据量少,数据库运行时间较小,所以各自的优势均并不明显。

随着数据库内数据量的增加,MongoDB的优势越来越大,千万数量级数据量情况下,MongoDB具显着优势。

Update于60万笔数据量左右,MongoDB开始反超SQL Server,且也是随着数据量的增加,优势越来越明显,在千万数量级数据量基础上,MongoDB具有显着的优势。当然,其临界值并不一定,而是受实际外在环境的影响,如硬件环境等。本文仅探讨2种数据库的效能特点,变化趋势。

本文从数据库数据介接所涉及的两个基本操作insert以及update,验证非关系型数据库较关系型数据之优势,且其优势会随着数据量的增加而增大。

非关系型数据库MongoDB,在介接数据的时候,其运行时间并不会随着数据量的增加而大幅增加,这个特性不同于关系型数据库SQL Server。

公交动态信息系统之应用层面上,介接公交数据中心之大量数据时,可使用非关系型数据库,以达节省时间,提高系统效能的目的。

[1] CATTELL R.Scalable SQL and NoSQL data stores[J].SIGMOD Rec.,2011,(39):12-27.

[2] 曾守正.数据库系统的回顾与未来研究发展[D].桃园:元智大学,1996.ZENG Shouzheng.Review and research development of the database system[D].Taoyuan:Yuan Ze University,1996.(in Chinese)

[3] CODD E F.A relational model for large shared data banks[J].Communications of the ACM,1983(26):64-69.

[4] LITH A.MATTSSON J.Investigating storage solutions for large data:A comparison of well performing and scalable data storage solutions for real time extraction and batch insertion of data[D].G¨oteborg,Sweden:Chalmers University of Technology,2010.

[5] HUSOO A.SARMA J S,JAIN N,et al,Hive-a petabyte scale data warehouse using Hadoop[C].Proceedings of the 2010IEEE 26th International Conference on Data Engineering,Anchorage,Alaska:IEEE,2010:996-1005.

[6] QIU Zhi,LIN Zhaowen,MA Yan.Research of Hadoop-based data flow management system[J].Science Direct,2011(18):164-168.

[7] Kun Liua,Long-jiang Dong.Research on cloud data storage technology and its[J].Procedia Engineering,2012(29):133-137.

[8] 陈春旭,余明兴,李建全,译.数据库系统概论[M].台北:儒林,1986.CHEN Chunxu,YU Mingxing,LI Jianguan Trans-lated.Database system generality[M].Taipei:Scholars Books Co.,Ltd,1986.(in Chinese)

[9] 曾守正.数据库系统之理论与实务[M].台北:华泰,2007.ZENG Shouzheng.Database Systems Theory and Practice[M].Taipei:Hwa Tai Publishing Co.,Ltd,2007.(in Chinese)

[10] 李春雄.数据库系统理论:使用 SQL Server 2008实作[M].台北:全华,2012.LI Chunxiong.Database systems theory:the use of sql server 2008[M].Taipei:Chuan Hwa Book Co.,Ltd,2012.(in Chinese)

[11] 李绍纶.数据库系统理论:使用 SQL Server 2012[M].台北:上奇信息,2013.LI Shaolun.Database systems theory:the use of sql server 2012[M].Taipei:GrandTech Information Co.,Ltd.,2013.(in Chinese)

猜你喜欢

数据库系统数据量公交
一元公交开进太行深处
基于大数据量的初至层析成像算法优化
计算Lyapunov指数的模糊C均值聚类小数据量法
高刷新率不容易显示器需求与接口标准带宽
宽带信号采集与大数据量传输系统设计与研究
等公交
数据库系统shell脚本应用
微细铣削工艺数据库系统设计与开发
实时数据库系统数据安全采集方案
核反应堆材料数据库系统及其应用