收藏 分享(赏)

分布式数据库系统设计研究.pdf

上传人:爱文献爱资料 文档编号:21765675 上传时间:2024-04-25 格式:PDF 页数:4 大小:1.57MB
下载 相关 举报
分布式数据库系统设计研究.pdf_第1页
第1页 / 共4页
分布式数据库系统设计研究.pdf_第2页
第2页 / 共4页
分布式数据库系统设计研究.pdf_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 2023 年第 9 期103计算机应用信息技术与信息化分布式数据库系统设计研究潘忠英1PAN Zhongying 摘要 基于 Shared-Nothing 并行计算架构,选取独立网络计算机、后台服务器、内存及磁盘等硬件,以及Segment Host、Master Host、PostgreSQL、WAN/LAN 的软件技术,建构起面向 OLAP 数据处理的分布式数据库系统,开展 SQL 语义分析器、DDL 语句处理、分布式查询与存储等的功能操作,完成用户数据处理请求、数据库表关联计算的响应执行,提升不同数据资源的分布式处理、存储与备份的工作成效。关键词 OLAP 联机事务处理;分布式;数据库系

2、统;设计 doi:10.3969/j.issn.1672-9528.2023.09.0221.山西工程职业学院 山西太原 0300010 引言利用分布式技术、并行云计算技术,建立具有动态性、可扩展性的分布式实时数据库系统,可依据主节点(Maslernode)、实时数据节点(RTDalanode)、数据采集器和用户客户端等组成模块,对用户输入的 SQL 语句、DDL语句作词法或语法分析,并进行结构化/非结构化数据的采集、功能性命令处理、信息共享与存储,从而实现系统主从节点间的并行任务处理、协调管理。1 分布式数据库系统中涉及的功能性、非功能性需求企业 OLAP 业务场景中存在大量的数据信息,传统

3、GreenPlum 分布式数据库系统,通常使用 SQL 标准语句、SQL 解析器,对不同类型的数据作出定义、统计与操控分析。而本文针对 OLAP 业务场景的功能性、非功能性需求,主要采用DDL语句、DML语句,来完成数据库内数据资源的定义、操纵分析1。1.1 功能性需求(1)数据定义功能(data defi nition language,DDL)。7 MAJOR D P W.Integrating modeling and simulation with test and evaluation activitiesC.Woodland Hills,California:USAF Develo

4、pmental Test and Evaluation Summit,2004:16-18.8 高鑫宇.测试性虚拟验证中的故障建模技术研究D.长沙:国防科学技术大学,2009.9 王立兵,马彦恒,李泽天.PSPICE 仿真的测试性验证方法J.火力指挥控制,2009,34(12),131-134.10 张勇,邱静,刘冠军,等.面向测试性虚拟验证的功能-故障-行为-测试-环境一体化模型 J.航空学报,2012,33(2):273-286.11 TOM S,HARRY W,BJRN F,et al.Efficient code generation ina region-based dynamic

5、binary translatorC/Proceedings of the 2014 SIGPLAN/SIGBED Conference onLanguages,Compilers and Tools for Embedded Systems.Edinburgh,United Kingdom:LCTES,2014:3-12.12 CARSTEN S,FLORIAN M,STEPHAN F.LLBMC:a bounded modelchecker for LLVMs intermediate representationC/International Conference on Tools an

6、d Algorithms for theConstruction and Analysis of Systems.Tallinn,Estonia:ETAPS,2012:542-544.13 HSU C C,HONG D Y,HSU W C,et al.A Dynamic binarytranslation system in a client/server environmentJ.Journal of systems architecture,2015,61(7):307-319.14 董卫宇,刘金鑫,戚旭衍,等.基于热例程的动态二进制翻译优化 J.计算机科学,2016(5):27-41.1

7、5 聂同攀.基于模型的机电系统多物理域仿真技术应用研究 J.航空科学技术,2017(7):68-72.【作者简介】石磊(1978),男,湖南永州人,硕士,中国空空导弹研究院高级工程师,研究方向:弹载软件测试。(收稿日期:2023-03-20 修回日期:2023-04-18)2023 年第 9 期104计算机应用信息技术与信息化数据定义为 MySQL 数据库中 SQL 语句的最常用法,主要用于定义数据表、数据字段、数据库对象等。因此,DDL 语句是用来描述数据或数据库的结构,而不是数据本身,如 DDL语句对数据库定义语言,可表示为 show databases()、select database

8、(),或者 create database if not exists 数据库名 default charset 字符集 collate 排序规则,不同描述信息可被保存至数据字典之中。(2)数据操纵功能(data manipulation language,DML)。数据操纵语言主要围绕数组,将某一数据表、指定字段批量插入到数据库中,包括对数据添加、删除、修改、查询的操纵。因而 DML 语句用于数据表查询、表中记录的修改,可完成复杂数据表、数据列、数据类型的查询及修改操作。1.2 非功能性需求依据企业 OLAP 业务场景中业务量大、数据实时传输的特性,作出分布式数据库系统的非功能性需求分析。(

9、1)大规模数据处理、高效存储。基于 PostgreSQL 数据库的分布式数据处理系统,支持 DDL、DML 等绝大部分的 SQL 标准语法,可兼容企业内部的绝大多数管理系统,所以利用 PostgreSQL 数据库开发的分布式数据库系统,可通过多种扩展组件、并行处理技术,进行海量数据的高效处理、分类存储。(2)数据存储高可扩展性、高并发性。在大数据挖掘技术、云计算技术背景下,分布式数据库系统具有着高可扩展性、高并发性的特点,在存储空间不足时可通过增加主节点、从节点,响应大规模的数据读写、访问请求,使外部用户能够快速、随机地访问自身需要数据,实现对大存储空间、高并发访问的业务执行支持。2 企业 O

10、LAP 业务场景下分布式数据库系统的整体架构2.1 分布式数据库系统的组成架构分布式数据库系统作为企业数据的管理与控制系统,是针对不同用户的数据查询、增加、删除、修改、存储等操作需求,依托于 WAN/LAN 网络、PostgreSQL 数据库、主节点主机(master host)、从节点主机(segment host)、用户客户端等软硬件,建立起分布式数据库系统,2具体系统的整体架构如图 1 所示。图 1 分布式数据库系统的组成架构其中分布式数据库系统在面对大规模数据集时,可执行包括 SQL 语句解析、并行计算的数据处理流程。SQL 语句的语义解析是借助于 SQL 解析器、语义分析器,定义 S

11、QL语法脚本、生成分析引擎,对用户输入的不同数据词法、语法作出分析。之后由 PostgreSQL 数据库根据用户输入的SQL 数据语句,包括 DDL 语句、DMLSQL 语句,若用户输入 DDL 语句,则生成数据分析树、执行 UTILITY 命令处理逻辑;若用户输入 DML 语句,则生成数据查询树、并执行QUERY 命令处理逻辑。因此,PostgreSQL 数据库对企业内SQL 数据信息的解析,整个执行流程如图 2 所示。图 2 PostgreSQL 数据库对企业内 SQL 数据信息的解析流程2.2 分布式数据库系统的业务请求处理流程当前在 OLAP 业务数据处理的场景下,企业建立分布式数据库

12、系统开展数据处理,通常包含数据处理任务分发、子任务执行、结果合并的执行流程。对于分布式数据库系统而言,用户输入 DDL、DML 语句后,应利用功能性、非功能性命令处理模块,进行 SQL 语句的解析及分析、并行计算、结果合并与返回。(1)SQL 语义解析与分析。根据企业用户输入的DDL、DML 语句,利用 SQL 解析器、语义分析器,检查DDL、DML 语句中是否存在不规范语义成分、数据类型,并将不同数据类型分发到多个系统节点、处理模块之中。(2)并行计算处理。基于网络云服务的并行计算思想,将企业数据处理的任务分解成多个子任务,每个子任务都下发到相应的 Segment 节点进行执行,并行计算包括

13、 Map、Reduce 两个阶段3。其中 Map 阶段负责将任务分解为 N 个子任务,Reduce 阶段负责将 N 个子任务排序、归并处理,得到较为客观准确的执行结果。这一执行结果可作为后续操作的子任务,直至所有的数据处理子任务完成后,由 Master 节点合并不同任务并返回至用户客户端。(3)返回结果。按照 DML 语句处理的执行流程,是先借助于 Master 数据库、SQL 解析器、语义分析器,向不同系统主从节点分发 Segment 子任务,得到最终的并行处理结果后重新返回至 Master 数据库,实现对不同业务模块数据的联机处理。2023 年第 9 期105计算机应用信息技术与信息化3

14、分布式数据库系统模块的功能实现基于 Java 语言开发的分布式数据库系统,主要包含 SQL语句解析、网络通信、任务协同处理、分布式查询与存储、数据定义等的功能模块。该系统中可分别由 Master 节点负责DDL 语句处理,由 Segment 负责多个子任务的执行,并及时返回执行结果。3.1 SQL 语义解析分析利用 SQL 解析器、语义分析器,可对系统中用户输入的 SQL 语句作出分析,包括 SQL 语句类型、词法及语义规范成分的分析4。其中 SQL 解析器的 parser 函数,负责 SQL语句的词法、语法分析,而 analysis 函数负责 SQL 语句的语义分析。本文以 SELECT 语

15、句为例,对 SQL 语法解析、语义分析进行说明。用户输入数据作出 SQL 语义解析的执行代码如图 3 所示。图 3 用户输入数据的 SQL 语义解析的执行代码首先借助于 JSQLParser 解析器,将输入 SQL 语句转换为 Java 类的层次结构,包括 Java 对象、select 对象,且将select 对象相关属性,与原有 SQL 语句结构的每个部分进行一一对应,以很好地解析 SQL 语句。而利用 SQL 语义分析器可先判别 DDL、DML 语句的类型,如若 JSQLParser 对 SQL 语句转换后生成的对象为 SE-LECT 类型,则表明该 SQL 语句为 DML 语句,否则为

16、DDL语句。之后检查 SQL 语义的数据表、属性、函数名规范性,包括 FROM 子句解析、Join 语句解析等的执行流程,判断数据表 A 是否为 Table 对象、column list 类型,并通过在 Post-greSQL 数据库中执行 DDL 语句,进行数据对象遍历、列名与函数表达式解析、表信息描述,并将解析完成的数据信息存储至数据库中。3.2 任务协同处理分布式数据库系统中 SQL 语句的执行,通常需要协调各个 Master 节点、Segment 节点,在不同节点上并行运行串行任务,因而任务协同器的使用变得至关重要。当前根据系统内存在的任务 Task、子任务 subTask,由任务协同

17、器分发多个子任务至 Segment 节点,进行并行计算处理,并将任务处理结果返回至 DDL 语句的执行模块5。在不同 SQL 语句任务处理过程中,主要包含任务定义、任务生成与执行等组成内容。其中任务定义是将 Task、Mas-terTask 等任务,分发到 Segment 节点、Master 节点中执行。当下 Task 类、MasterTask 类的数据结构,包括 TaskType、TaskContent、TaskState、TaskResult 等的数据类型,分别对应着 taskType、taskContent、execution Status、result 的数据属性,由此完成不同数据任务

18、内容的定义。而后通过 Master 节点,可将用户请求 SQL 语句解析后生成的 MasterTask 任务、子任务,下发到多个 Segment 节点上,由任务协同参与进行 MasterTask 任务的并发执行。其中任务协同器会针对 MasterTask 的任务类型,找到与之相对应的 MasterHandler 主句柄,并依托 MasterHandler 处理下发的子任务、返回任务处理结果至 DDL 语句处理模块,Task 对象的任务执行代码6如图 4 所示。图 4 SQL 语句中 Task 对象的任务执行代码3.3 分布式查询与存储分布式数据库系统的数据查询、存储操作,是指在 SQL语 句

19、中 利 用 INSERT、DELETE、UPDATE、SELECT 等 语句,对企业现有的数据进行增加、删除、查询、修改的操作,其中数据存取分别对应着分布式查询、分布式存储的功能。通常由任务协同器、任务执行规划模块共同参与,协调多个Master 节点、Segment 节点,负责数据并行处理任务的执行。(1)分布式查询。分布式查询主要利用单表、多表关联的 SELECT 语句,从 PostgreSQL 数据库中提取数据,如选择数据表A和B,作为单表查询、多表关联查询的主要对象。利用 Segment 节点对数据表 A、数据表 B 进行关联计算,生成二者的中间表 mid,然后选择 mid 中间表、表

20、C,重复进行以上的关联计算,直到得出多表关联查询的新的 SELECT语句 new select,并将其作为用户请求的返回结果。多表关联查询的程序执行流程7-8如图 5 所示。2023 年第 9 期106计算机应用信息技术与信息化图 5 多表关联查询的分布式程序执行流程(2)分布式存储。分布式数据存储的关键,是确定不同数据需存放的 Segment 节点,通常针对数据库表内的数据分布方式,选择相应算法进行数据计算,将其存放至不同 IP地址的Segment节点之中,生成MasterTaskType的数据类型9。首先对所有的表按组归类整理,基于 PMMLCG 随机数生成算法、distribution-

21、ey 字段,确定数据库表的分布方式,若 distribution-ey 字段为空,则表明该数据表是随机分布,否则为哈希分布。之后根据分布方式不同,设置数据库表的分布键,并由执行规划模块通过查询 Segment 节点、segment token 表对应的 token 值,计算各 Segment 节点所管理的 token 范围、数据存储的 Hash 值,得出各数据所应存放的 Segment 节点10。4 实验测试与分析本 文 采 用 A、B 两 个 测 试 表,对 分 布 式 数 据 库 系统 的 SQL 解 析、DDL 语 句 处 理、分 布 式 存 储、分 布 式查询等功能进行测试。其中 A,

22、B 两个表的字段设置为id1,id2,namel,name2,分布键设置为 id1。使用以上的 SQL语义解析分析语句,SQL 解析、DDL 语句处理、分布式存储、分布式查询的数据处理流程作出测试,每条 SQL 语句重复分析 1000 次、计算平均时间,得到的单线程、多线程 DDL 语句处理的执行结果11如表 1。表 1 单线程 DDL 语句处理的执行结果DD 语句10 次50 次100 次200 次SQL12.38810.63021.52047.918SQL1 均值0.2390.2130.2150.239SQL20.9383.4787.1041 5.698SQL2 均值0.0940.0690

23、.0710.078DDL 均值0.1660.1410.1430.160从以上 DDL 语句处理执行结果可以得出:单线程环境下DDL语句处理的时间恒定,且对比SQL1、SQL2均值发现,处理时间的长短与 DDL 语句有着紧密的关联性,单条 DDL语句的执行时间在 0.15 s 左右,能够满足多数用户的 Master节点、Segment 节点数据处理需求。但随着数据表并发访问量的增多,多线程 DDL 语句处理的系统响应时间显著增加。当并发数达到 200 时,SQL1 平均响应时间已超过 8 s、SQL2平均响应时间也达到 2.7 s,已经难以满足多数用户的数据处理需求,这一情况下需要通过硬件设备更

24、换、合理设置与分配任务节点来解决,才能有效保证系统的并发访问能力12。4 结语随着互联网信息交互、人工智能技术等的不断发展,传统关系型数据库已难以满足海量化数据的检索、处理与存储需求,这一情况下联机事务处理(OLAP)作为企业数据服务及决策的重要方式,可被引入到内部数据的查询、处理与存储工作之中,完成海量数据资源的定义及操作。因而企业数据的分布式定义、查询与存储等功能的实现,需要由多个系统节点共同参与,针对用户的数据访问、查询检索与使用的任务请求,设计出用于 DDL 语句处理、单表查询、多表关联查询与优化的分布式数据库系统,作出不同类别数据资源的采集、处理、分析与存储。参考文献:1 奚军庆,李

25、绍俊,李波.分布式系统设计中 NewSQL 数据库技术的应用 J.长江信息通信,2021(5):64-67.2 牛晓丽.物联网大数据存储与管理技术研究 J.电脑编程技巧与维护,2020(2):67-68+71.3 戴牡红.大数据时代数据库系统课程建设研究与实践 J.软件工程,2019(7):44-46.4 徐述,汪彦,曾海洋,等.大数据应用下的新型分布式数据库 NewSQLJ.数字技术与应用,2018(8):51-52.5 武朝尉.利用 NewSQL 融合数据库构建数据资源库的探讨J.信息系统工程,2022(4):71-76.6 张晗.数据库技术在交互艺术设计中的应用研究 J.电子世界,202

26、1(6):21-22.7 刘文洁,李戬勃,李战怀,等.一种面向金融应用的海量分布式关系数据库 J.华中科技大学学报(自然科学版),2019(2):121-126.8 高锦涛,李战怀,杜洪涛,等.分布式数据库下基于剪枝的并行合并连接策略 J.软件学报,2019,30(11):3364-3381.9 张嘉,白晓飞,陶超,等.大规模空间矢量数据分布式存储与计算优化 J.计算机系统应用,2020(12):251-256.10 吴璨,王小宁,肖海力,等.分布式消息系统研究综述 J.计算机科学,2019(Z1):1-5.11 张璐,孙蓉,刘景伟.分布式存储中的克隆 piggybacking框架 J.西安电子科技大学学报(自然科学版),2020(6):139-147.12 周悦,李贵洋,江小玉,等.一种基于分布式存储系统的Piggyback 码 J.小型微型计算机系统,2020(5):1091-1097.【作者简介】潘忠英(1985),女,安徽无为人,硕士研究生,山西工程职业学院讲师,研究方向:计算机应用技术。(收稿日期:2023-07-31 修回日期:2023-08-23)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 综合论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报