TWI503679B - Data partitioning method and device - Google Patents

Data partitioning method and device Download PDF

Info

Publication number
TWI503679B
TWI503679B TW103119684A TW103119684A TWI503679B TW I503679 B TWI503679 B TW I503679B TW 103119684 A TW103119684 A TW 103119684A TW 103119684 A TW103119684 A TW 103119684A TW I503679 B TWI503679 B TW I503679B
Authority
TW
Taiwan
Prior art keywords
tuple
partitioning
partitioning scheme
load
information
Prior art date
Application number
TW103119684A
Other languages
English (en)
Other versions
TW201510754A (zh
Original Assignee
Huawei Tech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Tech Co Ltd filed Critical Huawei Tech Co Ltd
Publication of TW201510754A publication Critical patent/TW201510754A/zh
Application granted granted Critical
Publication of TWI503679B publication Critical patent/TWI503679B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

資料分區方法和裝置 【0001】
本發明係關於資料庫技術領域,特別是關於一種資料分區方法和裝置。
【0002】
傳統的關係型資料庫系統根據面向的不同負載,分為用於線上交易處理(on-line transaction processing,OLTP)的資料庫系統和用於線上分析處理(on-line analytical processing,OLAP)的資料庫系統;其中,用於OLTP的資料庫系統所面向的負載稱為事務型負載,而用於OLAP的資料庫系統所面向的負載成為分析性負載;對應的,兩種不同的資料庫系統對資料庫內的資料的管理也是不同的。具體的,由於事務型負載涉及的訪問類型有資料查詢、資料修改(包括資料更新、修改、插入、刪除等),則面向事務型負載的資料庫系統應將相關的資料集中控制,避免將資料分佈在資料庫內不同的區域裡,影響資料訪問效率;而分析型負載涉及的訪問類型主要為唯讀的查詢請求,每個查詢請求往往會涉及大量資料的掃描、統計和分析,因此,面向分析型負載的資料庫系統應將資料分區放置,則資料訪問可在複數個區域同時並行化進行,提高資料訪問效率。對於上述兩套資料庫系統,使用者需要同時維護,而隨著資料量和系統複雜程度的不斷增加,同時維護兩套系統使使用者的負擔加重,因此,可面向混合負載(即同時面向事務型負載和分析性負載)的資料庫系統隨使用者的需求而產生。
【0003】
為使面向混合負載的資料庫系統不影響資料的訪問效率,則需兼顧事務型負載和分析性負載的特點對資料庫中的資料分區。現有技術中,資料庫系統中資料分區方法主要來自線上分析處理系統,例如,通過雜湊(hash)函數,按資料庫關係表的某一個或幾個欄位的雜湊(hash)值,進行資料分區。
【0004】
但採用上述方法獲得的資料分區方案便於分析型負載的處理,但對於事務型負載來說,上述分區方案不理想,影響了事務型負載的處理效率,從而降低該資料庫系統面向混合負載的工作性能。
【0005】
本發明提供一種資料分區方法和裝置,用於提高資料庫面向混合負載時的工作性能。
【0006】
第一方面,本發明實施例提供一種資料分區方法,包括:接收使用者輸入的混合負載和資料庫的結構資訊,混合負載包括至少一個事務型負載、至少一個分析型負載或其組合,資料庫的結構資訊包括與混合負載關聯的至少一個元組;根據混合負載和資料庫的結構資訊,確定元組關係資訊,元組關係資訊包括資料庫的結構資訊中任意兩個元組之間的事務相關性;根據混合負載是否可並存執行的特性以及元組關係資訊,確定元組分裂代價資訊,元組分裂代價資訊包括資料庫的結構資訊中具有事務相關性的任意兩個元組之間的分裂代價,分裂代價用於表示當具有事務相關性的兩個元組分區儲存時,對混合負載訪問所述具有事務相關性的兩個元組的效率的影響程度;根據元組分裂代價資訊獲取複數個分區方案,並確定各分區方案中總代價值最小的分區方案作為最優分區方案,其中,每個分區方案的總代價值為採用分區方案時所述資料庫的結構資訊中具有事務相關性的各個元組之間的分裂代價的總和;根據最優分區方案,對資料庫儲存的資料進行分區處理。
【0007】
結合第一方面,在第一實施方式中,所述根據混合負載和資料庫的結構資訊,確定元組關係資訊,包括:依次根據混合負載包含的各個負載,在資料庫的結構資訊中分別確定關聯於每個負載的所有元組;根據每個負載所關聯的所有元組中任意兩個元組之間的事務相關性,確定負載所關聯的各個元組之間的關係子資訊;將混合負載中每個負載所關聯的各個元組之間的關係子資訊匯總,獲取元組關係資訊。
【0008】
結合第一方面第一實施方式,在第二實施方式中,所述根據混合負載是否可並存執行的特性以及元組關係資訊,確定元組分裂代價資訊,包括:若元組關係資訊中具有事務相關性的兩個元組所關聯的混合負載的特性為不可並存執行,則確定兩個元組之間的分裂代價為預設的正值;若元組關係資訊中具有事務相關性的兩個元組所關聯的混合負載的特性為可並存執行,則確定兩個元組之間的分裂代價為預設的負值。
【0009】
結合第一方面第二實施方式,在第三實施方式中,元組分裂代價資訊以關係圖表示,在關係圖中具有事務相關性的任意兩個元組之間用連接線連接;所述根據元組分裂代價資訊獲取複數個分區方案,確定各分區方案中總代價值最小的分區方案作為最優分區方案,包括:採用圖分割演算法對關係圖進行複數種分割處理,確定複數個分區方案,其中每一種分割處理對應於一種分區方案;在對關係圖進行每一種分割處理時,將所分割的每一條連接線所連接的兩個元組之間的分裂代價累加,得到分割處理所對應的分區方案的總代價值;確定最小的總代價值所對應的分區方案為最優分區方案。
【0010】
結合第一方面第二實施方式,在第四實施方式中,在所述根據最優分區方案,對資料庫中的資料進行分區處理之後,該方法還包括:當元組分裂代價資訊更新為調整元組分裂代價資訊時,採用圖分割演算法對調整元組分裂代價資訊進行複數種分割處理,確定複數個分區方案,其中,每一種分割處理對應於一種分區方案,並確定各分區方案的總代價值;其中調整元組分裂代價資訊以關係圖表示,在關係圖中具有事務相關性的任意兩個元組之間用連接線連接;確定最小的總代價值所對應的分區方案為第一分區方案;根據最優分區方案和第一分區方案,生成元組移動代價資訊,並根據元組移動代價資訊確定調整分區方案。
【0011】
結合第一方面第四實施方式,在第五實施方式中,所述根據最優分區方案和第一分區方案,生成元組移動代價資訊,並根據元組移動代價資訊確定調整分區方案,包括:當按照第一分區方案對最優分區方案進行調整時,確定各最優分區內的待移動元組,最優分區為根據最優分區方案確定的儲存區域;根據待移動元組與最優分區之間的調整關係,確定待移動元組與最優分區之間的移動代價;根據調整元組分裂代價資訊確定待移動元組與最優分區之間的分裂代價;根據移動代價和分裂代價生成元組移動代價資訊;根據元組移動代價資訊,調整最優分區方案獲得複數個預設移動分區方案;通過圖分割演算法獲取各預設移動分區方案對應的調整總代價值;在複數個預設移動分區方案中確定調整總代價值最小的預設移動分區方案為調整分區方案。
【0012】
結合第一方面至第一方面第三實施方式中的任意一項實施方式,在第六實施方式中,若根據最優分區方案對資料庫中的資料進行分區處理失敗,則該方法還包括:採用至少兩種線上分析處理方式進行資料分區,獲得與各線上分析處理方式對應的候選分區方案;確定各候選分區方案與最優分區方案之間的差異值;確定差異值最小的候選分區方案作為當前分區方案,並根據當前分區方案對資料進行分區。
【0013】
結合第一方面第六實施方式,在第七實施方式中,至少兩種線上分析處理方式,包括下述線上分析處理方式中的至少兩種:雜湊函數處理、排列函數處理、迴圈演算法處理和副本管理處理。
【0014】
第二方面,本發明實施例提供一種資料分區裝置,包括:接收模組,用於接收使用者輸入的混合負載和資料庫的結構資訊,混合負載包括至少一個事務型負載、至少一個分析型負載或其組合,資料庫的結構資訊包括與混合負載關聯的至少一個元組;關係確定模組,用於根據混合負載和資料庫的結構資訊,確定元組關係資訊,元組關係資訊包括資料庫的結構資訊中任意兩個元組之間的事務相關性;代價確定模組,用於根據混合負載是否可並存執行的特性以及元組關係資訊,確定元組分裂代價資訊,元組分裂代價資訊包括資料庫的結構資訊中具有事務相關性的任意兩個元組之間的分裂代價,分裂代價用於表示當具有事務相關性的兩個元組分區儲存時,對混合負載訪問具有事務相關性的兩個元組的效率的影響程度;最優選擇模組,用於根據元組分裂代價資訊獲取複數個分區方案,並確定各分區方案中總代價值最小的分區方案作為最優分區方案,其中,每個分區方案的總代價值為採用分區方案時資料庫的結構資訊中具有事務相關性的各個元組之間的分裂代價的總和;分區模組,用於根據最優分區方案,對資料庫儲存的資料進行分區處理。
【0015】
結合第二方面,在第一實施方式中,關係確定模組具體用於:依次根據混合負載中包含的各個負載,在資料庫的結構資訊中分別確定關聯於每個負載的所有元組;根據每個負載所關聯的所有元組中任意兩個元組之間的事務相關性,確定負載所關聯的各個元組之間的關係子資訊;將混合負載中每個負載所關聯的各個元組之間的關係子資訊匯總,獲取元組關係資訊。
【0016】
結合第二方面第一實施方式,在第二實施方式中,代價確定模組具體用於:若元組關係資訊中具有事務相關性的兩個元組所關聯的混合負載的特性為不可並存執行,則確定兩個元組之間的分裂代價為預設的正值;若元組關係資訊中具有事務相關性的兩個元組所關聯的混合負載的特性為可並存執行,則確定兩個元組之間的分裂代價為預設的負值。
【0017】
結合第二方面第二實施方式,在第三實施方式中,元組分裂代價資訊以關係圖表示,在關係圖中具有事務相關性的任意兩個元組之間用連接線連接;則最優選擇模組具體用於採用圖分割演算法對關係圖進行複數種分割處理,確定複數個分區方案,其中每一種分割處理對應於一種分區方案;在對關係圖進行每一種分割處理時,將所分割的每一條連接線所連接的兩個元組之間的分裂代價累加,得到該分割處理所對應的分區方案的總代價值;確定最小的總代價值所對應的分區方案為最優分區方案。
【0018】
結合第二方面第二實施方式,在第四實施方式中,資料分區裝置還包括調整選擇模組,用於在分區模組根據最優分區方案,對資料庫中的資料進行分區處理之後,當元組分裂代價資訊更新為調整元組分裂代價資訊時,採用圖分割演算法對調整元組分裂代價資訊進行複數種分割處理,確定複數個分區方案,其中,每一種分割處理對應於一種分區方案,並確定各分區方案的總代價值;其中調整元組分裂代價資訊以關係圖表示,在關係圖中具有事務相關性的任意兩個元組之間用連接線連接;確定最小的總代價值所對應的分區方案為第一分區方案;根據最優分區方案和第一分區方案,生成元組移動代價資訊,並根據元組移動代價資訊確定調整分區方案。
【0019】
結合第二方面第四實施方式,在第五實施方式中,調整選擇模組具體用於:按照第一分區方案對最優分區方案進行調整時,確定各最優分區內的待移動元組;最優分區為根據最優分區方案確定的儲存區域;根據待移動元組與最優分區之間的調整關係,確定待移動元組與最優分區之間的移動代價;根據元組分裂代價資訊確定待移動元組與最優分區之間的分裂代價;根據移動代價和分裂代價生成元組移動代價資訊;根據元組移動代價資訊,調整最優分區方案獲得複數個預設移動分區方案;通過圖分割演算法獲取各預設移動分區方案對應的調整總代價值;在複數個預設移動分區方案中確定調整總代價值最小的預設移動分區方案為調整分區方案。
【0020】
結合第二方面至第二方面第三實施方式中的任意一項實施方式,在第六實施方式中,資料分區裝置還包括:差異選擇模組,其用於分區模組根據最優分區方案對資料庫中的資料進行分區處理失敗時,採用至少兩種線上分析處理方式進行資料分區,獲得與各線上分析處理方式對應的候選分區方案;確定各候選分區方案與最優分區方案之間的差異值;確定差異值最小的候選分區方案作為當前分區方案,並根據當前分區方案對資料進行分區。
【0021】
在本實施例中,根據混合負載是否可並存執行的特性,將資料庫中與混合負載關聯的資料進行最優分區,分區後的資料兼顧混合負載中事務型負載和分析型負載的特點,使不同負載在訪問資料庫系統中的資料時,都可以獲得較高的訪問效率,從而提升了資料庫系統面向混合負載的工作性能。
【0156】
501‧‧‧接收模組
502‧‧‧關係確定模組
503‧‧‧代價確定模組
504‧‧‧最優選擇模組
505‧‧‧分區模組
506‧‧‧調整選擇模組
507‧‧‧差異選擇模組
601‧‧‧處理器
602‧‧‧接收器
603‧‧‧儲存器
604‧‧‧匯流排
C1‧‧‧001-數學-A
C2‧‧‧001-歷史-B
C3‧‧‧002-歷史-B
S1‧‧‧張興-001
P1‧‧‧第一區域
P2‧‧‧第二區域
S101~S105‧‧‧步驟
S201~S208‧‧‧步驟
S301~S306‧‧‧步驟
S401~S404‧‧‧步驟
【0022】
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖式作一簡單地介紹,顯而易見地,下面描述中的圖式是本發明的一些實施例,對於所屬技術領域具有通常知識者來講,在不付出進步性勞動的前提下,還可以根據這些圖式獲得其他的圖式。
第1圖為本發明資料分區方法實施例一的流程圖;
第2A圖為本發明實施例一中元組關係資訊示意圖;
第2B圖為本發明實施例一中元組分裂代價資訊的示意圖;
第3圖為本發明資料分區方法實施例二的流程圖;
第4A圖為本發明實施例二中負載1對應的元組關係子資訊的示意圖;
第4B圖為本發明實施例二中負載2對應的元組關係子資訊的示意圖;
第5圖為本發明資料分區方法實施例三的流程圖;
第6圖為本發明實施例三中元組移動代價資訊的示意圖;
第7圖為本發明資料分區方法實施例四的流程圖;
第8圖為本發明資料分區裝置實施例一的結構圖;
第9圖為本發明資料分區裝置實施例二的結構圖;以及
第10圖為本發明資料庫管理設備實施例一的結構圖。
【0023】
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,所屬技術領域具有通常知識者在沒有做出進步性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
【0024】
第1圖為本發明資料分區方法實施例一的流程圖。本實施例的方法可以由資料分區裝置來實現,該裝置可以採用硬體和/或軟體方式來實現。如第1圖所示,該方法包括:
【0025】
S101、接收使用者輸入的混合負載和資料庫的結構資訊。
【0026】
作為用於資料管理的資料庫系統,預先已輸入資料庫結構資訊,該資料庫結構資訊包括大量的資料資訊及資料間的關聯式結構,其中資料資訊可以為教育系統中歷屆學生的各科考試成績,也可以是一個醫院中記錄的病人就診資訊,以學生考試成績為例,記錄成績的資料按照一定的資料間的關聯式結構來儲存,這些結構包括表1所示的關聯式結構“姓名-編號”、表2所示的關聯式結構“編號-科目-成績”等。
表1
表2
 
【0027】
上述表1和表2中的各個條目,如表1中的“張興-001”、表2中的“001-數學-A”等,皆為構成資料庫結構資訊中的一個元組,即元組為資料庫儲存的資料,這些元組被資料庫接收到的負載訪問。例如接收到的負載為“查詢張興的數學成績”,則根據該負載在表1中查詢到張興對應的編號001,隨即在表2中根據條目“001-數學-A”查詢到張興的數學成績為A。
【0028】
由於負載的類型不同,則上述元組在資料庫系統中分區時,需兼顧不同類型負載的特點,以利於各類型負載的對資料庫系統的訪問。
【0029】
為獲得利於各類型負載訪問的資料分區方案,在本實施例中,資料分區裝置需接收使用者預先輸入的混合負載、或使用者在一段時間輸入的混合負載。該混合負載包括至少一個事務型負載、至少一個分析型負載或其組合,則上述資料庫的結構資訊具體包括與混合負載關聯的至少一個元組。其中,事務型負載訪問的元組在資料庫中集中儲存時,則該事務型負載可在訪問該資料庫時有較高的效率;而對於分析型負載,若涉及的元組分區儲存,則該分析型負載便可有較高的訪問效率。
【0030】
S102、根據混合負載和資料庫的結構資訊,確定元組關係資訊。
【0031】
當用戶輸入“查詢張興的數學成績和歷史成績”和“統計成績為B的科目”時,其中負載1“查詢張興的數學成績和歷史成績”僅僅涉及少量資料的查詢,則該負載1為事務型負載,而負載2“統計成績為B的科目”涉及大量資料的分析處理,則該負載2為分析型負載,即資料分區裝置接收到包含了事務型負載和分析型負載的混合負載。
【0032】
為了便於敘述,將表1中元組“張興-001”表示為S1、“趙一-002”表示為S2;而表2中,“001-數學-A”表示為C1、“001-歷史-B”表示為C2、“002-數學-B”表示為C3,則負載1需訪問的元組有表1中的S1“張興-001”和表2中的C1“001-數學-A”、C2“001-歷史-B”;而負載2需要在表2中篩選出C2“001-歷史-B”和C3“002-數學-B”,其中,基於負載1,S1和C1、S1和C2之間具有事務相關性,基於負載2,C2和C3之間具有事務相關性,由此便可確定出元組關係資訊,即元組關係資訊包括任意兩個元組之間的事務相關性。
【0033】
第2A圖為本發明實施例一中元組關係資訊示意圖。如第2A圖所示,元組關係資訊以關係圖形式表示,元組關係資訊中的每個節點表示一個元組,各元組之間的連接關係表示事務相關性。例如,對於負載1來說,必須根據S1獲知張興對應的編號,才可根據C1和C2獲知張興數學和歷史的成績,即在元組關係資訊中,S1和C1、S1和C2之間存在事務相關性,故代表S1和C1、S1和C2之間有連接關係,對於負載2來說,需要查找成績為B的各個元組,因此C2和C3之間存在事務相關性,則代表C2和C3的兩個節點之間有連接關係。
【0034】
S103、根據混合負載是否可並存執行的特性以及元組關係資訊,確定元組分裂代價資訊。
【0035】
上述元組分裂代價資訊包括資料庫的結構資訊中具有事務相關性的任意兩個所述元組之間的分裂代價,該分裂代價用於表示當具有事務相關性的兩個元組分區儲存時,對混合負載訪問具有事務相關性的兩個元組的效率的影響程度。
【0036】
舉例來說,假設S1與C1分區儲存,則對於涉及訪問S1和C1的負載1來說,必須先在一個儲存區域中獲知張興對應的編號,才可在另一個儲存區域中查詢該編號對應的成績,即混合負載中的負載1不可並存執行,分區儲存影響負載的訪問效率;而對於負載2來說,只需訪問成績為B的元組,則當負載2訪問資料庫時,即使C2和C3分區儲存,負載2可在一個儲存區域中查找成績為B的元組C2的同時,也可在另一個儲存區域中查找成績為B的元組C3,即混合負載中的負載2可被並存執行。
【0037】
第2B圖為本發明實施例一中元組分裂代價資訊的示意圖。如第2B圖所示,在第2A圖所示的元組關係資訊的基礎上,根據混合負載是否可並存執行的特性,在元組關係資訊中確定出任意兩個元組的之間的分裂代價,將元組分裂代價資訊以完整的關係圖表示;例如S1和C1之間的分裂代價為1,表示S1和C1分區儲存不利於負載訪問,而C2和C3之間的分裂代價為-1,表示C2和C3分區儲存利於負載訪問。
【0038】
需要說明的是,本實施例中分裂代價的取值並不限制為1或-1,可根據負載在混合負載中所佔的比重配置取值,例如負載1訪問的次數遠大於負載2時,則對於不可並存執行的負載1來說,若需集中儲存的元組分區儲存,會嚴重影響負載1對資料庫的訪問效率,為獲得合理的分區方案,與負載1關聯的元組之間分裂代價的取值可以相對於負載2取較大的數值,如5、10等較大的數值。
【0039】
S104、根據元組分裂代價資訊獲取複數個分區方案,並確定各分區方案中總代價值最小的分區方案作為最優分區方案。
【0040】
其中,每個分區方案的總代價值為採用該分區方案時資料庫的結構資訊中具有事務相關性的各個元組之間的分裂代價的總和;具體來說,上述分區方案中指示一些元組將不再同一個區域儲存,其中具有事務相關性的任意兩個元組按照該分區方案將被分區儲存時,這些具有事務相關性的各個元組之間的分裂代價的總和,得到該分區方案對應的總代價值。,具體如表3所示:
表3
 
【0041】
以方案1為例,若按照方案1將資料庫中的資料分區,則需將S1和C1放在第一區域P1中,而將C2和C3放在第二區域P2中時,使得C2和S1分區放置,將會產生 分裂代價值1 ,計算按照該分區方案進行分區時具有事務相關性的各個元組之間的分裂代價的總和,獲得該分區方案對應的總代價值;隨後與獲得方案1的總代價值的過程類似,分別獲得方案2和方案3的總代價值,可以理解的是,由於總代價值為具有事務相關性的各個元組之間的分裂代價的總和,且分裂代價是用於表示當具有事務相關性的兩個元組分區儲存時,對混合負載訪問該具有事務相關性的兩個元組的效率的影響程度,因此,若總代價值越大,該分區方案對負載訪問資料庫的效率的不利影響也越大,因此選擇總代價值最小的分區方案作為最優分區方案。
【0042】
S105、根據最優分區方案,對資料庫中的資料進行分區處理。
【0043】
在本實施例中,根據混合負載是否可並存執行的特性,將資料庫中與該混合負載關聯的資料進行最優分區,分區後的資料兼顧混合負載中事務型負載和分析型負載的特點,使不同負載在訪問資料庫系統中的資料時,可以獲得較高的訪問效率,從而提升了資料庫系統面向混合負載的工作性能。
【0044】
第3圖為本發明資料分區方法實施例二的流程圖。如第3圖所示,本實施例是在實施例一的基礎上進一步描述資料分區方法,該方法包括:
【0045】
S201、接收使用者輸入的混合負載和資料庫結構資訊。
【0046】
如本發明實施例一中S102中的例子,混合負載中包括複數個不同的負載、其中接收的混合負載是一種經驗模型,即根據經驗預測的混合負載,例如對於一個存放學生成績的資料庫,對該資料庫常見的負載訪問即為填寫成績、分析計算所有學生的平均成績等。
【0047】
S202、依次根據混合負載中包含的各個負載,在資料庫的結構資訊中分別確定關聯於每個負載的所有元組。
【0048】
資料分區裝置分析接收到的混合負載,根據混合負載中的各個負載、依次確定與各個負載關聯的所有元組,具體如實施例一中示例、資料分區裝置分析混合負載中包括負載1和負載2兩個負載,分別確定與負載1關聯的所有元組為S1、C1和C2、與負載2關聯的所有元組為C2和C3。
【0049】
S203、根據每個負載所關聯的所有元組中任意兩個元組之間的事務相關性,確定該負載所關聯的各個元組之間的關係子資訊。
【0050】
第4A圖為本發明實施例二中負載1對應的元組關係子資訊的示意圖,第4B圖為本發明實施例二中負載2對應的元組關係子資訊的示意圖。如第4A圖所示,與負載1關聯的元組S1、C1和C2,根據元組之間的事務關聯性,確定出負載1所關聯的各個元組之間的元組關係子資訊;同理,如第4B圖所示,確定出負載2所關聯的各個元組之間的元組關係子資訊。
【0051】
在本實施例中以混合負載僅包括兩個負載為例,但在實際應用中,混合負載包括的負載個數較多,由此可確定出複數個元組關係子資訊。
【0052】
S204、將混合負載中每個負載所關聯的各個元組之間的關係子資訊匯總,獲取元組關係資訊。
【0053】
分析上述各個負載所關聯的各個元組之間的元組關係子資訊,以第4A圖和第4B圖所示的兩個元組關係子資訊為例,將第4A圖和第4B圖中兩個元組關係子資訊合併為一個完整的、如第2A圖所示的元組關係資訊。
【0054】
S205、根據混合負載是否可並存執行的特性以及元組關係資訊,確定元組分裂代價資訊。
【0055】
具體的,若元組關係資訊中具有事務相關性的兩個元組所關聯的混合負載的特性為不可並存執行,則確定上述兩個元組之間的分裂代價為預設的正值;
【0056】
若元組關係資訊中具有事務相關性的兩個元組所關聯的混合負載的特性為可並存執行,則確定上述兩個元組之間的分裂代價為預設的負值。
【0057】
例如,如第2B圖所示,負載1不可並存執行,則與負載1關聯的S1和C1之間的分裂代價確定為正值1;而負載2可並存執行,則與負載2關聯的C2和C3之間的分裂代價為負值-1,在實際應用中,具體的數值大小可根據負載的訪問頻率進行預設。
【0058】
S206、根據元組分裂代價資訊獲取複數個分區方案,確定各分區方案中總代價值最小的分區方案作為最優分區方案。
【0059】
在S206中確定的分區方案至少為兩個,例如表3所示的複數個方案。
【0060】
S207、採用圖分割演算法,確定各分區方案的總代價值。
【0061】
上述元組分裂代價資訊可以關係圖表示,如上述第2B圖所示的關係圖,在所述關係圖中具有事務相關性的任意兩個元組之間用連接線連接,該連接線與具有事務相關性的兩個元組之間的分裂代價相對應,則可採用圖分割演算法對該關係圖進行複數種分割處理,確定複數個分區方案,其中每一種分割處理對應於一種分區方案;並在對上述關係圖進行每一種分割處理時,將所分割的每一條連接線所連接的兩個元組之間的分裂代價累加,得到該分割處理所對應的分區方案的總代價值;例如要獲得上述表三中的方案1,則需要將第2B圖中的S1和C2之間的連接線分割,並將該連接線所連接的兩個元組之間的分裂代價統計,用於計算複數個連接線所連接的兩個元組之間的分裂代價的總和;由於獲得方案1時僅需分割S1和C2之間的連接線,則該方案1對應的總代價值即為S1和C2之間的分裂代價。
【0062】
S208、確定最小的總代價值所對應的分區方案為最優分區方案。
【0063】
在本實施例中,根據混合負載是否可並存執行的特性,並結合圖分割演算法,將資料庫中與該混合負載關聯的資料進行最優分區,分區後的資料兼顧混合負載中事務型負載和分析型負載的特點,使不同負載在訪問資料庫系統中的資料時,可以獲得較高的訪問效率,從而提升了資料庫系統面向混合負載的工作性能。
【0064】
使用者在使用資料庫的過程中,需求會發生變化,即輸入的負載發生了變化,例如出現新的負載3,該負載3關聯的元組可能為S2和C3,由此增加了一個元組關係子資訊,從而根據混合負載確定的元組關係資訊也需發生變化,需對資料重新分區;或者是一些負載的訪問頻率發生了變化,例如,在前次確定最優分區方案時,由於負載1的訪問頻率較高,則該最優分區方案較多地便於負載1訪問,以此提升混合負載對資料庫的訪問效率,但在使用資料庫一段時間後,由於各種原因,使用者輸入負載2的頻率遠大於負載1時,但該最優資料分區方案不便於負載2訪問,因此該資料庫的分區方案需要進行調整,即根據上述最優分區方案,對所述資料庫中的資料進行分區處理之後,當所述元組分裂代價資訊發生更新為調整元組分裂代價資訊時,需調整資料庫內的資料分區。
【0065】
第5圖為本發明資料分區方法實施例三的流程圖。如第5圖所示,在上述實施例一或實施例二的基礎上進一步的優化資料分區方法,具體的,該方法包括:
【0066】
S301、接收使用者輸入的混合負載。
【0067】
在本實施例中,資料分區裝置接收到混合負載為在一段時間內,用戶使用該資料庫系統時輸入的負載。
【0068】
S302、根據接收的混合負載,確定調整元組分裂代價資訊。
【0069】
根據一段時間內資料分區裝置接收到的混合負載,並結合資料庫內的元組,獲得調整元組分裂代價資訊。
【0070】
S303、根據調整元組分裂代價資訊,確定至少兩個分區方案。
【0071】
上述調整元組分裂代價資訊以關係圖表示,在該關係圖中具有事務相關性的任意兩個元組之間用連接線連接,即調整元組分裂代價資訊也可採用如第2B圖所示的關係圖表示,則可採用圖分割演算法對該調整元組分裂代價資訊進行複數種分割處理,確定複數個分區方案,其中,每一種分割處理對應於一種分區方案,並確定各所述分區方案的總代價值;上述S302至S303的具體實現過程可參考S201~206,在此不再贅述。
【0072】
S304、確定最小的總代價值所對應的分區方案為第一分區方案。
【0073】
第一分區方案是根據當前一段時間接收的混合負載所確定的總代價值最小的分區方案,可以理解為該第一分區方案完全便於當前混合負載的訪問。
【0074】
S305、根據最優分區方案和第一分區方案,生成元組移動代價資訊。
【0075】
當按照第一分區方案對最優分區方案進行調整時,確定各最優分區內的待移動元組,該最優分區為根據上述最優分區方案確定的儲存區域;最優分區方案以P1(S1、C3),P2(C1、C2)為例,其中P1、P2為根據最優分區方案確定的兩個儲存區域;而確定的第一分區方案以P1’(S1、C2),P2’(C1、C3)為例;當按照第一分區方案對最優分區方案進行調整時,分析比對最優分區方案和第一分區方案,可知元組C2和C3需要發生移動,即C2和C3為待移動元組,則根據待移動元組與最優分區之間的調整關係,確定待移動元組與最優分區之間的移動代價;例如,當在調整最優分區方案獲得第一分區方案時,C2需移出最優分區P2,C3需移出最優分區P1,則P2和C2、P1和C3之間存在調整關係,具體的移動代價的取值可以預設,例如C2這一元組中包括的資料較多,移動C2中的資料花費的資源成本較大,因此可將C2的移動代價的取值設置的較大,以對應調整過程所需的資源成本。
【0076】
在確定移動代價後,還需根據上述調整元組分裂代價資訊確定待移動元組與最優分區之間的分裂代價;並根據移動代價和分裂代價生成元組移動代價資訊。
【0077】
具體的,第6圖為本發明實施例三中元組移動代價資訊的示意圖。如第6圖所示,通過將C2移出P2、C3移出P1才可獲得第一分區方案,則C2與P2、C3與P1之間的連接關係表示移動代價,而C2與P1內的S1之間存在分裂代價,此時,C2與P1內的S1之間存在的分裂代價即為待移動元組C2與最優分區P1之間的分裂代價。
【0078】
S306、根據調整元組移動代價資訊確定調整分區方案。
【0079】
上述元組移動代價資訊也可以關係圖表示,在該關係圖待移動元組與最優分區之間的調整關係、及待移動元組與最優分區內的元組之間的事務相關性用連接線表示,則可採用圖分割演算法對該元組移動代價資訊進行複數種分割處理,確定複數個預設移動分區方案。具體來說對於任意一種分區方案,總是存在一定的分裂代價值,舉例來說,最優分區方案對於當前接收到的混合負載來說,分裂代價值為10,而第一分區方案的分裂代價值為4,則將最優分區方案調整為第一分區方案,以使分裂代價值降低,但根據移動代價資訊可知,若調整最優分區方案獲得第一分區方案時,需付出移動代價5,由10-4+5=11可知,該調整過程加注至第一分區方案的總代價值為11,經分析可知,為了減小4個分裂代價值卻要付出移動代價5,是一次浪費資源的調整,但為了使資料庫的分區方案適用於當前的混合負載,可選擇將最優分區方案調整為預設移動分區方案。
【0080】
具體的,可採用圖分割演算法對該元組移動代價資訊進行複數種分割處理,確定複數個預設移動分區方案,複數個預設移動分區方案中包括最優的分區方案(即選擇不進行調整,繼續使用上述最優分區方案)、第一分區方案或複數個調整部分元組獲得的分區方案,例如P1”(S1),P2”(C1、C2、C3)。
【0081】
獲得複數個預設移動分區方案後,需在複數個所述預設移動分區方案中確定調整總代價值最小的預設移動分區方案為最優分區方案;具體的,通過圖分割演算法獲取複數個所述預設移動分區方案對應的調整總代價值,即計算調整最優分區方案為預設移動分區方案這一過程中,加注至該預設移動分區方案內的調整總代價值,最後在複數個預設移動分區方案中確定調整總代價值最小的預設移動分區方案為調整分區方案。
【0082】
在本實施例中,資料庫系統進行最優分區後,在用戶的使用過程中,使用者輸入的負載發生了變化,則根據使用者輸入的負載,對資料庫系統中已有的分區做以調整,在進行調整時還兼顧了進行調整所需的移動代價,以花費最小的移動代價獲取最優的分區方案為前提,使不同負載在訪問資料庫系統中的資料時,可以獲得較高的訪問效率,從而提升了資料庫系統面向混合負載的工作性能。
【0083】
在實際應用中,會有一些客觀因素無法使用前述方法對資料庫內的資料進行分區,但為了使資料庫系統的分區方案適用於混合負載,可以採用前述方法確定的分區方案為參照,在資料庫系統所採用現有的分區方案中確定較適用與混合負載的分區方案。
【0084】
第7圖為本發明資料分區方法實施例四的流程圖。如第7圖所示,本實施例為在根據實施例一或實施例二確定的最優分區方案對資料庫中的資料進行分區處理失敗後,進行的一種資料分區方法,該方法包括:
【0085】
S401、獲取最優分區方案。
【0086】
在一些設備中,可能不支援執行S201~S209所述的方法,為了使該設備中的資料分區合理化,則可使該設備外接執行實施例二的資料分區裝置,該資料分區裝置根據該設備接收的混合負載及該設備的資料結構資訊,獲取最優分區方案,具體過程與S201~S209一致,在此不再贅述。
【0087】
S402、採用至少兩種線上分析處理方式進行資料分區,獲得與各線上分析處理方式對應的候選分區方案。
【0088】
上述線上分析處理方式為現有技術,例如雜湊函數處理、排列函數處理、迴圈演算法處理和副本管理處理,則該線上分析處理方式可在上述設備中使用,獲得與各線上分析處理方式對應的候選分區方案。
【0089】
S403、確定各候選分區方案與所述最優分區方案之間的差異值。
【0090】
上述最優分區方案以S表示,則S=(P1 ,P2 ,P3 ,……,Pj ……),其中Pj 表示最優分區方案中第j個分區。
【0091】
候選分區方案以Si 表示,其中i表示複數個候選分區方案中的一個分區方案的編號,則Si =(Pi,1 ,Pi,2 ,Pi,3 ,……,Pi,j ……),其中Pi,j 表示分區方案i的第j個分區,i M,其中M為候選分區方案的總數。
【0092】
上述分區Pj 中的元組以(t1 ,t2 ,…,t3 …)表示,Pi,j 中存在的元組以(ti,1 ,ti,2 ,…,ti,i …)表示。
【0093】
計算S和各個候選分區方案Si 的差異值,該差異值以Di 表示,則Di =│S-Si │= │P-Pi,j │= (ti ⊕ti,j )。
【0094】
S404、確定差異值最小的候選分區方案作為當前分區方案,並根據該當前分區方案對資料進行分區。
【0095】
在分別計算該最優分區方案與各個候選分區方案對應的差異值Di 後,確定差異值最小的分區方案,為該設備可選擇的最優分區方案。
【0096】
在本實施例中,結合實際情況,在對資料庫系統中的資料進行分區時,可以靈活的將採用圖分割演算法獲得的最優分區方案作為參考標準,在通過現有方法獲得的候選分區方案中選擇與參考標準最接近的候選分區方案,從而使資料庫系統可以採用現有方法時,混合負載可以有較高的訪問效率,避免了因設備不支援等客觀因素,導致無法採用現有方法獲得便於混合負載訪問的分區方案的情況。
【0097】
第8圖為本發明資料分區裝置實施例一的結構圖。如第8圖所示,包括:
【0098】
接收模組501,用於接收使用者輸入的混合負載和資料庫的結構資訊,所述混合負載包括至少一個事務型負載、至少一個分析型負載或其組合,所述資料庫的結構資訊包括與所述混合負載關聯的至少一個元組;
【0099】
關係確定模組502,用於根據所述混合負載和所述資料庫的結構資訊,確定元組關係資訊,所述元組關係資訊包括所述資料庫的結構資訊中任意兩個所述元組之間的事務相關性;
【0100】
代價確定模組503,用於根據所述混合負載是否可並存執行的特性以及所述元組關係資訊,確定元組分裂代價資訊,所述元組分裂代價資訊包括所述資料庫的結構資訊中具有事務相關性的任意兩個元組之間的分裂代價,所述分裂代價用於表示當具有事務相關性的兩個元組分區儲存時,對所述混合負載訪問所述具有事務相關性的兩個元組的效率的影響程度;
【0101】
最優選擇模組504,用於根據所述元組分裂代價資訊獲取複數個分區方案,並確定各分區方案中總代價值最小的分區方案作為最優分區方案,其中,每個分區方案的總代價值為採用該分區方案時所述資料庫的結構資訊中具有事務相關性的各個元組之間的分裂代價的總和;
【0102】
分區模組505,用於根據所述最優分區方案,對所述資料庫儲存的資料進行分區處理。
【0103】
在本實施例中,根據混合負載是否可並存執行的特性,並結合圖分割演算法,將資料庫中與該混合負載關聯的資料進行最優分區,分區後的資料兼顧混合負載中事務型負載和分析型負載的特點,使不同負載在訪問資料庫系統中的資料時,可以獲得較高的訪問效率,從而提升了資料庫系統面向混合負載的工作性能。
【0104】
第9圖為本發明資料分區裝置實施例二的結構圖。如第9圖所示,關係確定模組502具體用於依次根據所述混合負載中包含的各個負載,在所述資料庫結構資訊中分別確定關聯於每個所述負載的所有元組;
【0105】
根據每個所述負載所關聯的所有元組中任意兩個元組之間的事務相關性,確定該負載所關聯的各個元組之間的關係子資訊;
【0106】
將所述混合負載中每個負載所關聯的各個元組之間的關係子資訊匯總,獲取所述元組關係資訊。
【0107】
代價確定模組503具體用於若所述元組關係資訊中具有事務相關性的兩個元組所關聯的混合負載的特性為不可並存執行,則確定所述兩個元組之間的分裂代價為預設的正值;
【0108】
若所述元組關係資訊中具有事務相關性的兩個元組對應的混合負載的特性為可並存執行,則確定所述兩個元組之間的分裂代價為預設的負值。
【0109】
所述元組分裂代價資訊以關係圖表示,在所述關係圖中具有事務相關性的任意兩個元組之間有連接線;上述最優選擇模組504用於採用圖分割演算法對所述關係圖進行複數種分割處理,確定複數個分區方案,其中每一種分割處理對應於一種分區方案;
【0110】
並在對所述關係圖進行每一種分割處理時,將所分割的每一條連接線所連接的兩個元組之間的分裂代價累加,得到該分割處理所對應的分區方案的總代價值;
【0111】
確定最小的總代價值所對應的分區方案為最優分區方案。
【0112】
進一步的,所述裝置還包括調整選擇模組506用於在所述分區模組505根據所述最優分區方案,對所述資料庫中的資料進行分區處理之後,當所述元組分裂代價資訊更新為調整元組分裂代價資訊時,採用圖分割演算法對所述調整元組分裂代價資訊進行複數種分割處理,確定複數個分區方案,其中,每一種分割處理對應於一種分區方案,並確定各所述分區方案的總代價值;其中所述調整元組分裂代價資訊以關係圖表示,在所述關係圖中具有事務相關性的任意兩個元組之間用連接線連接;
【0113】
確定最小的總代價值所對應的分區方案為第一分區方案;
【0114】
根據所述最優分區方案和所述第一分區方案,生成元組移動代價資訊,並根據所述元組移動代價資訊確定調整分區方案。
【0115】
進一步的,所述調整選擇模組506具體用於當按照所述第一分區方案對所述最優分區方案進行調整時,確定各最優分區內的待移動元組;所述最優分區為根據所述最優分區方案確定的儲存區域;還用於根據所述待移動元組與所述最優分區之間的調整關係,確定待移動元組與所述最優分區之間的移動代價;
【0116】
根據所述元組分裂代價資訊確定所述待移動元組與所述最優分區之間的分裂代價;
【0117】
根據所述移動代價和分裂代價生成元組移動代價資訊;
【0118】
根據所述元組移動代價資訊,調整最優分區方案獲得複數個預設移動分區方案;
【0119】
通過圖分割演算法獲取各所述預設移動分區方案對應的調整總代價值;
【0120】
在複數個所述預設移動分區方案中確定調整總代價值最小的預設移動分區方案為調整分區方案。
【0121】
更靈活的,所述裝置還可包括差異選擇模組507,用於所述分區模組505根據所述最優分區方案對所述資料庫中的資料進行分區處理失敗,採用至少兩種線上分析處理方式進行資料分區,獲得與各線上分析處理方式對應的候選分區方案,其中,上述線上分析處理方式為現有技術,例如雜湊函數處理、排列函數處理、迴圈演算法處理和副本管理處理;
【0122】
確定各候選分區方案與所述最優分區方案之間的差異值;
【0123】
確定差異值最小的候選分區方案作為當前分區方案,並根據該當前分區方案對資料進行分區。
【0124】
在本實施例中,根據混合負載是否可並存執行的特性,並結合圖分割演算法,將資料庫中與該混合負載關聯的資料進行最優分區,分區後的資料兼顧混合負載中事務型負載和分析型負載的特點,使不同負載在訪問資料庫系統中的資料時,可以獲得較高的訪問效率,從而提升了資料庫系統面向混合負載的工作性能。
【0125】
上述各裝置實施例中的各模組對應各方法實施例,在此不再贅述。
【0126】
進一步的,在實際應用中,上述資料分區裝置可以為資料庫管理設備。第10圖為本發明資料庫管理設備實施例一的結構圖。如第10圖所示,該資料庫管理設備包括:處理器601、接收器602、記憶體603匯流排604。
【0127】
其中,處理器601、接收器602、記憶體603、通過匯流排604相互連接;匯流排604可以是ISA匯流排、PCI匯流排或EISA匯流排等。所述匯流排可以分為位址匯流排、資料匯流排、控制匯流排等。為便於表示,第10圖中僅用一條粗線表示,但並不表示僅有一根匯流排或一種類型的匯流排。
【0128】
記憶體603,用於存放程式及資料。具體地,程式可以包括程式碼,所述程式碼包括電腦操作指令。記憶體603能包含高速RAM記憶體,也可能還包括非揮發性記憶體(non-volatile memory),例如至少一個磁碟記憶體;而處理器601執行記憶體603所存放的程式;具體的,所述資料庫管理設備中,接收器602,用於接收使用者輸入的混合負載和資料庫的結構資訊,所述混合負載包括至少一個事務型負載、至少一個分析型負載或其組合,所述資料庫的結構資訊包括與所述混合負載關聯的至少一個元組,被記憶體603儲存;
【0129】
處理器601,用於根據所述混合負載和所述資料庫的結構資訊,確定元組關係資訊,所述元組關係資訊包括所述資料庫的結構資訊中任意兩個元組之間的事務相關性;
【0130】
處理器601用於根據所述混合負載是否可並存執行的特性以及所述元組關係資訊,確定元組分裂代價資訊,所述元組分裂代價資訊包括所述資料庫的結構資訊中具有事務相關性的任意兩個元組之間的分裂代價,所述分裂代價用於表示當具有事務相關性的兩個元組分區儲存時,對所述混合負載訪問所述具有事務相關性的兩個元組的效率的影響程度;
【0131】
處理器601用於根據所述元組分裂代價資訊獲取複數個分區方案,並確定各分區方案中總代價值最小的分區方案作為最優分區方案,其中,每個分區方案的總代價值為採用該分區方案時所述資料庫的結構資訊中具有事務相關性的各個元組之間的分裂代價的總和;
【0132】
上述處理器601用於根據所述最優分區方案,對所述資料庫儲存的資料進行分區處理。
【0133】
進一步的,處理器601依次根據所述混合負載中包含的各個負載,在所述資料庫的結構資訊中分別確定關聯於每個所述負載的所有元組;
【0134】
處理器601根據每個所述負載所關聯的所有元組中任意兩個元組之間的事務相關性,確定該負載所關聯的各個元組之間的關係子資訊;
【0135】
處理器601將所述混合負載中每個負載所關聯的各個元組之間的關係子資訊匯總,獲取所述元組關係資訊。
【0136】
若所述元組關係資訊中具有事務相關性的兩個元組所關聯的混合負載的特性為不可並存執行,則處理器601確定所述兩個元組之間的分裂代價為預設的正值;若所述元組關係資訊中具有事務相關性的兩個元組所關聯的混合負載的特性為可並存執行,則處理器601確定所述兩個元組之間的分裂代價為預設的負值。
【0137】
所述元組分裂代價資訊以關係圖表示,在所述關係圖中具有事務相關性的任意兩個元組之間用連接線連接;則進一步的,處理器601採用圖分割演算法對所述關係圖進行複數種分割處理,確定複數個分區方案,其中每一種分割處理對應於一種分區方案;
【0138】
在對所述關係圖進行每一種分割處理時,將所分割的每一條連接線所連接的兩個元組之間的分裂代價累加,得到該分割處理所對應的分區方案的總代價值;
【0139】
處理器601確定最小的總代價值所對應的分區方案為最優分區方案。
【0140】
進一步的,所述根據所述最優分區方案,以對所述資料庫中的資料進行分區處理之後,當所述元組分裂代價資訊更新為調整元組分裂代價資訊時,處理器601還用於採用圖分割演算法對所述調整元組分裂代價資訊進行複數種分割處理,確定複數個分區方案,其中,每一種分割處理對應於一種分區方案,並確定各所述分區方案的總代價值;其中所述調整元組分裂代價資訊以關係圖表示,在所述關係圖中具有事務相關性的任意兩個元組之間用連接線連接;
【0141】
處理器601確定最小的總代價值所對應的分區方案為第一分區方案;
【0142】
根據所述最優分區方案和所述第一分區方案,生成元組移動代價資訊,並根據所述元組移動代價資訊確定調整分區方案。
【0143】
進一步的,所述資料庫管理設備的處理器601用於按照所述第一分區方案對所述最優分區方案進行調整時,確定各最優分區內的待移動元組;所述最優分區為根據所述最優分區方案確定的儲存區域;
【0144】
還用於根據所述待移動元組與所述最優分區之間的調整關係,確定待移動元組與所述最優分區之間的移動代價;
【0145】
處理器601根據所述元組分裂代價資訊確定所述待移動元組與所述最優分區之間的分裂代價;
【0146】
處理器601根據所述移動代價和分裂代價生成元組移動代價資訊;
【0147】
處理器601根據所述元組移動代價資訊,調整最優分區方案獲得複數個預設移動分區方案;
【0148】
處理器601通過圖分割演算法獲取各所述預設移動分區方案對應的調整總代價值;
【0149】
則處理器601在複數個所述預設移動分區方案中確定調整總代價值最小的預設移動分區方案為調整分區方案。
【0150】
處理器601還用於在根據所述最優分區方案對所述資料庫中的資料進行分區處理失敗時,採用至少兩種線上分析處理方式進行資料分區,獲得與各線上分析處理方式對應的候選分區方案;
【0151】
確定各候選分區方案與所述最優分區方案之間的差異值;
【0152】
確定差異值最小的候選分區方案作為當前分區方案,並根據所述當前分區方案對資料進行分區,其中,上述線上分析處理方式為現有技術,例如雜湊函數處理、排列函數處理、迴圈演算法處理和副本管理處理;
【0153】
在本實施例中,資料庫管理設備根據混合負載是否可並存執行的特性,並結合圖分割演算法,將資料庫中與該混合負載關聯的資料進行最優分區,分區後的資料兼顧混合負載中事務型負載和分析型負載的特點,使不同負載在訪問資料庫系統中的資料時,可以獲得較高的訪問效率,從而提升了資料庫系統面向混合負載的工作性能。
【0154】
所屬技術領域具有通常知識者可以理解:實現上述各方法實施例的全部或部分步驟可以通過程式指令相關的硬體來完成。前述的程式可以儲存於一電腦可讀取儲存介質中。該程式在執行時,執行包括上述各方法實施例的步驟;而前述的儲存介質包括:ROM、RAM、磁碟或者光碟等各種可以儲存程式碼的介質。
【0155】
最後應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,所屬技術領域具有通常知識者應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。
國內寄存資訊【請依寄存機構、日期、號碼順序註記】
國外寄存資訊【請依寄存國家、機構、日期、號碼順序註記】
S101~S105‧‧‧步驟

Claims (15)

  1. 【第1項】
    一種資料分區方法,其中,包括:
    接收使用者輸入的一混合負載和一資料庫的結構資訊,該混合負載包括至少一個事務型負載、至少一個分析型負載或其組合,該資料庫的結構資訊包括與該混合負載關聯的至少一個元組;
    根據該混合負載和該資料庫的結構資訊,確定一元組關係資訊,該元組關係資訊包括該資料庫的結構資訊中任意兩個元組之間的事務相關性;
    根據該混合負載是否可並存執行的特性以及該元組關係資訊,確定一元組分裂代價資訊,該元組分裂代價資訊包括該資料庫的結構資訊中具有事務相關性的任意兩個元組之間的一分裂代價,該分裂代價用於表示當具有事務相關性的兩個元組分區儲存時,對該混合負載訪問該具有事務相關性的兩個元組的效率的影響程度;
    根據該元組分裂代價資訊獲取複數個分區方案,並確定各該分區方案中總代價值最小的該分區方案作為一最優分區方案,其中,各該分區方案的總代價值為採用該分區方案時該資料庫的結構資訊中具有事務相關性的各個元組之間的該分裂代價的總和;
    根據該最優分區方案,對該資料庫儲存的資料進行分區處理。
  2. 【第2項】
    如申請專利範圍第1項所述的資料分區方法,其中,所述根據該混合負載和該資料庫的結構資訊,確定該元組關係資訊,包括:
    依次根據該混合負載包含的各個負載,在該資料庫的結構資訊中分別確定關聯於各該負載的所有元組;
    根據各該負載所關聯的所有元組中任意兩個元組之間的事務相關性,確定該負載所關聯的各個元組之間的關係子資訊;
    將該混合負載中各該負載所關聯的各個元組之間的關係子資訊匯總,獲取該元組關係資訊。
  3. 【第3項】
    如申請專利範圍第2項所述的資料分區方法,其中,所述根據該混合負載是否可並存執行的特性以及該元組關係資訊,確定該元組分裂代價資訊,包括:
    若該元組關係資訊中具有事務相關性的兩個元組所關聯的該混合負載的特性為不可並存執行,則確定兩個元組之間的該分裂代價為預設的正值;
    若該元組關係資訊中具有事務相關性的兩個元組所關聯的該混合負載的特性為可並存執行,則確定兩個元組之間的該分裂代價為預設的負值。
  4. 【第4項】
    如申請專利範圍第3項所述的資料分區方法,其中,該元組分裂代價資訊以一關係圖表示,在該關係圖中具有事務相關性的任意兩個元組之間用連接線連接;所述根據該元組分裂代價資訊獲取該複數個分區方案,確定各該分區方案中總代價值最小的該分區方案作為該最優分區方案,包括:
    採用圖分割演算法對該關係圖進行複數種分割處理,確定該複數個分區方案,其中每一種分割處理對應於一種該分區方案;
    在對該關係圖進行每一種分割處理時,將所分割的每一條連接線所連接的兩個元組之間的該分裂代價累加,得到該分割處理所對應的該分區方案的總代價值;
    確定最小的總代價值所對應的該分區方案為該最優分區方案。
  5. 【第5項】
    如申請專利範圍第3項所述的資料分區方法,其中,在所述根據該最優分區方案,對該資料庫中的資料進行分區處理之後,該方法還包括:
    當該元組分裂代價資訊更新為一調整元組分裂代價資訊時,採用圖分割演算法對該調整元組分裂代價資訊進行複數種分割處理,確定該複數個分區方案,其中,每一種分割處理對應於一種該分區方案,並確定各該分區方案的總代價值;其中該調整元組分裂代價資訊以一關係圖表示,在該關係圖中具有事務相關性的任意兩個元組之間用連接線連接;
    確定最小的總代價值所對應的該分區方案為一第一分區方案;
    根據該最優分區方案和該第一分區方案,生成一元組移動代價資訊,並根據該元組移動代價資訊確定一調整分區方案。
  6. 【第6項】
    如申請專利範圍第5項所述的資料分區方法,其中,所述根據該最優分區方案和該第一分區方案,生成該元組移動代價資訊,並根據該元組移動代價資訊確定該調整分區方案,包括:
    當按照該第一分區方案對該最優分區方案進行調整時,確定各最優分區內的一待移動元組,該最優分區為根據該最優分區方案確定的儲存區域;
    根據該待移動元組與該最優分區之間的調整關係,確定該待移動元組與該最優分區之間的一移動代價;
    根據該調整元組分裂代價資訊確定該待移動元組與該最優分區之間的該分裂代價;
    根據該移動代價和該分裂代價生成該元組移動代價資訊;
    根據該元組移動代價資訊,調整該最優分區方案獲得複數個預設移動分區方案;
    通過圖分割演算法獲取各該預設移動分區方案對應的調整總代價值;
    在複數個該預設移動分區方案中確定調整總代價值最小的該預設移動分區方案為該調整分區方案。
  7. 【第7項】
    如申請專利範圍第1~4項中任一項所述的資料分區方法,其中,若根據該最優分區方案對該資料庫中的資料進行分區處理失敗,則該方法還包括:
    採用至少兩種線上分析處理方式進行資料分區,獲得與各線上分析處理方式對應的一候選分區方案;
    確定各該候選分區方案與該最優分區方案之間的差異值;
    確定差異值最小的該候選分區方案作為當前的該分區方案,並根據當前的該分區方案對資料進行分區。
  8. 【第8項】
    如申請專利範圍第7項所述的資料分區方法,其中,該至少兩種線上分析處理方式,包括下述線上分析處理方式中的至少兩種:
    雜湊函數處理、排列函數處理、迴圈演算法處理和副本管理處理。
  9. 【第9項】
    一種資料分區裝置,其中,包括:
    一接收模組,用於接收使用者輸入的一混合負載和一資料庫的結構資訊,該混合負載包括至少一個事務型負載、至少一個分析型負載或其組合,該資料庫的結構資訊包括與該混合負載關聯的至少一個元組;
    一關係確定模組,用於根據該混合負載和該資料庫的結構資訊,確定一元組關係資訊,該元組關係資訊包括該資料庫的結構資訊中任意兩個元組之間的事務相關性;
    一代價確定模組,用於根據該混合負載是否可並存執行的特性以及該元組關係資訊,確定一元組分裂代價資訊,該元組分裂代價資訊包括該資料庫的結構資訊中具有事務相關性的任意兩個元組之間的一分裂代價,該分裂代價用於表示當具有事務相關性的兩個元組分區儲存時,對該混合負載訪問該具有事務相關性的兩個元組的效率的影響程度;
    一最優選擇模組,用於根據該元組分裂代價資訊獲取複數個分區方案,並確定該分區方案中總代價值最小的該分區方案作為一最優分區方案,其中,各該分區方案的總代價值為採用該分區方案時該資料庫的結構資訊中具有事務相關性的各個元組之間的該分裂代價的總和;
    一分區模組,用於根據該最優分區方案,對該資料庫儲存的資料進行分區處理。
  10. 【第10項】
    如申請專利範圍第9項所述的資料分區裝置,其中,該關係確定模組具體用於,
    依次根據該混合負載中包含的各個負載,在該資料庫的結構資訊中分別確定關聯於各該負載的所有元組;
    根據各該負載所關聯的所有元組中任意兩個元組之間的事務相關性,確定該負載所關聯的各個元組之間的關係子資訊;
    將該混合負載中各該負載所關聯的各個元組之間的關係子資訊匯總,獲取該元組關係資訊。
  11. 【第11項】
    如申請專利範圍第10項所述的資料分區裝置,其中,該代價確定模組具體用於若該元組關係資訊中具有事務相關性的兩個元組所關聯的該混合負載的特性為不可並存執行,則確定兩個元組之間的該分裂代價為預設的正值;
    若該元組關係資訊中具有事務相關性的兩個元組所關聯的該混合負載的特性為可並存執行,則確定兩個元組之間的該分裂代價為預設的負值。
  12. 【第12項】
    如申請專利範圍第11項所述的資料分區裝置,其中,該元組分裂代價資訊以一關係圖表示,在該關係圖中具有事務相關性的任意兩個元組之間用連接線連接;則該最優選擇模組具體用於採用圖分割演算法對該關係圖進行複數種分割處理,確定該複數個分區方案,其中每一種該分割處理對應於一種該分區方案;
    在對該關係圖進行每一種該分割處理時,將所分割的每一條連接線所連接的兩個元組之間的分裂代價累加,得到該分割處理所對應的該分區方案的總代價值;
    確定最小的總代價值所對應的該分區方案為該最優分區方案。
  13. 【第13項】
    如申請專利範圍第11項所述的資料分區裝置,其中,該資料分區裝置還包括一調整選擇模組,用於在該分區模組根據該最優分區方案,對該資料庫中的資料進行分區處理之後,當該元組分裂代價資訊更新為一調整元組分裂代價資訊時,採用圖分割演算法對該調整元組分裂代價資訊進行複數種分割處理,確定該複數個分區方案,其中,每一種該分割處理對應於一種該分區方案,並確定各該分區方案的總代價值;其中該調整元組分裂代價資訊以一關係圖表示,在該關係圖中具有事務相關性的任意兩個元組之間用連接線連接;
    確定最小的總代價值所對應的該分區方案為一第一分區方案;
    根據該最優分區方案和該第一分區方案,生成一元組移動代價資訊,並根據該元組移動代價資訊確定一調整分區方案。
  14. 【第14項】
    如申請專利範圍第13項所述的資料分區裝置,其中,該調整選擇模組具體用於按照該第一分區方案對該最優分區方案進行調整時,確定各最優分區內的一待移動元組;該最優分區為根據該最優分區方案確定的儲存區域;
    根據該待移動元組與該最優分區之間的調整關係,該確定待移動元組與該最優分區之間的一移動代價;
    根據該調整元組分裂代價資訊確定該待移動元組與該最優分區之間的該分裂代價;
    根據該移動代價和該分裂代價生成該元組移動代價資訊;
    根據該元組移動代價資訊,調整該最優分區方案獲得複數個預設移動分區方案;
    通過圖分割演算法獲取各該預設移動分區方案對應的調整總代價值;
    在複數個該預設移動分區方案中確定調整總代價值最小的該預設移動分區方案為該調整分區方案。
  15. 【第15項】
    如申請專利範圍第9~12項中任一項所述的資料分區裝置,其中,該資料分區裝置還包括:
    一差異選擇模組,用於該分區模組根據該最優分區方案對該資料庫中的資料進行分區處理失敗時,採用至少兩種線上分析處理方式進行資料分區,獲得與各線上分析處理方式對應的一候選分區方案;
    確定各該候選分區方案與該最優分區方案之間的差異值;
    確定差異值最小的該候選分區方案作為當前的該分區方案,並根據當前的該分區方案對資料進行分區。
TW103119684A 2013-06-07 2014-06-06 Data partitioning method and device TWI503679B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310226045.6A CN103336792B (zh) 2013-06-07 2013-06-07 数据分区方法和装置

Publications (2)

Publication Number Publication Date
TW201510754A TW201510754A (zh) 2015-03-16
TWI503679B true TWI503679B (zh) 2015-10-11

Family

ID=49244957

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103119684A TWI503679B (zh) 2013-06-07 2014-06-06 Data partitioning method and device

Country Status (6)

Country Link
EP (1) EP2998883B1 (zh)
JP (1) JP6112440B2 (zh)
KR (1) KR101653776B1 (zh)
CN (1) CN103336792B (zh)
TW (1) TWI503679B (zh)
WO (1) WO2014194679A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI760216B (zh) * 2020-11-25 2022-04-01 南韓商韓領有限公司 用於管理高度可獲取分佈混合資料庫的電腦實行系統以及方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336792B (zh) * 2013-06-07 2016-11-23 华为技术有限公司 数据分区方法和装置
CN103661495B (zh) * 2014-01-07 2015-12-30 北京全路通信信号研究设计院集团有限公司 线路数据的处理方法及装置
US9875263B2 (en) * 2014-10-21 2018-01-23 Microsoft Technology Licensing, Llc Composite partition functions
WO2017209788A1 (en) * 2016-06-03 2017-12-07 Google Llc Weighted auto-sharding
KR101951999B1 (ko) 2016-08-31 2019-05-10 재단법인대구경북과학기술원 낮은 데이터 중복으로 빠른 쿼리 처리를 지원하는 관계형 데이터베이스 저장 시스템, 저장 방법 및 관계형 데이터베이스 저장 방법에 기초한 쿼리를 처리하는 방법
WO2018043843A1 (ko) * 2016-08-31 2018-03-08 재단법인대구경북과학기술원 낮은 데이터 중복으로 빠른 쿼리 처리를 지원하는 관계형 데이터베이스 저장 시스템, 저장 방법 및 관계형 데이터베이스 저장 방법에 기초한 쿼리를 처리하는 방법
CN106777230B (zh) * 2016-12-26 2020-01-07 东软集团股份有限公司 一种分区系统、分区方法及装置
CN107515899B (zh) * 2017-07-24 2020-05-22 北京中电普华信息技术有限公司 数据库联合分片方法、装置以及存储介质
CN108287868B (zh) * 2017-12-19 2019-02-26 北京国电通网络技术有限公司 一种数据库查询、数据块划分方法和装置
CN111198872B (zh) * 2020-01-06 2021-06-11 中科驭数(北京)科技有限公司 数据库处理事务的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200636511A (en) * 2005-02-15 2006-10-16 Infomato Crosslink data structure, crosslink database, and system and method of organizing and retrieving information
CN101145158A (zh) * 2007-06-06 2008-03-19 中兴通讯股份有限公司 一种数据库表分区的方法
US20080215544A1 (en) * 2007-03-02 2008-09-04 Microsoft Corporation Systems and Methods for Modeling Partitioned Tables as Logical Indexes
CN101876983A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 数据库分区方法与系统
CN102799628A (zh) * 2012-06-21 2012-11-28 新浪网技术(中国)有限公司 在key-value数据库中进行数据分区的方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3183736B2 (ja) * 1992-12-28 2001-07-09 富士通株式会社 データベース論理データ構造の動的変更方式
CA2150745C (en) * 1995-06-01 2001-05-01 Chaitanya K. Baru Method and apparatus for implementing partial declustering in a parallel database system
CA2159269C (en) * 1995-09-27 2000-11-21 Chaitanya K. Baru Method and apparatus for achieving uniform data distribution in a parallel database system
US7010521B2 (en) * 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
US7043621B2 (en) * 2003-05-16 2006-05-09 Hewlett-Packard Development Company, L.P. Sharding method and apparatus using directed graphs
ATE376167T1 (de) * 2003-08-05 2007-11-15 Harman Becker Automotive Sys Verfahren zum verarbeiten von digitalen kartendaten
US7814080B1 (en) * 2003-10-27 2010-10-12 Teradata Us, Inc. Grouping database queries and/or transactions
US7574424B2 (en) * 2004-10-13 2009-08-11 Sybase, Inc. Database system with methodology for parallel schedule generation in a query optimizer
US8005836B2 (en) * 2006-01-13 2011-08-23 Teradata Us, Inc. Method and system for performing logical partial declustering
KR100678123B1 (ko) * 2006-02-10 2007-02-02 삼성전자주식회사 관계형 데이터베이스에서의 xml 데이터 저장 방법
US8150850B2 (en) * 2008-01-07 2012-04-03 Akiban Technologies, Inc. Multiple dimensioned database architecture
US8849749B2 (en) * 2010-05-14 2014-09-30 Oracle International Corporation Load balancing in parallel database systems using multi-reordering
US9740762B2 (en) * 2011-04-01 2017-08-22 Mongodb, Inc. System and method for optimizing data migration in a partitioned database
CN103336792B (zh) * 2013-06-07 2016-11-23 华为技术有限公司 数据分区方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200636511A (en) * 2005-02-15 2006-10-16 Infomato Crosslink data structure, crosslink database, and system and method of organizing and retrieving information
US20080215544A1 (en) * 2007-03-02 2008-09-04 Microsoft Corporation Systems and Methods for Modeling Partitioned Tables as Logical Indexes
CN101145158A (zh) * 2007-06-06 2008-03-19 中兴通讯股份有限公司 一种数据库表分区的方法
CN101876983A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 数据库分区方法与系统
CN102799628A (zh) * 2012-06-21 2012-11-28 新浪网技术(中国)有限公司 在key-value数据库中进行数据分区的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI760216B (zh) * 2020-11-25 2022-04-01 南韓商韓領有限公司 用於管理高度可獲取分佈混合資料庫的電腦實行系統以及方法
US11709830B2 (en) 2020-11-25 2023-07-25 Coupang Corp. Systems and methods for managing a highly available distributed hybrid transactional and analytical database

Also Published As

Publication number Publication date
EP2998883A1 (en) 2016-03-23
CN103336792B (zh) 2016-11-23
KR20150010694A (ko) 2015-01-28
CN103336792A (zh) 2013-10-02
EP2998883B1 (en) 2018-09-12
WO2014194679A1 (zh) 2014-12-11
EP2998883A4 (en) 2016-06-29
JP2016520938A (ja) 2016-07-14
KR101653776B1 (ko) 2016-09-02
TW201510754A (zh) 2015-03-16
JP6112440B2 (ja) 2017-04-12

Similar Documents

Publication Publication Date Title
TWI503679B (zh) Data partitioning method and device
US20220405284A1 (en) Geo-scale analytics with bandwidth and regulatory constraints
US10185744B2 (en) Caching views on historical data
US10346404B2 (en) Efficient partitioned joins in a database with column-major layout
US20030088579A1 (en) Collecting statistics in a database system
Son et al. An adaptable vertical partitioning method in distributed systems
CN111581234B (zh) Rac多节点数据库查询方法、装置及系统
CN111797121A (zh) 读写分离架构业务系统的强一致性查询方法、装置及系统
US20150012522A1 (en) Method for synthetic data generation for query workloads
US20150363467A1 (en) Performing an index operation in a mapreduce environment
Tatemura et al. Partiqle: An elastic SQL engine over key-value stores
US9323796B2 (en) Data partitioning method and apparatus
US20150142724A1 (en) Method and system for representing olap queries using directed acyclic graph structures in a datagrid to support real-time analytical operations
CN111723161A (zh) 一种数据处理方法、装置及设备
US10235407B1 (en) Distributed storage system journal forking
EP3462341B1 (en) Local identifiers for database objects
CN108551478B (zh) 一种事务处理方法、服务器及事务处理系统
US20210149870A1 (en) Method, apparatus, and computer program product for improved tracking of state data
CN116827946A (zh) 负载均衡方法、数据同步方法、装置、电子设备及介质
CN106339432A (zh) 一种按查询内容进行负载均衡的系统及其方法
US11886404B2 (en) Automated database modeling
WO2018119478A1 (en) Meta-join and meta-group-by indexes for big data
CN114637734A (zh) 数据血缘管理方法、装置、电子设备和存储介质
WO2020151054A1 (zh) 一种数据同步方法及装置
CN115794806A (zh) 金融数据的网格化处理系统及方法、装置、计算设备