SQL与NoSQL数据库间的数据查询转换方法研究
2017-07-19张冰冰
张冰冰
(黑龙江省电力医院 微机室,黑龙江 哈尔滨 150090)
SQL与NoSQL数据库间的数据查询转换方法研究
张冰冰
(黑龙江省电力医院 微机室,黑龙江 哈尔滨 150090)
针对现有系统希望扩展其服务从而支持数据的快速增长的问题,提出了一种数据适配器系统来支持包括关系数据库(RDB)和NoSQL数据库的混合数据库架构。在所提出的数据适配器系统中提供了阻塞转换模式(BT模式)、阻塞转储模式(BD模式)和直接访问模式(DA模式)共3种查询模式。在所述的3种查询模式下,通过实验研究分析了不同的数据库大小、不同的表大小和应用程序类型对于数据适配器中应用程序性能的影响。结果表明,在BT模式下,应用程序性能受到最大的影响,且BT模式下的应用程序等待时间最长。
NoSQL;数据适配器;大数据;数据库服务
随着云服务的发展,大数据和混合数据库系统应用广泛,NoSQL数据库对于大数据应用程序越来越受欢迎。大多数现有系统均基于RDB,但随着数据量的增长,企业倾向于使用NoSQL数据库来处理大数据,或需要更快地访问大数据。在原始系统中,应用程序使用SQL与关系数据库交互。由于NoSQL数据库不能被SQL访问,应用程序需要修改设计以访问RDB和NoSQL数据库。本文提出了一种集成RDB和NoSQL数据库的数据适配器系统,其可处理数据库的转换。
1 相关工作
集群是从众多角度来看计算机科学应用的强大架构。Ali[1]等人提供了一个显示在云平台上共享资源安全问题的调查。Hashem[2]等人比较Google、Microsoft、Amazon和Cloudera大数据云平台,并对大数据进行分类,以便用户了解云平台和大数据之间的关系。Chen和Zhang[3]在不同的角度讨论大数据工具,并提出了设计大数据系统的7条原则。Barbierato等人[4]提出了一种通过SIMTHESys框架评估大数据系统性能的方法。关于不同的NoSQL数据库[5]已进行了诸多研究工作,例如BigTable[6]、HBase[7]、MongoDB[8]和Cassandra[9]。本文中HBase作为数据适配器系统中的NoSQL数据库。MapReduce框架[10]在Hadoop上提供可扩展的计算服务。一些研究人员还使用Sqoop作为混合数据库系统中的数据转换器[11-14]。Cho和Garcia-Molina[15]展示了如何刷新自主数据源的本地副本以保持数据的一致性。
2 数据适配器系统
数据适配器系统是高度模块化的,在应用程序和数据库之间分层,其负责同时执行应用程序的查询和数据库之间的数据转换。系统提供SQL接口解析查询语句以访问关系数据库和NoSQL数据库。本文提供了一种控制数据库转换过程的机制,让应用程序执行查询,而无论目标数据(表)是否正在转换。数据转换后,文中提供了一个补丁机制来同步不一致的表。
大多数应用程序通常与关系数据库交互,如图1所示。若开发人员决定使用NoSQL数据库,由于数据与原始关系数据库的增长,需要在这两种数据库之间进行转换。没有提出的系统,开发人员必须停止其服务,修改应用程序设计以连接到NoSQL数据库进行服务扩展或数据分析。为了在执行转换时提供不停止服务,文中提出了数据适配器系统。没有数据适配器,原始系统允许应用程序只连接到关系数据库。图2给出了本文提出的数据适配器系统架构,其包括4个组件:(1)关系数据库;(2)NoSQL数据库;(3)DB适配器;(4)DB转换器。该系统是应用程序和两个数据库之间的协调器,其控制查询流和转换过程。应用程序通过数据库适配器访问数据库,数据库适配器解析查询,提交查询,并从数据库获取结果集。数据适配器系统在执行转换时接受查询,两个数据库中的数据可能不一致。DB适配器将检测并要求DB 转换器执行同步过程以保持数据一致性。
图1 仅具有RDB的初始系统
图2 具有数据适配器及其组件的系统架构
数据适配器系统由两部分组成:DB适配器和DB转换器。DB适配器负责与应用程序、两个数据库和DB转换器通信。DB转换器负责将数据从关系数据库转换为HBase,并同步不一致的表。本文描述每个组件的设计和实现如下:HBase是基于Hadoop框架的可扩展NoSQL数据库。HBase中表的数据模型与MySQL中表的数据模型不同。为解决这一问题,Phoenix被用来创建表作为MySQL表的克隆。Phoenix是HBase的SQL翻译器,其允许熟悉SQL的数据库用户使用常用的SQL命令访问HBase。Phoenix不再创建MapReduce作业,而是使用协处理器访问HBase,并使查询的结果更快地返回。
3 查询方法
图3 数据不一致的示例
3.1 阻塞转换模式(BT模式)
由于读取查询不会影响RDB表,因此对于所有的读取查询,数据适配器将立即执行。故需要专注于处理写查询。在BT模式下,主要策略是数据适配器阻止将影响要转换表的所有查询。BT模式转换流程有3个阶段:等待阶段、转换阶段和结束阶段。等待阶段意味着表保留在RDB中且不被转换。在转换阶段,RDB表被访问并由DB转换器转换为HBase表。同时,若有一个查询想在转换阶段访问转换表,查询将被控制器阻塞,并等待转换完成。在完成阶段,表完成从RDB到HBase的转换。然后,数据适配器将在HBase上修补阻塞的查询。BT模式的性能将受到转换时间的严重影响。
3.2 阻塞转储模式(BD模式)
阻塞转储模式(BD模式)通过进一步将转换级分成转储级和转换级来改进BT模式,其以减少转换时间的影响。转换由转储阶段和转换阶段组成,在转储阶段,表中的数据从RDB转储到HDFS中的转储文件(CSV格式文件),并阻塞查询以防止RDB表和转储文件之间的数据一致性。在转换阶段,Phoenix Bulk Load在HDFS中读取CSV格式文件以创建HBase表。在表完成转换后,其将进入完成阶段。在完成阶段的开始执行补丁过程以在RDB和HBase之间同步表。在BD模式下,转换会导致转换阶段表不一致,但应用程序的查询只会在转储阶段被阻止。其可大幅提高性能,但应用程序仍必须等到转储阶段完成。
3.3 直接访问模式(DA模式)
直接访问模式(DA模式)的策略是隔离应用程序执行和数据库转换过程。应用程序可在任何阶段对RDB执行查询。无论表是在转储阶段还是转换阶段,查询均将立即在RDB上执行,查询将在等待稍后修补的本地队列中。DA模式中的数据不一致问题比BD模式中的问题更严重,因查询结果可能由于转储阶段中的查询中断而部分转换。DA模式使用同步机制来解决数据不一致问题,使应用程序可完全忽略数据转换过程。由于允许查询进入转储阶段,执行的查询和转储器之间的竞争会对RDB性能具有一定影响。
4 实验结果
4.1 评估环境
表1给出了实验环境和配置。在实验中,将此值设置为CPU核心数,即32个映射器,以获得最佳性能。本文还在转储器中将RDB划分为4个拆分/文件,这意味着在所有后续实验中,可在Sqoop导入过程中使用4个映射器。变压器(Phoenix Bulk Load)决定适当数量的映射器以根据数据大小转换数据。数据库包含3个表:书、客户和事务,生成3组不同大小的实验。表2列出了详细信息。基于AWS测试数据方案,查询生成器生成合成读/写查询,读/写查询的比率为50/50。写查询可包含INSERT、UPDATE和DELETE中的一个,将集中讨论实验中的写查询。
表1 环境详细信息
表2 RDB表信息
4.2 DB转换器转换
文中使用3组数据来执行从MySQL到HBase的转换,并测量每个集合的DB转换器的性能。图4给出了没有任何传入查询的DB转换器的转换时间。转换时间受到RDB表大小的影响,集合B、C的时间比集合A的时间长,集合C花费的时间少于集合B,尽管两个集合的大小相同。原因是映射器的数量由Phoenix Bulk Load决定,这取决于输入文件的大小。集合C中的最大表大于集合B中的最大表,因此Phoenix Bulk Load要求更多的计算资源来转换数据,从而减少转换时间。
图4 DB转换器转换时间
4.3 具有多个查询的单个应用程序
图5示出了具有3种查询模式的应用程序周转时间。应用程序在BT模式下完成其作业需最长时间,因查询将被阻止,直到涉及的表完成转换。观察到,当数据大小较大时,数据转换时间较长。与BT模式相比,BD模式与DA模式中的应用周转时间显著下降。虽BD模式在转储阶段阻止了涉及表的查询,但与转换时间相比,转储时间极短。在DA模式下,其不会在转储和转换阶段阻塞任何查询。因此,DA执行比BD模式稍好。在BT模式下,数据大小的影响是明显的,但在BD和DA模式中却不同。因在数据较大时转储时间不会过大,所以对BD模式的影响较小。DA模式在3种模式之间需要最短的周转时间,周转时间几乎接近应用程序执行时间RDB,因DA模式不阻止对应用程序的任何查询。应用周转时间的主要影响因素是不同查询方式的阻塞时间。应用程序周转时间等于应用程序执行时间和应用程序空闲时间的总和。
图5 应用程序周转时间
4.4 多个应用程序行为
对于多个应用程序的行为,发现除了应用程序等待时间之外,结果与单个应用程序实验中的结果相似。对于应用程序等待时间,由于其只考虑应用程序到达时间和何时在系统中执行,文中发现3种模式的结果是不同的,如图6所示。
图6 应用程序等待时间
BT模式的平均应用程序等待时间是3种模式中最长的一种。对在转换过程中提交的每个应用程序的总等待时间进行平均,可以发现BT模式下的等待时间远大于BD模式和DA模式下的时间,因使用写入查询的应用程序在转换中涉及的表被阻止。在应用程序可执行之前,队列中的先前应用程序需要首先执行。若先前的应用程序被阻塞,当前应用程序的等待时间也将受到影响。在BD模式下,由于转换过程中转储时间的比例较短,平均等待时间也较短。在DA模式中,几乎没有等待时间,这是因为应用程序不会被阻止。
5 结束语
本文提出了一种用于混合数据库系统的灵活且高度模块化的数据适配器。该适配器使用通用SQL层接受来自应用程序服务的查询,以便不需要更改原始应用程序的设计。数据适配器还在数据库转换期间控制查询流。此外,还提出了使用3种不同模式(BT、BD和DA模式)的阻塞策略的查询方法,以执行从MySQL到HBase的数据转换。同时,检查影响数据适配器中应用程序性能的因素,包括不同的数据库大小、表大小和应用程序类型。结果表明,数据库和表的大小影响单个应用程序的周转时间。在BT模式下,其受到最大的影响,因在数据转换阶段的长阻塞时间。在BT模式下单个应用程序的等待时间最长,且在DA模式中最短,因为无论数据库转换如何,均可完全执行DA模式中的应用程序。而BT模式下的应用程序等待时间最长。
[1] Ali M,Khan S U,Vasilakos A V.Security in cloud computing:Opportunities and challenges[J]. Information Sciences,2015,30(5):357-383.
[2] Hashem I A T,Yaqoob I,Anuar N B,et al.The rise of "big data" on cloud computing: Review and open research issues[J].Information Systems,2015,47(2):98-115.
[3] Chen C L P,Zhang C Y.Data-intensive applications, challenges, techniques and technologies: a survey on big data[J].Information Sciences,2014,27(5):314-347.
[4] Barbierato E,Gribaudo M,Iacono M.Performance evaluation of NoSQL big-data applications using multi-formalism models[J].Future Generation Computer Systems,2014,37(7):345-353.
[5] Han J,Haihong E,Le G,et al.Survey on NoSQL database[C].Nanjing:6th International Conference on Pervasive Computing and Applications (ICPCA),2011.
[6] Chang F,Dean J,Ghemawat S,et al.Bigtable: a distributed storage system for structured data[J].ACM Transactions on Computer Systems (TOCS),2008(26):4-10.
[7] Vora M N.Hadoop-HBase for large-scale data[C].Berlin:International Conference on Computer Science and Network Technology (ICCSNT), 2011.
[8] Chodorow K.MongoDB:the definitive guide[M].Germy:O'Reilly Media, Inc.,2013.
[9] Lakshman A, Malik P.Cassandra: a decentralized structured storage system[J].ACM SIGOPS Operating Systems Review,2010(44):35-40.
[10] Dean J,Ghemawat S.MapReduce: simplified data processing on large clusters[J].Communications of the ACM,2008,51(3):107-113.
[11] Joldzic O V, Vukovic D R.The impact of cluster characteristics on HiveQL query optimization[C].Moskove:21st Telecommunications Forum (TELFOR),2013.
[12] Leavitt N.Will NoSQL databases live up to their promise[J].Computer,2010,43(7):12-14.
[13] Li C.Transforming relational database into HBase: a case study[C].Shanghai:IEEE International Conference on Software Engineering and Service Sciences (ICSESS),2010.
[14] Rith J,Lehmayr P S,Meyer-wegener K.Speaking in tongues: SQL access to NoSQL systems[C].England:Proceedings of the 29th Annual ACM Symposium on Applied Computing (SAC’14), 2014.
[15] Cho J,Garcia-Molina H.Synchronizing a database to improve freshness[J].ACM Sigmod Record,2000(9):117-128.
Research on Data Query Conversion Between SQL and NoSQL Database
ZHANG Bingbing
(Computer Room,Heilongjiang Electric Power Hospital,Harbin 150090,China)
This paper presents a data adapter system to support a hybrid database architecture that includes relational databases (RDBs) and NoSQL databases, as many existing systems want to expand their services to support the rapid growth of data. Three query modes are provided in the proposed data adapter system: blocking transition mode (BT mode), blocking dump mode (BD mode), and direct access mode (DA mode). In the three query modes, the impact of different database sizes, different table sizes, and application types on application performance in a data adapter was investigated experimentally. The results show that in BT mode, the application performance is affected the most, and the BT application waits for the longest time.
NoSQL;data adapter;big data;database services
2016- 11- 21
张冰冰(1983-),女,工程师。研究方向:计算机数据库。
10.16180/j.cnki.issn1007-7820.2017.08.030
TP391
A
1007-7820(2017)08-109-04