CN105224536A - 划分数据库的方法和装置 - Google Patents
划分数据库的方法和装置 Download PDFInfo
- Publication number
- CN105224536A CN105224536A CN201410234362.7A CN201410234362A CN105224536A CN 105224536 A CN105224536 A CN 105224536A CN 201410234362 A CN201410234362 A CN 201410234362A CN 105224536 A CN105224536 A CN 105224536A
- Authority
- CN
- China
- Prior art keywords
- database
- field
- dependency graph
- dependence
- business
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了用于划分数据库的方法和装置。在本发明的一个实施方式中,提供了一种用于划分数据库的方法,包括:基于与数据库相关联的业务流程而获取数据库中的多个表中的数据之间的业务依赖;基于业务依赖生成描述多个表之间的依赖关系的依赖图;将依赖图切割为至少两个子图;以及将数据库垂直地划分为分别对应于至少两个子图的至少两个部分。在本发明的一个实施方式中,提供了一种用于划分数据库的装置。采用本发明的方法和装置,可以摆脱现有技术中对于待划分的数据库的附加约束条件,以方便有效的方式实现将数据库中的多个表划分至不同的部分。
Description
技术领域
本发明的各实施方式涉及数据库,更具体地,涉及用于划分(partition)数据库的方法和装置。
背景技术
随着数据库技术的发展,数据库已经被广泛应用于人们工作和生活的各个方面。进一步,随着与数据库相关联的业务流程的复杂化,数据库中可能会包括数十甚至更多的表(table),如果将这些表全都存储在同一个数据节点中,则该数据节点可能会因为诸如访问量过大等原因而出现响应时间过长、甚至宕机等现象。
为了解决单一数据节点中的数据量过大的问题,目前提出了针对数据库中的多个表进行垂直划分(verticalpartition)和水平划分(horizontalpartition)的技术方案。然而,现有的划分方案并不能适合于各种类型的数据库。例如,目前的技术方案仅能针对满足特定关系(例如约束树模式,ConstrainedTreeSchema,CTS)的数据库进行垂直划分,这种附加约束条件对于垂直划分造成了极大的限制。
然而,随着人们在数据管理方面的需求不断复杂化,数据库的设计也出现日益复杂化的趋势,这导致目前的大多数数据库通常并不符合CTS的要求。因而,如何摆脱这些附加的约束条件、并使得能够针对各种类型的数据库进行划分,成为一个关注焦点。
发明内容
因而,期望能够开发一种能够针对数据库进行划分的技术方案,并且期望该技术方案可以摆脱现有技术中对于待划分的数据库的附加约束条件,进而实现以简单方便的方式来划分数据库。
在本发明的一个实施方式中,提供了一种用于划分数据库的方法,包括:基于与数据库相关联的业务流程而获取数据库中的多个表中的数据之间的业务依赖;基于业务依赖生成描述多个表之间的依赖关系的依赖图;将依赖图切割(cut)为至少两个子图;以及将数据库垂直地划分为分别对应于至少两个子图的至少两个部分。
在本发明的一个实施方式中,提供了一种用于划分数据库的装置,包括:获取模块,配置用于基于与数据库相关联的业务流程而获取数据库中的多个表中的数据之间的业务依赖;生成模块,配置用于基于业务依赖生成描述多个表之间的依赖关系的依赖图;切割模块,配置用于将依赖图切割为至少两个子图;以及划分模块,配置用于将数据库垂直地划分为分别对应于至少两个子图的至少两个部分。
采用本发明所述的方法和装置,可以摆脱现有技术中对于待划分的数据库的附加约束条件,从而实现将数据库中的多个表划分至不同的部分。进一步,可以将这些不同的部分中的表存储在不同的数据节点中。以此方式,可以将针对数据库的访问请求引导至不同的数据节点,进而提高数据库的响应性能并确保数据库的稳定运行。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示意性示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图;
图2示意性示出了根据一个实施方式的针对数据库进行划分的框图;
图3示意性示出了根据本发明一个实施方式的基于与数据库相关联的依赖图来划分数据库的框图;
图4示意性示出了根据本发明一个实施方式的用于划分数据库的方法的流程图;
图5示意性示出了根据本发明一个实施方式的数据库中的多个表之间的引用关系(referencerelation)的框图;
图6A-6C分别示意性示出了根据本发明一个实施方式的基于各个表之间的影响关系(impactrelation)、引用关系以及访问相关性建立而的依赖图;
图7示意性示出了基于图6A-6C所示的依赖图生成依赖图、以及对所生成的依赖图进行切割的框图;以及
图8示意性示出了根据本发明一个实施方式的用于划分数据库的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。图1显示的计算机***/服务器12仅仅是一个示例,不应对本发明实施方式的功能和使用范围带来任何限制。
如图1所示,计算机***/服务器12以通用计算设备的形式表现。计算机***/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机***/服务器12可以进一步包括其他可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施方式的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作***、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施方式中的功能和/或方法。
计算机***/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机***/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机***/服务器12的其他模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
数据库的划分可以包括水平划分和垂直划分。具体地,水平划分是指将数据库中的表中的记录划分为不同的部分。例如,假设表Customer包括客户ID、客户姓名等等多个字段,并且该表中存储了上百万条记录。为了避免将上百万条记录存储在一个数据节点中,可以按照客户ID(例如,按照单双号的方式)来将该表划分为两个表,并且分别将两个表存储在不同的数据节点中,以便提高数据库的响应效率。
另一方面,垂直划分可以指将数据库中的多个表划分为多个部分,并且按照划分结果将多个表存储在不同的数据节点中,以便各个数据节点的工作负载是均衡的,以此方式也可以提高数据库的响应效率。具体地,例如,数据库中包括记录客户信息的表Customer和记录商品的库存信息的表Stock,可以将这两个表存储在不同的数据节点中。
图2示意性示出了根据一个实施方式的针对数据库进行划分的框图200。如图2所示,数据库210中可以包括多个表,例如表1212、…、表i214、表i+1216、…、表n218。基于垂直划分的原理,可以将数据库划分为两个部分,即,第一部分222和第二部分224,其中该第一部分222可以包括表1212至表i214,而第二部分224可以包括表i+1216至表n218。
尽管目前已经提出了实现垂直划分的技术方案,然而这些技术方案需要满足附加的约束关系(例如,满足CTS约束条件),由于目前的大部分数据库并不满足该约束条件,然而,因而无法将这些技术方案直接针对现有的数据库进行垂直划分。针对现有技术中的上述缺陷,本发明提出了一种基于数据库中的多个表中的数据之间的业务依赖,来对数据库进行划分的技术方案。应当注意,在本发明的上下文中,业务依赖是指不同表中的数据之间的业务依赖。
为方便描述,在本发明的上下文中将以在线商店为示例,定义数据库中的各个表。具体地,数据库中可以包括如下文表1所示的各个表。
表1数据库中的表
序号 | 名称 | 描述 |
1 | WareHouse | 仓库信息 |
2 | District | 仓库所在区域的信息 |
3 | Customer | 客户信息 |
4 | History | 购物历史 |
5 | Order | 订单信息 |
6 | NewOrder | 新订单信息 |
7 | OrderLine | 正在执行的订单的信息 |
8 | Item | 商品信息 |
9 | Stock | 库存信息 |
应当注意,由于业务流程可以反映针对数据库中的各个表中的数据执行的各项操作(例如,增、删、改,等),并且数据库的响应效率依赖于针对这些操作的响应效率。因而,可以通过分析业务流程来发现哪些表中的数据之间的依赖关系较强,哪些表中的数据之间的依赖关系较弱,进而基于依赖关系的强弱来寻找最为有效的划分方式,以便提高数据访问的效率。
具体地,例如通过分析业务流程可以发现,表Customer中的字段“C_BALANCE(账户余额)”的数值会随着表OrderLine中的字段“OL_AMOUNT(购买数量)”的数值的增加而减少,这意味着,在更新OL_AMOUNT的数值的同时或者稍后,需要更新C_BALANCE的数值。此时,如果将表Customer和表OrderLine划分至不同的部分并且保存至两个不同的数据节点,则需要在两个数据节点之间执行附加的数据同步操作。数据同步操作将会占用大量时间,进而影响数据库响应效率。此时,可以认为表Customer和表OrderLine之间具有业务依赖。
又例如,通过分析业务流程发现,经常会同时操作数据库中的表Order和表OrderLine(例如在历史访问中频繁地出现如下语句:Select*fromOrder,OrderLinewhere…),此时,也可以认为表Order和表OrderLine之间存在业务依赖。
根据本发明的原理,如果将具有业务依赖的表划分至相同的部分,并且将这些表存储至相同的数据节点,则可以以较高的效率在相同的数据节点中操作这些节点,因而避免了在不同数据节点之间进行同步的额外时间。
现在将结合图3描述本发明,图3示意性示出了根据本发明一个实施方式的基于与数据库相关联的依赖图来划分数据库的框图300。具体地,可以以如图3所示的依赖图来描述数据库中的多个表之间的业务依赖。在图3中,一个节点对应于数据库中的一个表(例如,节点312对应于表WareHouse、节点314对应于表District,等等),两个节点之间的边对应于数据库中的各个表之间的业务依赖。
继而,可以基于业务依赖的密切性来将该依赖图划分为两个部分,即,第一部分330和第二部分340。相应地,可以将对应于第一部分330中的各个节点的各个表划分为一个部分,并将对应于第二部分340中的各个节点的各个表划分为另一部分,以此实现针对数据库的垂直划分。
在本发明的一个实施方式中,提出了一种用于划分数据库的方法,包括:基于与数据库相关联的业务流程而获取数据库中的多个表中的数据之间的业务依赖;基于业务依赖生成描述多个表之间的依赖关系的依赖图;将依赖图切割为至少两个子图;以及将数据库垂直地划分为分别对应于至少两个子图的至少两个部分。
具体地,图4示意性示出了根据本发明一个实施方式的用于划分数据库的方法的流程图400。如图4所示,在步骤S402中,基于与数据库相关联的业务流程而获取数据库中的多个表中的数据之间的业务依赖。
在本发明的一个实施方式中,可以基于业务流程中的每个流程来逐一获取业务依赖。具体地,可以基于客户的每次购买动作所触发的对数据库中的各个表的操作,来获取业务依赖。例如,当客户执行购买动作之后,在表Customer中,账户余额将随着商品数量的增加而降低,并且商品单价越高则账户余额减小得越快,客户的信用等级将随着购买商品的数量的提高而提高,等等。在表Stock中,库存数量将随着客户购买数量的提高而降低,等等。通过遍历业务流程中的各个环节,可以逐步获得数据库中的多个表中的数据之间的业务依赖。
在步骤S404中,基于业务依赖生成描述多个表之间的依赖关系的依赖图。由于在步骤S402中已经获取了多个表中的数据之间的业务依赖,因而可以基于业务依赖和数据库中的多个表,来建立依赖图(例如,如图3所示)。
在步骤S406中,将依赖图切割为至少两个子图。在此步骤中,可以基于图论中的切割算法,将依赖图切割为至少两个子图,并且确保两个子图内的各个节点所对应的表之间的业务依赖尽可能地小。具体而言,例如发现表Customer和表Stock之间并没有直接的业务依赖,则这两个表可以被包括在不同的子图中;又例如,如果发现表Customer和表OrderLine之间存在密切的业务依赖关系,则可以将这两个表包括在相同的子图中。
在步骤S408中,将数据库垂直地划分为分别对应于至少两个子图的至少两个部分。在步骤S406中,在基于各个表之间的业务依赖已经将依赖图划分为至少两个子图的情况下,可以按照各个子图的内容来针对数据库执行垂直划分。返回图3,可以将对应于节点312-324的节点划分至第一部分330,并将对应于节点332和节点326的表划分至相同的第二部分340。
在本发明的一个实施方式中,业务依赖描述多个表中的第一表的第一字段和多个表中的第二表的第二字段之间的依赖关系。应当注意,数据库中的表可以包括多个字段,因而,多个表中的数据之间的业务依赖可以以各个表中的字段之间的依赖关系来体现。
应当注意,尽管在本发明的上下文中以第一表、第二表表示两个表,以第一字段和第二字段表示两个字段,本文中的“第一”和“第二”并不旨在限制顺序。而是,第一表和第二表分别表示两个不同的表,而第一字段和第二字段分别表示两个不同的表中的两个不同的字段。
在如上文所述的示例中,例如,表Customer和表OrderLine之间的业务依赖体现为表Customer中的字段“C_BALANCE(账户余额”和表OrderLine中的字段“OL_AMOUNT(购买数量)”之间的业务依赖,即,表Customer中的字段“C_BALANCE”的数值会随着表OrderLine中的字段“OL_AMOUNT”的数值的增加而减少。
在本发明的一个实施方式中,基于与所述数据库相关联的业务流程而获取所述数据库中的多个表中的数据之间的业务依赖包括:从数据库的模式(Schema)中提取所述第一字段和所述第二字段之间的所述引用关系以作为所述依赖关系。
图5示意性示出了根据本发明一个实施方式的数据库中的多个表之间的引用关系的框图500。如图5左上角的表WareHouse所示,字段W_ID(仓库ID)是该表的主键(mainkey)。在表District中,字段D_ID(区域ID)是主键,并且该表District中还包括字段D_W_ID(仓库ID)。尽管D_W_ID和W_ID在两个表中的命名不同,这两个字段都表示仓库ID。此时,认为在表District中的字段D_W_ID与表WareHouse中的字段D_ID之间存在引用关系。本领域技术人员可以理解,根据数据库技术中的主键和外键(foreignkey)的定义,主键-外键关系可以属于本发明中的引用关系。本领域技术人员可以从数据库的模式中提取引用关系,例如,图5中各个表之间的箭头表示了各个字段之间的引用关系。
在本发明的一个实施方式中,基于与所述数据库相关联的业务流程而获取所述数据库中的多个表中的数据之间的业务依赖包括:分析业务流程以提取所述第一字段的第一数据项和所述第二字段的第二数据项之间的影响关系以作为所述依赖关系。
在本发明的上下文中,影响关系可以指分别位于两个表中的不同字段的数据项的数值之间的影响关系。例如,表Customer中的字段“C_BALANCE(账户余额)”的数值会随着表OrderLine中的字段“OL_AMOUNT(购买数量)”的数值的增加而减少,则这两个字段之间具有影响关系,并且该影响属于“负面”影响(可以以“-”表示)。又例如,表Stock中的字段“S_QUANTITY(库存总量)”的数值会随着表OrderLine中的字段“OL_QUANTITY(购买总量)”的数值的增加而减少,则这两个字段之间具有影响关系,并且该影响也属于“负面”影响(可以以“-”表示)。
尽管在上文中仅以“负面”影响为示例示出了影响关系的具体示例,本领域技术人员可以理解,影响还可以包括“正面”影响。例如,假设还存在关于销售信息的表SaleInfo,则该表中的字段“SI_QUANTITY(销售总量)”可以随着表OrderLine中的字段“OL_QUANTITY(购买总量)”的数值的增加而增加,此时这两个字段之间具有影响关系,并且该影响属于“正面”影响(可以以“+”表示)。
应当注意,在上文中仅以字段类型为实数为例示出了影响关系的示例,本领域技术人员应当理解,字段的类型可以是各种类型,例如包括但不限于,整数、实数、字符、字符串、矢量、枚举型、集合,等等其他类型。本领域技术人员可以根据上文所述的原理来针对不同的类型定义相应的“影响关系”。概括而言,只要一个字段中的数据项随着另一字段的数据项的变化而变化,则可以认为这两个字段之间存在影响关系。根据上文所述的原理,本领域技术人员还可以分析业务流程中的各种情况,以便发现数据库中的各个表中的字段之间的影响关系。
在本发明的一个实施方式中,基于与所述数据库相关联的业务流程而获取所述数据库中的多个表中的数据之间的业务依赖包括:从针对数据库的历史访问中,提取第一表和第二表被连接(jointly)访问的访问相关性以作为所述依赖关系。
建立数据库的目的在于通过对数据库的访问(例如,增、删、改等操作)来满足人们数据管理的需求,因而在与数据库相关联的业务流程中,针对数据库的访问是一个重要方面。通常而言,可以以结构化查询语言(StructuredQueryLanguage,SQL)来访问数据库。在本发明的一个实施方式中,可以监视在特定时间段内访问数据库的访问历史,以便知晓用户更倾向于同时访问数据库中的哪些表。例如,在访问历史中可以存在如下所示的SQL语句:
(1)Select*fromorder,orderlinewhereorder.id=1ine.oidandorder.id=111
(2)Select*fromcustomer,orderwhereorder.id=line.oidandorder.id=111
(3)Select*fromorder,orderlinewhereorder.id=line.oidandorder.id=111
从语句(1)中可知,表Order和OrderLine被连接访问;从语句(2)中可知,表Customer和表Order被连接访问;从表(3)中可知,表Order和OrderLine被连接访问。因而,可以通过统计各个表被连接访问的次数,并基于该次数来定义各个表之间的访问相关性。
尽管在上文的SQL语句的示例中仅仅示出了针对数据库中的两个表进行连接访问,在业务流程中,还有可能会存在针对数据库中的多个表进行连接访问的情况。另外,尽管上文仅示出了基于连接访问的次数来计算访问相关性,本领域技术人员可以基于具体环境的要求来定义访问相关性的具体计算方式。
在上文中已经详细描述了依赖关系可以包括影响关系、引用关系和访问相关性中的至少一个;在下文中,将详细描述如何基于多种类型的依赖关系获取最终的业务依赖。
具体地,图6A-6C分别示意性示出了根据本发明一个实施方式的基于各个表之间的影响关系、引用关系以及访问相关性建立的依赖图600A-600C。通过采用上文所述的方法,可以基于各种类型的依赖关系来建立依赖图。在本发明的一个实施方式中,其中:依赖图中的节点描述多个表;以及依赖图中的边的权重描述业务依赖。
现在参见图6A,图6A示出了根据本发明一个实施方式的基于各个表之间的影响关系建立的依赖图。继续上文的示例,如果发现表Customer中的字段“C_BALANCE(账户余额)”和表OrderLine中的字段“OL_AMOUNT(购买数量)”之间具有“负面”影响关系,则如图6A所示,可以在依赖图600A中的节点OrderLine624A和Customer616A之间添加有向边,并以“-”表示。如果发现表Stock中的字段“S_QUANTITY(库存总量)”和表OrderLine中的字段“OL_QUANTITY(购买总量)”之间具有负面影响关系,则可以在依赖图600A中的节点OrderLine624A和节点Stock626A之间添加有向边,并以“-”表示。
以此方式,通过分析业务流程中的各个环节,可以获得数据库的各个表的各个字段之间的影响关系。在本发明的一个实施方式中,还可以以数值来表示影响关系的强弱,例如,可以为表示影响关系的有向边赋予权重。例如,假设表Customer和表OrderLine之间存在两个影响关系,则可以为如图6A中所示的有向边赋予权重“2”。
现在参见图6B,图6B示出了根据本发明一个实施方式的基于各个表之间的引用关系建立的依赖图。如图6B所示,从数据库的模式中可以提取各个表的各个字段之间的引用关系。例如,节点District614B与节点WareHouse612B之间的有向边可以表示:表WareHouse的字段W_ID(仓库ID)与表District中的字段D_ID(区域ID)之间的主键-外键关系。
应当注意,两个表之间的引用关系并不仅限于一对一的引用关系,而是两个表中还有可能存在多对多的引用关系,例如,表A中的字段A1与表B中的字段B1之间存在引用关系,同时表A中的字段A2与表B中的字段B2之间也存在引用关系,则此时表A和表B之间可以存在2个引用关系。
本领域技术人员可以根据具体应用环境的需求来定义引用关系的具体计算公式,例如,针对多对多的引用关系进行加权等。在本发明的一个实施方式中,还可以以数值来表示引用关系的强弱,例如,可以为表示影响关系的有向边赋予权重。
现在参见图6C,图6C示出了根据本发明一个实施方式的基于各个表之间的访问相关性而建立的依赖图。按照上文所述的方法,可以通过分析历史访问中的SQL的语句来获取各个表被连接访问的次数,进而获得访问相关性。如图6C所示,节点OrderLine624C和节点Order620C之间的有向边可以表示表OrderLine和表Order被连接访问,并且在特定时间段内被连接访问的次数是2000。
尽管在本发明的上下文中仅以次数作为访问相关性的具体示例,本领域技术人员还可以以其他方式表示访问相关性。例如,针对来自不同用户的访问赋予不同权重,针对不同时间的访问赋予不同权重,等等。以此方式,可以获得如图6C所示的依赖图。
在上文中,已经参见图6A-图6C示出了如何以数值方式来描述影响关系、引用关系和访问相关性。在后续处理中,可以将如图6A-6C所示的依赖图进行叠加,进而获得如图7所示的依赖图。在本发明的一个实施方式中,可以基于影响关系、引用关系和访问相关性来计算各个表之间的业务依赖,例如可以基于各方面的重要性来采取加权求和的方式计算,并且以最终的数值作为各个节点之间的权重。具体地,可以采用如下公式:
业务依赖(i,j)=α·影响关系(i,j)+β·引用关系(i,j)+γ·访问相关性(i,j)
图7示意性示出了基于图6A-6C所示的依赖图生成依赖图、以及对所生成的依赖图进行切割的框图700。应当注意,图7中的各个节点之间的权重仅仅是示意性的,本领域技术人员可以基于上述算法来采用其他的公式计算描述多个表中的数据之间的业务依赖。
应当注意,尽管上文中参见图7示出了基于影响关系、引用关系和访问相关性三个方面获取各个表之间的依赖关系的示例,根据本发明的其他实施方式,还可以基于两个方面来获取依赖关系。例如,可以基于影响关系和引用关系两者获取依赖关系,可以基于影响关系和访问相关性两者获取依赖关系,或者还可以基于引用关系和访问相关性两者获取依赖关系。
在本发明的一个实施方式中,将依赖图切割为至少两个子图包括:基于边的权重,按照最小切割算法将依赖图切割为至少两个子图。本领域技术人员可以基于图论中的各种算法来进行切割,具体而言,可以以矩阵方式来表示图7中所示依赖图。例如,矩阵A中的每一个元素A(i,j)可以表示节点i与节点j之间的边的权重;对于没有连接关系的两个节点i和j,元素A(i,j)的值为“0”。继而,可以基于谱图理论并通过特征分解的方法来进行切割。本领域技术人员可以基于现有技术中关于最小切割算法的原理来进行切割,在本发明的上下文中将不再赘述。
如图7所示,通过最小切割算法可以将依赖图划分为两个子图,继而,可以基于两个子图来对数据库进行垂直划分。例如,将数据库中的表Item和表Stock划分为一个部分,而将其余的表划分为另一个部分。
应当注意,尽管在上文中仅以具体示例示出了如何将数据库中的多个表划分为两个部分,基于本发明的原理,还可以迭代地执行本发明的方法。例如,可以针对每个子图再次执行最小切割,或者采用其他切割算法将依赖图划分为多个部分。
在本发明的一个实施方式中,进一步包括:针对至少两个部分中的表执行水平划分。采用上文所述的具体步骤,可以将包括多个表的数据库垂直划分为多个部分。在划分所得的各个部分内,可以执行水平划分。
例如,对于如图7所示的与左侧子图对应的部分,当表Customer中的客户数量过大导致一个数据节点难以处理访问请求时,可以基于C_ID(客户ID)来在两个表中保存客户信息,例如,一个表用于保存客户ID为单号的用户的信息,另一个表用于保存客户ID为双号的用户的信息。
在本发明的一个实施方式中,进一步包括:将数据库的至少两个部分存储至不同的数据节点。针对数据库执行垂直划分的目的在于将划分所得的各个部分存储值不同的数据节点,以便由多个数据节点来共同处理访问请求。以此方式,可以缩短数据库的响应时间进而提高数据库的访问性能。
前面已经参考附图描述了实现本发明的方法的各个实施方式。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的一种设备。即使该设备在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该设备表现出区别于通用处理设备的特性,从而形成本发明的各个实施方式的设备。本发明中所述设备包括若干装置或模块,所述装置或模块被配置为执行相应步骤。本领域的所述技术人员通过阅读本说明书可以理解如何编写程序实现所述装置或模块执行的动作。由于所述设备与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对应的装置或模块,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再进行赘述。
图8示意性示出了根据本发明一个实施方式的用于划分数据库的装置的框图800。如图8所示,提供了一种用于划分数据库的装置,包括:获取模块810,配置用于响应于读取数据库中的多个表,基于与数据库相关联的业务流程而获取多个表中的数据之间的业务依赖;生成模块820,配置用于基于业务依赖生成描述多个表之间的依赖关系的依赖图;切割模块830,配置用于将依赖图切割为至少两个子图;以及划分模块840,配置用于将数据库垂直地划分为分别对应于至少两个子图的至少两个部分。
在本发明的一个实施方式中,业务依赖描述多个表中的第一表的第一字段和多个表中的第二表的第二字段之间的依赖关系。
在本发明的一个实施方式中,依赖关系是第一字段的第一数据项和第二字段的第二数据项之间的影响关系,以及获取模块810包括:第一获取模块,配置用于分析业务流程以提取影响关系。
在本发明的一个实施方式中,依赖关系是第一字段和第二字段之间的引用关系,以及获取模块810包括:第二获取模块,配置用于从数据库的模式中提取引用关系。
在本发明的一个实施方式中,依赖关系是第一表和第二表的访问相关性,以及获取模块810包括:第三获取模块,配置用于从针对数据库的历史访问中,提取第一表和第二表被连接访问的访问相关性。
在本发明的一个实施方式中,其中:依赖图中的节点描述多个表;以及依赖图中的边的权重描述业务依赖。
在本发明的一个实施方式中,切割模块830包括:最小切割模块,配置用于基于边的权重,按照最小切割算法将依赖图切割为至少两个子图。
在本发明的一个实施方式中,进一步包括:第二划分模块,配置用于针对至少两个部分中的表执行水平划分。
在本发明的一个实施方式中,进一步包括:存储模块,配置用于将所述数据库的所述至少两个部分存储至不同的数据节点。
采用本发明所述的方法和装置,可以摆脱现有技术中对于待划分的数据库的附加约束条件,并且实现将数据库中的多个表划分至不同的部分。进一步,可以将这些不同的部分中的表存储在相应的数据节点中,进而提高数据库的响应性能。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言-诸如Smalltalk、C++等,以及常规的过程式编程语言-诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施方式中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施方式的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
Claims (18)
1.一种用于划分数据库的方法,包括:
基于与所述数据库相关联的业务流程而获取所述数据库中的多个表中的数据之间的业务依赖;
基于所述业务依赖生成描述所述多个表之间的依赖关系的依赖图;
将所述依赖图切割为至少两个子图;以及
将所述数据库垂直地划分为分别对应于所述至少两个子图的至少两个部分。
2.根据权利要求1所述的方法,其中所述业务依赖描述所述多个表中的第一表的第一字段和所述多个表中的第二表的第二字段之间的依赖关系。
3.根据权利要求2所述的方法,其中基于与所述数据库相关联的业务流程而获取所述数据库中的多个表中的数据之间的业务依赖包括:
分析所述业务流程以提取所述第一字段的第一数据项和所述第二字段的第二数据项之间的影响关系以作为所述依赖关系。
4.根据权利要求2或3所述的方法,其中基于与所述数据库相关联的业务流程而获取所述数据库中的多个表中的数据之间的业务依赖包括:
从所述数据库的模式中提取所述第一字段和所述第二字段之间的所述引用关系以作为所述依赖关系。
5.根据权利要求2或3所述的方法,其中基于与所述数据库相关联的业务流程而获取所述数据库中的多个表中的数据之间的业务依赖包括:
从针对所述数据库的历史访问中,提取所述第一表和所述第二表被连接访问的访问相关性以作为所述依赖关系。
6.根据权利要求1-3中的任一项所述的方法,其中:
所述依赖图中的节点描述所述多个表;以及
所述依赖图中的边的权重描述所述业务依赖。
7.根据权利要求6所述的方法,将所述依赖图切割为至少两个子图包括:
基于所述边的权重,按照最小切割算法将所述依赖图切割为至少两个子图。
8.根据权利要求1-3中的任一项所述的方法,进一步包括:
针对所述至少两个部分中的表执行水平划分。
9.根据权利要求1-3中的任一项所述的方法,进一步包括:
将所述数据库的所述至少两个部分存储至不同的数据节点。
10.一种用于划分数据库的装置,包括:
获取模块,配置用于基于与所述数据库相关联的业务流程而获取所述数据库中的多个表中的数据之间的业务依赖;
生成模块,配置用于基于所述业务依赖生成描述所述多个表之间的依赖关系的依赖图;
切割模块,配置用于将所述依赖图切割为至少两个子图;以及
划分模块,配置用于将所述数据库垂直地划分为分别对应于所述至少两个子图的至少两个部分。
11.根据权利要求10所述的装置,其中所述业务依赖描述所述多个表中的第一表的第一字段和所述多个表中的第二表的第二字段之间的依赖关系。
12.根据权利要求11所述的装置,其中所述获取模块包括:
第一获取模块,配置用于分析所述业务流程以提取所述第一字段的第一数据项和所述第二字段的第二数据项之间的影响关系以作为所述依赖关系。
13.根据权利要求11或12所述的装置,其中所述获取模块包括:
第二获取模块,配置用于从所述数据库的模式中提取所述第一字段和所述第二字段之间的所述引用关系以作为所述依赖关系。
14.根据权利要求11或12所述的装置,其中所述依赖关系是所述第一表和所述第二表的访问相关性,以及所述获取模块包括:
第三获取模块,配置用于从针对所述数据库的历史访问中,提取所述第一表和所述第二表被连接访问的访问相关性以作为所述依赖关系。
15.根据权利要求10-12中的任一项所述的装置,其中:
所述依赖图中的节点描述所述多个表;以及
所述依赖图中的边的权重描述所述业务依赖。
16.根据权利要求15所述的装置,其中所述切割模块包括:
最小切割模块,配置用于基于所述边的权重,按照最小切割算法将所述依赖图切割为至少两个子图。
17.根据权利要求10-12中的任一项所述的装置,进一步包括:
第二划分模块,配置用于针对所述至少两个部分中的表执行水平划分。
18.根据权利要求10-12的任一项所述的装置,进一步包括:
存储模块,配置用于将所述数据库的所述至少两个部分存储至不同的数据节点。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410234362.7A CN105224536A (zh) | 2014-05-29 | 2014-05-29 | 划分数据库的方法和装置 |
US14/722,378 US10282691B2 (en) | 2014-05-29 | 2015-05-27 | Database partition |
US14/747,310 US10229377B2 (en) | 2014-05-29 | 2015-06-23 | Database partition |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410234362.7A CN105224536A (zh) | 2014-05-29 | 2014-05-29 | 划分数据库的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105224536A true CN105224536A (zh) | 2016-01-06 |
Family
ID=54701993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410234362.7A Pending CN105224536A (zh) | 2014-05-29 | 2014-05-29 | 划分数据库的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10282691B2 (zh) |
CN (1) | CN105224536A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017124959A1 (zh) * | 2016-01-21 | 2017-07-27 | 阿里巴巴集团控股有限公司 | 一种数据表分析处理的方法和装置 |
CN107832407A (zh) * | 2017-11-03 | 2018-03-23 | 上海点融信息科技有限责任公司 | 用于生成知识图谱的信息处理方法、装置和可读存储介质 |
CN109739745A (zh) * | 2018-12-10 | 2019-05-10 | 山东泰安烟草有限公司 | 基于流量指标的对数据库硬件资源分析方法 |
CN110716911A (zh) * | 2018-06-26 | 2020-01-21 | 北京京东振世信息技术有限公司 | 数据处理方法及装置、电子设备、存储介质 |
CN112380286A (zh) * | 2020-11-17 | 2021-02-19 | 平安科技(深圳)有限公司 | 数据库的数据对象关系图谱生成方法、装置、设备及介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101951999B1 (ko) | 2016-08-31 | 2019-05-10 | 재단법인대구경북과학기술원 | 낮은 데이터 중복으로 빠른 쿼리 처리를 지원하는 관계형 데이터베이스 저장 시스템, 저장 방법 및 관계형 데이터베이스 저장 방법에 기초한 쿼리를 처리하는 방법 |
WO2018043843A1 (ko) * | 2016-08-31 | 2018-03-08 | 재단법인대구경북과학기술원 | 낮은 데이터 중복으로 빠른 쿼리 처리를 지원하는 관계형 데이터베이스 저장 시스템, 저장 방법 및 관계형 데이터베이스 저장 방법에 기초한 쿼리를 처리하는 방법 |
US10372761B2 (en) * | 2016-12-28 | 2019-08-06 | Sap Se | Auto-discovery of data lineage in large computer systems |
US11200256B2 (en) | 2019-04-11 | 2021-12-14 | International Business Machines Corporation | Record replication for multi-column partitioning on distributed database systems |
CN112835887A (zh) * | 2019-11-25 | 2021-05-25 | 航天信息股份有限公司 | 数据库管理方法、装置、计算设备和存储介质 |
CN111309726B (zh) * | 2020-01-17 | 2024-03-22 | 北京明略软件***有限公司 | 一种有向图的生成方法、生成装置及可读存储介质 |
CN111782654A (zh) * | 2020-07-01 | 2020-10-16 | 浪潮云信息技术股份公司 | 一种分布式数据库中数据分区存放的方法 |
CN112667630B (zh) * | 2020-12-24 | 2023-06-02 | 平安科技(深圳)有限公司 | 整合业务报表的方法、装置、设备以及存储介质 |
CN113254454A (zh) * | 2021-06-23 | 2021-08-13 | 京东科技控股股份有限公司 | 数据提取方法、装置、计算机设备及存储介质 |
CN113486008A (zh) * | 2021-06-30 | 2021-10-08 | 平安信托有限责任公司 | 数据血缘分析方法、装置、设备及存储介质 |
CN113448989B (zh) * | 2021-07-08 | 2024-02-06 | 京东科技控股股份有限公司 | 数据的处理方法、装置、电子设备及计算机存储介质 |
CN114598539B (zh) * | 2022-03-16 | 2024-03-01 | 京东科技信息技术有限公司 | 根因定位方法、装置、存储介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436192A (zh) * | 2007-11-16 | 2009-05-20 | 国际商业机器公司 | 用于优化针对垂直存储式数据库的查询的方法和设备 |
CN102156714A (zh) * | 2011-03-22 | 2011-08-17 | 清华大学 | 实现自适应垂直划分的关系型数据库的方法及*** |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6681218B1 (en) | 1999-11-04 | 2004-01-20 | International Business Machines Corporation | System for managing RDBM fragmentations |
US6976212B2 (en) * | 2001-09-10 | 2005-12-13 | Xerox Corporation | Method and apparatus for the construction and use of table-like visualizations of hierarchic material |
JP2006020292A (ja) * | 2004-06-03 | 2006-01-19 | Canon Inc | 情報処理方法、情報処理装置 |
US7366716B2 (en) * | 2005-05-06 | 2008-04-29 | Microsoft Corporation | Integrating vertical partitioning into physical database design |
US7904892B2 (en) * | 2006-01-06 | 2011-03-08 | Northrop Grumman Corporation | Systems and methods for identifying and displaying dependencies |
JP4518114B2 (ja) * | 2007-07-25 | 2010-08-04 | Tdk株式会社 | 電子部品内蔵基板及びその製造方法 |
US20090171885A1 (en) * | 2007-12-27 | 2009-07-02 | Adam Silberstein | Efficient bulk load |
US7873598B2 (en) * | 2008-04-15 | 2011-01-18 | Microsoft Corporation | Slicing of relational databases |
US8237716B2 (en) * | 2008-09-08 | 2012-08-07 | Fair Isaac Corporation | Algorithm for drawing directed acyclic graphs |
JP4688111B2 (ja) | 2008-11-28 | 2011-05-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、データベース・システム、情報処理方法、およびプログラム |
US8904381B2 (en) * | 2009-01-23 | 2014-12-02 | Hewlett-Packard Development Company, L.P. | User defined data partitioning (UDP)—grouping of data based on computation model |
US8095006B2 (en) * | 2009-02-20 | 2012-01-10 | New Jersey Institute Of Technology | Configuration of passive optical networks including cascaded array waveguide gratings |
US8190546B2 (en) * | 2009-05-15 | 2012-05-29 | At&T Intellectual Property I, L.P. | Dependency between sources in truth discovery |
US8689231B2 (en) * | 2009-06-30 | 2014-04-01 | Sap Ag | System and method for ordering tasks with complex interrelationships |
US10909733B2 (en) * | 2010-03-18 | 2021-02-02 | Micro Focus Llc | Graph transformation |
US8219591B2 (en) * | 2010-05-03 | 2012-07-10 | Hewlett-Packard Development Company, L.P. | Graph query adaptation |
US8577842B1 (en) * | 2011-09-19 | 2013-11-05 | Amazon Technologies, Inc. | Distributed computer system snapshots and instantiation thereof |
US8516301B2 (en) * | 2011-04-08 | 2013-08-20 | Ca, Inc. | Visualizing transaction traces as flows through a map of logical subsystems |
US8782614B2 (en) * | 2011-04-08 | 2014-07-15 | Ca, Inc. | Visualization of JVM and cross-JVM call stacks |
US9495477B1 (en) * | 2011-04-20 | 2016-11-15 | Google Inc. | Data storage in a graph processing system |
US20130097183A1 (en) * | 2011-10-14 | 2013-04-18 | Zenoss, Inc. | Method and apparatus for analyzing a root cause of a service impact in a virtualized environment |
US8868594B2 (en) | 2011-12-23 | 2014-10-21 | Sap Ag | Split processing paths for a database calculation engine |
US8880565B2 (en) | 2011-12-23 | 2014-11-04 | Sap Se | Table creation for partitioned tables |
US8924945B1 (en) * | 2012-10-04 | 2014-12-30 | Google Inc. | Managing dependencies on multi-threaded environment |
US9031994B1 (en) * | 2012-12-27 | 2015-05-12 | Emc Corporation | Database partitioning for data processing system |
US9654538B1 (en) * | 2013-03-11 | 2017-05-16 | DataTorrent, Inc. | Dynamic partitioning of instances in distributed streaming platform for real-time applications |
US9589382B2 (en) * | 2013-03-15 | 2017-03-07 | Dreamworks Animation Llc | Render setup graph |
US9576071B2 (en) * | 2013-09-12 | 2017-02-21 | Dropbox, Inc. | Graph-based data models for partitioned data |
US8978010B1 (en) * | 2013-12-18 | 2015-03-10 | Sap Ag | Pruning compilation dependency graphs |
WO2015139048A1 (en) * | 2014-03-14 | 2015-09-17 | Concurrent, Inc. | Cluster (sub) graph isomorphism logical data flow mapping rules |
US9589068B2 (en) * | 2014-04-10 | 2017-03-07 | Apple Inc. | Graph representation of property lookups |
US10776397B2 (en) * | 2014-06-20 | 2020-09-15 | Amazon Technologies, Inc. | Data interest estimation for n-dimensional cube computations |
US20150379064A1 (en) * | 2014-06-25 | 2015-12-31 | Linkedin Corporation | Dependency management during model compilation of statistical models |
-
2014
- 2014-05-29 CN CN201410234362.7A patent/CN105224536A/zh active Pending
-
2015
- 2015-05-27 US US14/722,378 patent/US10282691B2/en active Active
- 2015-06-23 US US14/747,310 patent/US10229377B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436192A (zh) * | 2007-11-16 | 2009-05-20 | 国际商业机器公司 | 用于优化针对垂直存储式数据库的查询的方法和设备 |
CN102156714A (zh) * | 2011-03-22 | 2011-08-17 | 清华大学 | 实现自适应垂直划分的关系型数据库的方法及*** |
Non-Patent Citations (2)
Title |
---|
李书攀: "一种关系型数据库自动划分方法的设计", 《计算机光盘软件与应用》 * |
柯佳 等: "基于超图模型的复杂视频事件检测", 《计算机应用研究》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017124959A1 (zh) * | 2016-01-21 | 2017-07-27 | 阿里巴巴集团控股有限公司 | 一种数据表分析处理的方法和装置 |
CN106991101A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 一种数据表分析处理的方法和装置 |
US10909481B2 (en) | 2016-01-21 | 2021-02-02 | Alibaba Group Holding Limited | Method and apparatus for analyzing data table |
CN106991101B (zh) * | 2016-01-21 | 2021-02-02 | 阿里巴巴集团控股有限公司 | 一种数据表分析处理的方法和装置 |
CN107832407A (zh) * | 2017-11-03 | 2018-03-23 | 上海点融信息科技有限责任公司 | 用于生成知识图谱的信息处理方法、装置和可读存储介质 |
CN110716911A (zh) * | 2018-06-26 | 2020-01-21 | 北京京东振世信息技术有限公司 | 数据处理方法及装置、电子设备、存储介质 |
CN110716911B (zh) * | 2018-06-26 | 2023-09-26 | 北京京东振世信息技术有限公司 | 数据处理方法及装置、电子设备、存储介质 |
CN109739745A (zh) * | 2018-12-10 | 2019-05-10 | 山东泰安烟草有限公司 | 基于流量指标的对数据库硬件资源分析方法 |
CN112380286A (zh) * | 2020-11-17 | 2021-02-19 | 平安科技(深圳)有限公司 | 数据库的数据对象关系图谱生成方法、装置、设备及介质 |
CN112380286B (zh) * | 2020-11-17 | 2022-03-18 | 平安科技(深圳)有限公司 | 数据库的数据对象关系图谱生成方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US10229377B2 (en) | 2019-03-12 |
US10282691B2 (en) | 2019-05-07 |
US20150347936A1 (en) | 2015-12-03 |
US20150347473A1 (en) | 2015-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224536A (zh) | 划分数据库的方法和装置 | |
US20210173711A1 (en) | Integrated value chain risk-based profiling and optimization | |
CN107273556A (zh) | 区块链数据索引方法和设备 | |
US10885440B2 (en) | Contextual evaluation of process model for generation and extraction of project management artifacts | |
US20180032587A1 (en) | Methods and Apparatus for Incremental Frequent Subgraph Mining on Dynamic Graphs | |
US11613008B2 (en) | Automating a process using robotic process automation code | |
WO2015153681A1 (en) | Scalable business process intelligence and predictive analytics for distributed architectures | |
CN111666304B (zh) | 数据处理装置、数据处理方法、存储介质与电子设备 | |
US9329837B2 (en) | Generating a proposal for selection of services from cloud service providers based on an application architecture description and priority parameters | |
CN107506484B (zh) | 运维数据关联审计方法、***、设备及存储介质 | |
US20150302315A1 (en) | Correcting Existing Predictive Model Outputs with Social Media Features Over Multiple Time Scales | |
CN111199474A (zh) | 一种基于双方网络图数据的风险预测方法、装置和电子设备 | |
CN112989059A (zh) | 潜在客户识别方法及装置、设备及可读计算机存储介质 | |
CN110796534A (zh) | 一种分期贷款逾期率的预测方法和装置 | |
CN101206737A (zh) | 用于确定组织使用信息技术资源的准备性的方法和*** | |
US9830377B1 (en) | Methods and systems for hierarchical blocking | |
CN109544392B (zh) | 用于保险订单处理的方法、***、设备以及介质 | |
CN105354621A (zh) | 确定物品在多个储存区域中的放置方式的方法和装置 | |
US20170337605A1 (en) | Automated generation and assembly of proposal elements | |
CN105094758A (zh) | 用于避免事务回滚的方法和装置 | |
US20140214844A1 (en) | Multiple classification models in a pipeline | |
US20240112065A1 (en) | Meta-learning operation research optimization | |
US11868167B2 (en) | Automatically provisioned tag schema for hybrid multicloud cost and chargeback analysis | |
US11520804B1 (en) | Association rule mining | |
Kurt et al. | The Importance of Multidisciplinary in Data Science: Application of the Method in Health Sector to Telecommunication Sector |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160106 |
|
RJ01 | Rejection of invention patent application after publication |