信息与电脑China Computer & Communication数据库技术
流式计算框架下的实时数据库分区技术研究
黎宇轩 范怡敏
(南昌理工学院 计算机信息工程学院,江西 南昌 330044)
摘 要:大数据技术的应用为互联网的发展提供了助力,但其也带来了极高的数据处理压力。它的应用使互联网数据呈现数量级增长。对于数据的后台管理与处置,是保障大数据的根本,尤其是云数据库的正式商用,增加了此过程的难度。基于此,采用流式计算框架,实现数据库的实时分区管理,有效提高数据库服务器的综合负载,从而达到更高效能、更高质量的数据处理。
关键词:流式计算框架;数据库分区;技术分析
中图分类号:TP311.13 文献标识码:A 文章编号:1003-9767(2019)11-149-02
Research on Real-time Database Partition Technology under Streaming
Computing Framework
Li Yuxuan, Fan Yimin
Abstract: The application of big data technology has contributed to the development of the Internet, but it also brings high pressure (School of Computer and Information Engineering, Nanchang Institute of Technology, Nanchang Jiangxi 330044, China)
of data processing. Its application has led to an exponential increase in Internet data. Background management and disposal of data is effectively improve the comprehensive load of the database server, so as to achieve higher efficiency and quality of data processing.
Key words: flow computing framework; database partitioning; technical analysis
the fundamental guarantee of large data, especially the formal commercial use of cloud database, which increases the difficulty of this
process. Based on this, the streaming computing framework is adopted to realize the real-time partition management of the database,
0 引言
数据库对数据的负载能力可能成为大数据技术应用的瓶颈之一。针对此种情况,云环境下,利用M/R架构对数据计算采用一体化批量解决方案是一种可行的办法。但是,实际应用过程中发现,这一架构中的事务性ACID特征无法满足当下的数据扩征趋势,进而对数据库服务器形成局部冲击,同时,存在一定限制,无法纳入数据库计算体系。上述问题,在流式计算框架下,能够有效均衡分配系统,使数据库负载得到更大的利用效能。
平拓展架构单元下,有系统属性与权重的数据库单元独立实现,数据库单元内部形成有效的数据处理流程。具体而言,数据处理内部流程下,按照单一数据库分区的最佳负载形成若干个有效的处理单元,处理单元包括负载预处理和分区算法引擎两个必要体系,并将不同的数据处理单元形成分区策略,在固定时间节点更新,从而完成有效的数据存储。总体设计框架下,本系统主要涉及5项具体功能模块,集群管理模块、数据接入模块、数据处理模块、分区策略与动态管理模块和水平扩展模块。
1 基于流式计算框架的实时分区系统设计
从流式计算框架的基本特征角度来看,当数据接入到数据库集群后,形成有效的集群管理并进行二次分配。集群按照不同数据库的实时分区系统形成有效的水平拓展。不同水
2 实时分区系统实现
以上述功能模块分析设计为基础,利用Storm系统原则开发与实现具体模块,具体过程如下。在数据库总体实现上,调用Storm下的WSPS通用架构进行实现,即在Zook
基金项目:江西省教育厅科学技术研究项目“基于数据库系统的应用与实践研究”(项目编号:GJJ171050)。作者简介:黎宇轩(1982—),男,江西南昌人,硕士研究生,讲师。研究方向:网站开发、电子商务。范怡敏(1981—),女,江西南昌人,硕士研究生,讲师。研究方向:软件工程、数据结构。
— 149 —
数据库技术
MySQL数据存储协议的根本目的。
信息与电脑China Computer & Communication2019年第11期
协议下控制数据接口的Flume与Kalfa框架,最终达到调用
落实到不同的模块,需要通过各自的模块属性分别建立。其中,数据接入模块与数据处置模块并无本质性差异,本文研究中不再展开介绍。集群管理模块实现中,采用Storm有效配置Zookeeper,从而重新计算数据包,并合理划分任务节点。简言之,这一部分设计实现了总体数据的分包处理,将庞大的总体数据流分包为各自具有独立性的数据分包系统,从而实现后续平行扩展数据库分区架构的有效分配。
负载预处理模块的主要功能是实时计算与反馈所属数据库节点的负载情况[1]。实现过程中,采用ReadBolt协议对工作数据包进行负载映射计算,从而反馈实时的工作负载。此种计算模式具有两方面优势:其一,通过负载映射方式表达负载极少占用数据处理的负载区间,进而使数据库将更多的负载资源落实到数据处理层面;其二,负载映射与数据库实际数据处理量正相关,能够为该模块提供高频次的刷新功能,从而保障数据的实时性。落实到具体实现环节上,采用数据库TPCC表查询命令提取垂直的映射信息,如select number、quantity from等。
平行拓展模块的调用遵循权重随机性原则[2],即在相同权重下的数据库群组随机选择。而权重遵循初始化,采用调整的方式进行。调整方式与数据库分区所反馈的负载值正相关。具体实现过程中,初始化系统将全部数据库单元的权重设定为1,获得外部数据包后,随机在权重为1(此时为全部数据库单元)的数据库单元中随机选择。此后,被选择的数据库对全部数据包进行数据处理,并反馈数据库节点的实时负载值,平行拓展模块则调整该数据库的权重值为1+(实时负载×100)/100。当实时负载超过80%时,在权重依旧为“1”的数据库群组中进行二次随机选择,引入另外的平行数据库节点进行数据包的二次分配,从而达到数据库负载均衡。从上述过程中不难发现,利用实时负载的方式,形成了数据库的实时分区功能,而被选定的数据库随着数据运算过程的累加,负载逐步下降,当数据处置完成后,服务器负载恢复到初始状态。
善数据库群组内部的负载分配,从而提高数据处理效能,发挥数据库群组的负载能力。为了进一步认证本系统的有效性,采用传统数据库架构和本文设计的数据库分区系统处理相同数据,以总体负载比例和数据处理时间作为评价依据,认证本系统的有效性与实际效果。具体认证中,分为两组实验数据单元,一组为数据9张表格+5组事务类型数据,一组为90张表格+900字段+50组事务类型数据。对比数据后不难发现,后者在数据结构、数据量上更为庞杂。
实验过程中,利用个人PC系统搭建传统与流式计算框架实时分区数据库系统,分别采用外部数据导入的方式形成稳定的数据流。系统配置、数据导入模式硬件与具体模式不存在显著差异。经过试验对比发现,处置第一组数据时,传统数据库平均负载为32%,负载峰值为87%,总计处理时间为13 s;流式计算框架实时分区数据库系统的平均负载为32%,负载峰值为80%,总计处理时间为12 s。由此可见,流式计算框架实时分区数据库系统能够有效降低数据库的峰值负载,并在客观上提高数据的处置效率。处置第二组数据时,传统数据库平均负载为59%,负载峰值为97%,总计处理时间为113 s;流式计算框架实时分区数据库系统平均负载为56%,负载峰值为80%,总计处理时间为73 s。从这一结果不难发现,流式计算框架实时分区数据库系统降低了负载峰值,减少了处置时间,显著优于传统数据库架构。在两组不同数据的对比中可以发现,数据类型越复杂、数据规模越大,流式计算框架实时分区数据库系统的优势越显著。
4 结 语
本文以流式计算框架为基本理论工具,设计与实现实时分区数据库系统,并通过实际数据对比,分析二者间的差异与有效性。流式计算框架实时分区数据库系统在降低负载峰值和减少处置时间方面,显著优于传统数据库架构,并能够在更为复杂的数据处理情况下发挥更大效能。
参考文献
[1]郭蒙雨,康宏,袁晓洁.基于流式计算框架的实时数据库分区系统[J].计算机工程,2017,43(11):8-15.
[2]孙小涓,石涛,李冰,等.空间科学卫星数据快速处理方法[J].计算机工程与科学,2018,284(8):19-25.
3 系统有效性审核及效果
通过上述设计与实现,基本上完成了基于流式计算框架下的实时数据库分区系统。理论上,应用该系统能够有效改
— 150 —
因篇幅问题不能全部显示,请点此查看更多更全内容