一种基于E‑R分片策略的智能电网跨节点join方法技术

技术编号:17162223 阅读:48 留言:0更新日期:2018-02-01 20:28
本发明专利技术涉及一种基于E‑R分片策略的智能电网跨节点join方法。传统分布式关系库采用水平切分的方式来对数据表进行分片,就是将表中的某些行切分到一个数据库,而另外的某些行又切分到其他的数据库中,这种切分方式带来了一些缺点:(1)拆分规则难以抽象;(2)分片事务一致性难以解决;(3)数据多次扩展难度跟维护量极大;(4)跨库join性能较差。本发明专利技术针对于分布式关系库表分片数据的特征,其目的在于解决分布式数据库表数据分片(根据E‑R关系进行分片);分布式数据库数据表join效率提升(根据E‑R关系分片的数据在进行join操作时基本可以避免跨库操作);最终,设计一种满足于分布式关系数据库数据表高效分片和join操作的方法。

A smart grid based on R E partitioning strategy of cross node join method

【技术实现步骤摘要】
一种基于E-R分片策略的智能电网跨节点join方法
本专利技术涉及一种数据跨节点join方法,特别是智能电网中基于E-R分片策略的跨节点join方法。技术背景传统分布式关系库通常采用水平切分的方式来对数据表进行分片。水平切分是按照数据行的切分,就是将表中的某些行切分到一个数据库,而另外的某些行又切分到其他的数据库中,这种切分方式带来了一些缺点:(1)拆分规则难以抽象;(2)分片事务一致性难以解决;(3)数据多次扩展难度跟维护量极大;(4)跨库join性能较差。本专利技术针对于分布式关系库表分片数据的特征,其目的在于解决:(1)分布式数据库表数据分片(根据E-R关系进行分片);(2)分布式数据库数据表join效率提升(根据E-R关系分片的数据在进行join操作时基本可以避免跨库操作);(3)最终,设计一种满足于分布式关系数据库数据表高效分片和join操作的方法。Join指的是连接运算,在关系代数中,连接运算是由一个笛卡尔积运算和一个选取运算构成的。首先用笛卡尔积完成对两个数据集合的乘运算,然后对生成的结果集合进行选取运算,确保只把分别来自两个数据集合并且具有重叠部分的行合并在一起。连接的全部意义在于在水平方向上合并两个数据集合(通常是表),并产生一个新的结果集合,其方法是将一个数据源中的行与另一个数据源中和它匹配的行组合成一个新元组。在关系型数据库中,JOIN本质上是基于涉及的两个或者多个表进行结合重构的过程点。其创造的结果可以被保存为一个表(table)或者是作为一个表来使用。这个结合的过程的基础,或者说联系点,是存在于两个表之间的共通的列。由于集群中的表是存储在不同服务器节点的,如果执行join操作所涉及的表是分布在不同服务器节点的表,就需要进行跨节点join操作。技术流程在数据切分处理中,特别是水平切分中,数据库最终要的两个处理过程就是数据的切分、数据的聚合。选择合适的切分规则,至关重要,因为它决定了后续数据聚合的难易程度,甚至可以避免跨库的数据聚合处理。关系型数据库是基于实体关系模型(Entity-RelationshipModel)之上,通过其描述了真实世界中事物与关系,ER表即是来源于此。根据这一思路,本文提出了基于E-R关系的数据分片策略,子表的记录与所关联的父表记录存放在同一个数据分片上,即子表依赖于父表,通过表分组(TableGroup)保证数据Join不会跨库操作。技术流程及附图说明图1为基于E-R分片策略跨节点join流程流程说明:1、从多个源业务系统中抽取出数据表,并对数据表的正确性与完整性进行校验,对存在错误的数据进行校正;2、对数据表进行整理和抽象,对于不能抽象为父子关系的表,依旧采用原有的存储方式进行存储,对于能够抽象为父子关系的表,采用本专利技术所提出的基于E-R分片策略的跨界点join方法;3、按照E-R分片技术对表进行切分。有一类业务,例如订单(order)跟订单明细(order_detail),明细表会依赖于订单,也就是说会存在表的主从关系,这类似业务的切分可以抽象出合适的切分规则,比如根据用户ID切分,其他相关的表都依赖于用户ID,再或者根据订单ID切分,总之部分业务总会可以抽象出父子关系的表。这类表适用于ER分片表,子表的记录与所关联的父表记录存放在同一个数据分片上,避免数据Join跨库操作。以order与order_detail例子为例,schema.xml中定义如下的分片配置,order,order_detail根据order_id进行数据切分,保证相同order_id的数据分到同一个分片上,在进行数据插入操作时,数据库会获取order所在的分片,然后将order_detail也插入到order所在的分片。Xml文件配置如下:<tablename=”order”dataNode=”ds$1-32”rule=”mod-long”><childTablename=”order_detail”primaryKey=”id”joinKey=”order_id”parentKey=”order_id”/></table>4、采用E-Rjoin技术对分片进行存储。我们借鉴了FoundationDB的设计思路,FoundationDB创新性的提出了TableGroup的概念,其将子表的存储位置依赖于主表,并且物理上紧邻存放,因此彻底解决了JION的效率和性能问题,根据这一思路,提出了基于E-R关系的数据分片策略,子表的记录与所关联的父表记录存放在同一个数据分片上。customer采用sharding-by-intfile这个分片策略,分片在dn1,dn2上,orders依赖父表进行分片,两个表的关联关系为orders.customer_id=customer.id。这样一来,分片Dn1上的的customer与Dn1上的orders就可以进行局部的JOIN联合,Dn2上也如此,再合并两个节点的数据即可完成整体的JOIN,如果每个分片上orders表有100万条,则100个分片就有1个亿,基于E-R映射的数据分片模式,基本上解决了80%以上的企业应用所面临的问题。实施效果1.搭建了包含10个节点分布式的集群环境,数据包括两个数据表R和S,R表包含3个属性:员工编号、年龄和工资。S表包含3个属性:员工编号、部门经理编号和公司编号,所有属性均为整形,并符合均匀数据分布,其中表R和表S使用员工编号进行连接操作,每个表的元组数是15000000。2.通过识别,可将表R作为主表,表S依从于表R,根据员工编号切分,其他相关的表都依赖于员工编号,抽象出父子关系的表。这类表适用于E-R分片表,子表的记录与所关联的父表记录存放于同一个数据分片上,避免数据Join跨库操作。3.使用E-R分片策略的跨界点join方法的查询时间耗时38秒,而使用传统方法,未使用E-R分片策略的跨界点join方法的查询时间耗时162秒。本专利技术大大缩短了查询时间,显著提升查询效率,降低运维成本。本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201710742995.html" title="一种基于E‑R分片策略的智能电网跨节点join方法原文来自X技术">基于E‑R分片策略的智能电网跨节点join方法</a>

【技术保护点】
一种基于E‑R分片策略的智能电网跨节点join方法,其特征为:智能电网数据库中的许多表存在表的主从关系,根据业务的切分可以抽象出合适的切分规则,部分业务可以抽象出父子关系的表;这类表适用于ER分片表,子表的记录与所关联的父表记录存放在同一个数据分片上,避免数据Join跨库操作;子表的存储位置依赖于主表,并且物理上紧邻存放,因此彻底解决了JION的效率和性能问题。

【技术特征摘要】
1.一种基于E-R分片策略的智能电网跨节点join方法,其特征为:智能电网数据库中的许多表存在表的主从关系,根据业务的切分可以抽象出合适的切分规则,部分业务可以抽象出父子关系的表;这类表适用于ER分片表,子表的记录与所关联的父表记录存放在同一个数据分片上,避免数据Join跨库操作;子表的存储位置依赖于主表,并且物理上紧邻存放,因此彻底解决了JION的效率和性能问题。2.如权利要求1所述的一种基于E-R分片策略的智能电...

【专利技术属性】
技术研发人员:陈硕毛洪涛李钊雷振江唐胜谢玉波曹健耿洪碧李强秦鹏飞
申请(专利权)人:国网辽宁省电力有限公司国网辽宁省电力有限公司电力科学研究院江苏瑞中数据股份有限公司国家电网公司
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1