TWI753881B - 資料表連接方式處理方法及裝置 - Google Patents
資料表連接方式處理方法及裝置 Download PDFInfo
- Publication number
- TWI753881B TWI753881B TW106104787A TW106104787A TWI753881B TW I753881 B TWI753881 B TW I753881B TW 106104787 A TW106104787 A TW 106104787A TW 106104787 A TW106104787 A TW 106104787A TW I753881 B TWI753881 B TW I753881B
- Authority
- TW
- Taiwan
- Prior art keywords
- execution
- cost
- data table
- connection
- execution cost
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 195
- 238000003672 processing method Methods 0.000 title 1
- 238000012545 processing Methods 0.000 claims abstract description 69
- 238000004364 calculation method Methods 0.000 claims abstract description 66
- 238000013500 data storage Methods 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- KWYHDKDOAIKMQN-UHFFFAOYSA-N N,N,N',N'-tetramethylethylenediamine Chemical compound CN(C)CCN(C)C KWYHDKDOAIKMQN-UHFFFAOYSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000002360 explosive Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- 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/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24544—Join order optimisation
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
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)
- Computational Linguistics (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提供一種資料表連接方式處理方法及裝置。方法包括:根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表;根據參數列表中的參數和各候選資料表連接方式的執行邏輯,預估各候選資料表連接方式對待連接資料表進行連接計算時的執行代價;根據預估的各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,選擇用於對待連接資料表進行連接計算的目標資料表連接方式。本發明可以選擇合適的連接(Join)演算法進行資料表之間的連接,進而節約分布式資料倉儲的資源,提高查詢效率。
Description
本發明涉及資料庫技術領域,尤其涉及一種資料表連接方式處理方法及裝置。
隨著網際網路的發展,資料呈現爆發式增長,資料結構也開始多元化,資料含有的資訊量越來越多,資料倉儲在這樣的背景下發揮著巨大的作用。由於大數據時代的降臨,資料倉儲轉成為分布式架構,以滿足爆發式增長的計算及儲存的需求。分布式資料倉儲一般使用列式儲存,並以文件的形式保存資料,因此,採用分布式資料倉儲可提高大數據的儲存及計算性能。
在分布式資料倉儲的查詢過程中,經常需要進行資料表之間的連接(Join)計算。用於實現Join計算的演算法(簡稱為Join演算法)有很多,不同Join演算法所能處理的資料量以及所消耗的各種資源一般是不同的。對於分布式資料倉儲而言,若能夠選擇合適的Join演算法,不僅可以節約分布式資料倉儲的資源,而且可以提高查詢效率。但是,由於分布式資料倉儲發展時間不長,所以目前並不存
在適用於分布式資料倉儲的Join演算法選擇方案。
本發明的多個方面提供一種資料表連接方式處理方法及裝置,用以選擇合適的Join演算法進行資料表之間的連接,進而節約分布式資料倉儲的資源,提高查詢效率。
本發明的一方面,提供一種資料表連接方式處理方法,包括:根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表;根據所述參數列表中的參數和各候選資料表連接方式的執行邏輯,預估所述各候選資料表連接方式對所述待連接資料表進行連接計算時的執行代價;根據預估的所述各候選資料表連接方式對所述待連接資料表進行連接計算時的執行代價,選擇用於對所述待連接資料表進行連接計算的目標資料表連接方式。
本發明的另一方面,提供一種資料表連接方式處理裝置,包括:設置模組,用於根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表;預估模組,用於根據所述參數列表中的參數和各候選資料表連接方式的執行邏輯,預估所述各候選資料表連接方式對所述待連接資料表進行連接計算時的執行代價;選擇模組,用於根據預估的所述各候選資料表連接方
式對所述待連接資料表進行連接計算時的執行代價,選擇用於對所述待連接資料表進行連接計算的目標資料表連接方式。
在本發明中,根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表,根據參數列表中的參數和各候選資料表連接方式的執行邏輯,預估各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,根據預估的各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,選擇用於對待連接資料表進行連接計算的目標資料表連接方式,從而選擇與分布式資料倉儲環境相適合的資料表連接方式,進而在基於所選擇的資料表連接方式進行資料表之間的連接計算時,可以節約分布式資料倉儲的資源,提高查詢效率。
101~103‧‧‧步驟
51‧‧‧設置模組
52‧‧‧預估模組
521‧‧‧確定子模組
522‧‧‧預估子模組
523‧‧‧獲取子模組
5221‧‧‧參數獲取單元
5222‧‧‧代價預估單元
5223‧‧‧代價獲取單元
53‧‧‧選擇模組
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖式作一簡單地介紹,顯而易見地,下面描述中的圖式是本發明的一些實施例,對於本領域具有通常知識者來講,在不付出創造性勞動的前提下,還可以根據這些圖式獲得其他的圖式。
圖1為本發明一實施例提供的資料表連接方式處理方法的流程示意圖;圖2為本發明另一實施例提供的PSJ方式的執行邏輯的示意圖;
圖3為本發明又一實施例提供的BHJ方式的執行邏輯的示意圖;圖4為本發明又一實施例提供的BKHJ方式的執行邏輯的示意圖;圖5為本發明又一實施例提供的資料表連接方式處理裝置的結構示意圖;圖6為本發明又一實施例提供的資料表連接方式處理裝置的結構示意圖。
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域具有通常知識者在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
在分布式資料倉儲的查詢過程中,經常需要進行資料表之間的連接計算。目前用於實現Join計算的演算法有很多,而不同Join演算法所能處理的資料量以及所消耗的各種資源一般是不同的。對於分布式資料倉儲而言,若能夠選擇合適的Join演算法,不僅可以節約分布式資料倉儲的資源,而且可以提高查詢效率。但是,由於分布式資料倉儲發展時間不長,所以目前並不存在適用於分布式
資料倉儲的Join演算法選擇方案。
針對上述問題,本發明提供一種解決方案,其核心思想是:基於待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表,進而基於參數列表中的參數和各候選資料表連接方式的執行邏輯,預估各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,進而基於預估的執行代價,從各候選資料表連接方式中選擇真正用於對待連接資料表進行連接計算的資料表連接方式。
進一步,在選擇目標資料表連接方式之後,可以採用目標資料表連接方式,對待連接資料表進行連接計算。
本發明可以從各候選資料表連接方式中選擇與分布式資料倉儲環境相適合的資料表連接方式,進而在基於所選擇的資料表連接方式進行資料表之間的連接計算時,可以節約分布式資料倉儲的資源,提高查詢效率。
下面將透過具體實施方式對本發明技術方案做詳細說明。
圖1為本發明一實施例提供的資料表連接方式處理方法的流程示意圖。如圖1所示,該方法包括:
101、根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表。
102、根據上述參數列表中的參數和各候選資料表連接方式的執行邏輯,預估各候選資料表連接方式對待連接資料表進行連接計算時的執行代價。
103、根據預估的各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,選擇用於對待連接資料表進行連接計算的目標資料表連接方式。
具體的,在分布式資料倉儲的查詢場景中,當出現資料表連接(Join)任務時,可以確定待連接資料表。例如,在電子商務領域,可能需要聯合查詢訂單(order)表和用戶(customer)表,此時需要對訂單表和用戶表進行連接計算,因此可以向資料表連接方式處理裝置(後續簡稱為處理裝置)提交資料表連接任務,在該資料表連接任務中攜帶有訂單表和用戶表的標識。處理裝置根據該資料表連接任務,確定待連接資料表包括訂單表和用戶表。
在確定待連接資料表之後,處理裝置採用資料表連接方式(簡稱為Join演算法)對待連接資料表進行連接計算。
在本實施例中,為了選擇合適的資料表連接方式對待連接資料表進行連接計算,以節約分布式資料倉儲的資源,提高查詢效率,處理裝置將可使用的資料表連接方式作為候選資料表連接方式,預估各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,基於預估的各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,從各候選資料表連接方式中選擇適合對待連接資料表進行連接計算的資料表連接方式。
具體的,處理裝置確定待連接資料表所在的分布式資料倉儲環境,根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表;參數列表中包括用於
對候選資料表連接方式進行代價估計時所需的參數。
進一步,處理裝置設置參數列表的一種實施方式包括:設置待連接資料表中各資料表包含的資料記錄數、資料記錄總數以及每條資料記錄的平均長度;根據分布式資料倉儲的文件系統,設置每個儲存節點支持的資料分塊的大小;根據分布式資料倉儲的硬體資訊,設置連接計算所需的各種操作的單位代價以及每個計算節點所能處理的資料記錄數。
在上述實施方式中,參數列表中包括以下參數:各資料表包含的資料記錄數、資料記錄總數、每條資料記錄的平均長度、每個儲存節點支持的資料分塊的大小、各種操作的單位代價以及每個計算節點所能處理的資料記錄數。
由於資料表連接計算需要至少兩個資料表,所以待連接資料表包括至少兩個資料表。對於待連接資料表中的每個資料表包含一定資料記錄,因此可以統計獲得每個資料表包含的資料記錄數,將每個資料表包含的資料記錄數求和可獲得資料記錄總數;另外,根據每個資料表包含的資料記錄的資料量可求得資料總量,根據資料總量和資料記錄總數可獲得每條資料記錄的平均長度。
進一步,對連接計算進行分析,可以發現連接操作涉及資料表的讀取和/或寫入,進一步涉及本地讀取操作、本地寫入操作、網路讀取操作和網路寫入操作中的至少一
種。基於此,在根據分布式資料倉儲的硬體資訊,設置連接計算所需的各種操作的單位代價時,具體可以根據分布式資料倉儲使用的儲存媒體,確定本地讀取操作的單位代價和本地寫入操作的單位代價。舉例說明,分布式資料倉儲使用的儲存媒體可以是磁碟、快閃記憶體、USB等,不同儲存媒體所需要的讀取寫入時間一般不同。因此,處理裝置可以根據儲存媒體,確定本地讀取操作的單位代價和本地寫入操作的單位代價。另外,考慮到分布式資料倉儲可能會跨網路進行資料表的讀寫,因此處理裝置還可以根據分布式資料倉儲的網路拓撲結構,確定網路讀取操作的單位代價和網路寫入操作的單位代價。
上述本地讀取操作的單位代價定義為本地讀取1位元組(byte)資料的平均代價;上述本地寫入操作的單位代價定義為本地寫入1byte資料的平均代價;同理,上述網路讀取操作的單位代價定義為透過網路讀取1位元組(byte)資料的平均代價;上述網路寫入操作的單位代價定義為透過網路寫入1byte資料的平均代價。
另外,分布式資料倉儲包括多個計算節點和多個儲存節點。在預估各候選資料表連接方式的執行代價時,可以根據分布式資料倉儲的文件系統確定儲存節點所支持的資料分塊的大小,例如可以是256MB,並根據分布式資料倉儲的硬體資訊確定計算節點所能處理的資料記錄數,例如1GB。
之後,處理裝置根據參數列表中的參數和各候選資料
表連接方式的執行邏輯,預估各候選資料表連接方式對所述待連接資料表進行連接計算時的執行代價。
在一可選實施方式中,候選資料表連接方式的執行邏輯可透過其執行步驟以及執行步驟中的關鍵操作來體現。所述關鍵操作是指主要體現該執行步驟的執行代價的操作,例如若某操作在某一方面的代價大於預設值,或者遠大於其他操作在該方面的代價,則確定該操作為關鍵操作。基於此,處理裝置根據參數列表中的參數和各候選資料表連接方式的執行邏輯,預估各候選資料表連接方式對所述待連接資料表進行連接計算時的執行代價的過程包括:對每個候選資料表連接方式,確定該候選資料表連接方式的執行步驟以及每個執行步驟中的關鍵操作;根據參數列表中的參數和每個執行步驟中的關鍵操作,預估每個執行步驟的執行代價;根據每個執行步驟的執行代價,獲得候選資料表連接方式的執行代價。
進一步,上述根據參數列表中的參數和每個執行步驟中的關鍵操作,預估每個執行步驟的執行代價的實施方式包括:對於每個執行步驟,從參數列表中獲取該執行步驟所需的目標參數;根據該執行步驟所需的目標參數和該執行步驟中的關鍵操作,預估該執行步驟中的關鍵操作的執行代價;根據該執行步驟中的關鍵操作的執行代價,獲得該執行步驟的執行代價。
例如,在較為簡單的實施方式中,可以將執行步驟中的關鍵操作的執行代價進行疊加,以獲得執行步驟的執行代價。或者,直接將執行步驟中的關鍵操作的執行代價作為該執行步驟的執行代價。
在一可選實施方式中,採用三元組(資料記錄數消耗、CPU消耗、IO消耗)來表示上述執行代價。即可以從所操作的資料記錄數(RowCount)、所消耗的CPU資源以及所消耗的IO資源三個維度描述一個執行步驟或候選資料表連接方式的執行代價。
不同候選資料表連接方式的執行代價都可以透過上述三元組進行表示,進而進行比較。
在一實際應用場景中,假設較為常用的資料表連接方式包括但不限於以下三種:分區有序連接(Partitioned Sort Join,簡稱PSJ)方式;廣播雜湊連接(Broadcasted Hash Join,簡稱BHJ)方式;分區雜湊連接(Blocked Hash Join,簡稱BKHJ)方式。
如圖2所示,為PSJ方式的執行邏輯的示意圖。PSJ包括重分佈(Re-partition)步驟和有序連接步驟。
如圖3所示,為BHJ方式的執行邏輯的示意圖。在圖3中以待連接資料表包括兩個資料表為例,BHJ包括廣播(Broadcast)步驟和雜湊連接步驟。
如圖4所示,為BKHJ方式的執行邏輯的示意圖。
BKHJ包括廣播分發步驟和雜湊連接步驟。
上述PSJ方式、BHJ方式以及BKHJ方式均可作為本發明的候選資料表連接方式。
對於不同候選資料表連接方式,處理裝置對其進行預估的過程有所差異,下面將分別針對不同候選資料表連接方式,對預估過程進行詳細說明。
若候選資料表連接方式為PSJ方式,則處理裝置可以確定該PSJ方式的執行步驟包括:重分佈步驟和有序連接步驟;重分佈步驟主要是對所有待連接資料表進行排序並分發到不同計算節點上,有序連接步驟主要目的是獲取重分佈步驟輸出的所有符合連接條件的資料表組合並輸出。進一步,可以確定重分佈步驟中的關鍵操作包括:本地讀取操作、網路讀取操作、本地排序操作和本地寫入操作;相應的,可以確定有序連接步驟中的關鍵操作包括:輸出操作。
處理裝置在確定PSJ方式的執行步驟以及每個執行步驟中的關鍵操作之後,需要對每個執行步驟,從參數列表中獲取該執行步驟所需的目標參數。具體的:對PSJ方式中的重分佈步驟,處理裝置可以從參數列表中獲取參數N、L、RC、RNC以及WC作為重分佈步驟所需的目標參數;其中,N表示資料記錄總數;L表示每條資料記錄的平均長度;RC表示本地讀取操作的單位代價;RNC表示網路讀取操作的單位代價;WC表示本地寫入操作的單位代價;
對PSJ方式中的有序連接步驟,處理裝置可以從參數列表中獲取Nj以及n作為有序連接步驟所需的目標參數,其中,Nj表示待連接資料表中第j個資料表包含的資料記錄數,j=1...n;n表示待連接資料表中資料表的個數。
在獲得重分佈步驟和有序連接步驟所需的目標參數之後,處理裝置可以根據重分佈步驟所需的目標參數和重分佈步驟中的關鍵操作,預估重分佈步驟中的關鍵操作的執行代價,並根據有序連接步驟所需的目標參數和有序連接步驟中的關鍵操作,預估有序連接步驟中的關鍵操作的執行代價。具體的:對PSJ方式中的重分佈步驟,處理裝置可以根據上述參數N、L、RC、RNC以及WC,預估本地讀取操作的執行代價為(0,0,N * L * RC),網路讀取操作的執行代價為(N,0,N * L * RNC),本地排序操作的執行代價為(0,N,0)以及本地寫入操作的執行代價為(0,0,N * L * WC);對PSJ方式中的有序連接步驟,處理裝置可以根據上述參數Nj以及n,預估輸出操作的執行代價為(J,0,0),J=(ΠNj)1/n,即J=(N1 * N2 *...* Nn)1/n。
在獲得重分佈步驟中的關鍵操作的執行代價和有序連接步驟中的關鍵操作的執行代價之後,處理裝置可以根據重分佈步驟中的關鍵操作的執行代價獲得重分佈步驟的執行代價,並根據有序連接步驟中的關鍵操作的執行代價獲得有序連接步驟的執行代價。具體的:
對PSJ方式中的重分佈步驟,處理裝置可以將本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)、本地排序操作的執行代價(0,N,0)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,N,N * L *(RC+RNC+WC))作為重分佈步驟的執行代價;進一步可選的,考慮到在分布式資料倉儲場景中,待連接資料表中的資料記錄需要分佈到P個計算節點上,若分佈到每個計算節點上的資料記錄均衡,則在每個計算節點上的執行代價是相同的,所以可以直接透過資料量N * L與相應操作的單位代價計算出相應操作的執行代價;若分佈到每個計算節點上的資料記錄不均衡,則對網路讀取操作和本地寫入操作來說,由於需要等待其它計算節點上的資料,所以需要以最大資料記錄所在計算節點(或稱為消耗最大的計算節點)上的代價為基準乘以P,獲得最終執行代價。
基於上述,在將本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)、本地排序操作的執行代價(0,N,0)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,N,N * L *(RC+RNC+WC))作為重分佈步驟的執行代價之前,處理裝置可以判斷待連接資料表包含的資料記錄是否發生分佈傾斜。
具體的,可以採用被稱為Top K values的統計資訊來
估計消耗最大的計算節點。Top K values指的是某一列資料中重複度最高的K個值及其重複次數。優選的,為了簡化問題的複雜度,考慮K=1,重複度最高的值占整體資料的比例是p,本發明稱之為分佈傾斜率。將p與1/P進行比較;若p>1/P,則可以判定出現了資料分佈傾斜,此時消耗最大的計算節點需要處理的資料量是N * L * p;若p<=1/P,則判定未出現資料分佈傾斜,此時每個計算節點需要處理的資料量是N * L * 1/P。
若判斷結果為是,即出現了資料分佈傾斜,則將網路讀取操作的執行代價(N,0,N * L * RNC)修正為(N,0,P * N * L * p * RNC),將本地寫入操作的執行代價(0,0,N * L * WC)修正為(0,0,P *N * L* p * WC);其中,p表示分佈傾斜率;P表示用於對待連接資料表進行連接處理的計算節點的個數。
若判斷結果為否,即未出現資料分佈傾斜,則網路讀取操作的執行代價(N,0,P *N * L * 1/P * RNC),即(N,0,N * L * RNC);同理,本地寫入操作的執行代價(0,0,P *N * L * 1/P * WC),即(0,0,N * L * WC)。
基於上述,若出現了資料分佈傾斜,則處理裝置需要將本地讀取操作的執行代價(0,0,N * L * RC)、修正後的網路讀取操作的執行代價(N,0,P * N * L * p * RNC)、本地排序操作的執行代價(0,N,0)以及修正後的本地寫入操作的執行代價(0,0,P *N * L* p * WC)進行疊加,以獲得執行代價(N,N,N * L * RC+P * N * L * p *(RNC+WC))
作為重分佈步驟的執行代價。
對PSJ方式中的有序連接步驟,處理裝置可以將輸出操作的執行代價(J,0,0)作為有序連接步驟的執行代價。
在獲得重分佈步驟的執行代價以及有序連接步驟的執行代價之後,處理裝置可以將兩個執行步驟的執行代價進行疊加,以獲得PSJ方式的執行代價。具體的:在出現了資料分佈傾斜的情況下,PSJ方式的執行代價為(N+J,N,N * L * RC+P * N * L * p *(RNC+WC));在未出現資料分佈傾斜的情況下,PSJ方式的執行代價為(N+J,N,N * L *(RC+RNC+WC))。
若候選資料表連接方式為BHJ方式,則處理裝置可以確定BHJ方式的執行步驟包括:廣播步驟和雜湊連接步驟。在BHJ方式下,將n個資料表中最大的資料表作為主資料表,將其餘資料表作為輔資料表,其廣播步驟主要是將輔資料表透過網路傳輸分發到主資料表中。這意味著,該廣播步驟包括:本地讀取操作、網路讀取操作和本地寫入操作。本實施例選擇網路讀取操作作為廣播步驟中的關鍵操作,但不限於此。雜湊連接步驟主要是透過雜湊演算法獲取所有符合連接條件的資料表組合並輸出,因此可以確定雜湊連接步驟包括:雜湊計算和輸出操作。本實施例選擇輸出操作作為雜湊連接步驟中的關鍵操作,但不限於此。
處理裝置在確定BHJ方式的執行步驟以及每個執行步驟中的關鍵操作之後,需要對每個執行步驟,從參數列
表中獲取該執行步驟所需的目標參數。具體的:對BHJ方式的廣播步驟,處理裝置可以從參數列表中獲取參數Ni、Nk、D、L以及RNC作為廣播步驟所需的目標參數;其中,Nk表示待連接資料表中主資料表包含的資料記錄數,k為1...n中的任一取值;Ni表示待連接資料表中第i個輔資料表包含的資料記錄數,i=1...n且i≠k;D表示每個儲存節點支持的資料分塊的大小;L表示每條資料記錄的平均長度;RNC表示網路讀取操作的單位代價;n表示待連接資料表中資料表的個數;對BHJ方式的雜湊連接步驟,處理裝置可以從參數列表中獲取參數Nj以及n作為雜湊連接步驟所需的目標參數;其中,Nj表示待連接資料表中第j個資料表包含的資料記錄數,j=1...n;n表示待連接資料表中資料表的個數。
在獲得廣播步驟和雜湊連接步驟所需的目標參數之後,處理裝置可以根據廣播步驟所需的目標參數和廣播步驟中的關鍵操作,預估廣播步驟中的關鍵操作的執行代價,並根據雜湊連接步驟所需的目標參數和雜湊連接步驟中的關鍵操作,預估雜湊連接步驟中的關鍵操作的執行代價。具體的:對BHJ方式中的廣播步驟,處理裝置可以根據上述參數Ni、Nk、D、L以及RNC,預估網路讀取操作的執行代價為(ΣNi* M,0,ΣNi * M * L * RNC);其中,M=Nk/D;
對BHJ方式中的雜湊連接步驟,處理裝置可以根據上述參數Nj以及n,預估輸出操作的執行代價為(J,0,0),J=(ΠNj)1/n。
進一步,考慮到輔資料表包含的資料記錄數可能大於每個儲存節點支持的資料分塊的大小D,對於這種情況,需要將資料記錄從記憶體寫入外部記憶體,即退化為nested loop Join的情況。對於這種情況,由於資料記錄從記憶體寫入外部記憶體的代價很大,因此需要考慮這部分代價。
基於上述,在將輸出操作的執行代價(J,0,0)作為雜湊連接步驟的執行代價之前,處理裝置需要判斷各輔資料表中是否存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表;若判斷結果為是,則對輸出操作的執行代價(J,0,0)進行修正,以獲得修正後的執行代價(J,Nk*ΣNl,Nk*ΣNl * L * WC)作為雜湊連接步驟的執行代價;其中,Nl表示第1個所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表,l=1...n且l≠k。
在獲得廣播步驟中的關鍵操作的執行代價和雜湊連接步驟中的關鍵操作的執行代價之後,處理裝置可以根據廣播步驟中的關鍵操作的執行代價獲得廣播步驟的執行代價,並根據雜湊連接步驟中的關鍵操作的執行代價獲得雜湊連接步驟的執行代價。具體的:對BHJ方式的廣播步驟,處理裝置可以將網路讀取
操作的執行代價(ΣNi* M,0,ΣNi * M * L * RNC)作為廣播步驟的執行代價;對BHJ方式的雜湊連接步驟,若各輔資料表中存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表,則處理裝置可以將修正後的執行代價(J,Nk*ΣNl,Nk*ΣNl * L * WC)作為雜湊連接步驟的執行代價;若各輔資料表中不存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表,則處理裝置可以將輸出操作的執行代價(J,0,0)作為雜湊連接步驟的執行代價。
在獲得廣播步驟的執行代價以及雜湊連接步驟的執行代價之後,處理裝置可以將兩個執行步驟的執行代價進行疊加,以獲得BHJ方式的執行代價。具體的:在各輔資料表中存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表的情況下,BHJ方式的執行代價為(ΣNi* M+J,Nk*ΣNl,Nk*ΣNl * L * WC+ΣNi * M * L * RNC);在各輔資料表中不存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表的情況下,BHJ方式的執行代價為(ΣNi* M+J,0,ΣNi * M * L * RNC)。
若候選資料表連接方式為BKHJ方式,則處理裝置可以確定BKHJ方式的執行步驟包括:廣播分發步驟和雜湊連接步驟。廣播分發驟主要是將所有待連接資料表分發到
不同計算節點上,這意味著,該廣播分發步驟包括:本地讀取操作、網路讀取操作和本地寫入操作。本實施例將本地讀取操作、網路讀取操作和本地寫入操作作為廣播步驟中的關鍵操作,但不限於此。雜湊連接步驟主要是透過雜湊演算法獲取所有符合連接條件的資料表組合並輸出,因此可以確定雜湊連接步驟包括:雜湊計算和輸出操作。本實施例選擇輸出操作作為雜湊連接步驟中的關鍵操作,但不限於此。
處理裝置在確定BKHJ方式的執行步驟以及每個執行步驟中的關鍵操作之後,需要對每個執行步驟,從參數列表中獲取該執行步驟所需的目標參數。具體的:對BKHJ方式中的廣播分發步驟,處理裝置可以從參數列表中獲取參數N、L、RC、RNC以及WC作為廣播分發步驟所需的目標參數;其中,N表示資料記錄總數;L表示每條資料記錄的平均長度;RC表示本地讀取操作的單位代價;RNC表示網路讀取操作的單位代價;WC表示本地寫入操作的單位代價;對BKHJ方式中的雜湊連接步驟,處理裝置可以從參數列表中獲取參數Nj以及n作為雜湊連接步驟所需的目標參數;其中,Nj表示待連接資料表中第j個資料表包含的資料記錄數,j=1…n;n表示待連接資料表中資料表的個數。
在獲得廣播分發步驟和雜湊連接步驟所需的目標參數之後,處理裝置可以根據廣播分發步驟所需的目標參數和
廣播分發步驟中的關鍵操作,預估廣播分發步驟中的關鍵操作的執行代價,並根據雜湊連接步驟所需的目標參數和雜湊連接步驟中的關鍵操作,預估雜湊連接步驟中的關鍵操作的執行代價。具體的:對BKHJ方式中的廣播分發步驟,處理裝置可以根據上述參數N、L、RC、RNC以及WC,預估本地讀取操作的執行代價為(0,0,N * L * RC),網路讀取操作的執行代價為(N,0,N * L * RNC)以及本地寫入操作的執行代價為(0,0,N * L * WC);對BKHJ方式中的雜湊連接步驟,處理裝置可以根據上述參數Nj以及n,預估輸出操作的執行代價為(J,0,0),J=(ΠNj)1/n。
進一步,考慮到輔資料表包含的資料記錄數可能大於每個儲存節點支持的資料分塊的大小D,對於這種情況,需要將資料記錄從記憶體寫入外部記憶體,即退化為巢套迴路連接(nested loop Join)的情況。對於這種情況,由於資料記錄從記憶體寫入外部記憶體的代價很大,因此需要考慮這部分代價。
基於上述,在將輸出操作的執行代價(J,0,0)作為雜湊連接步驟的執行代價之前,處理裝置需要判斷各待連接資料表中是否存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表;若判斷結果為是,則對輸出操作的執行代價(J,0,0)進行修正,以獲得修正後的執行代價(J,Nk*ΣNl,Nk*ΣNl * L * WC)作為雜湊連接步
驟的執行代價;其中,Nl表示第1個所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表,l=1...n且l≠k。
在獲得廣播分發步驟中的關鍵操作的執行代價和雜湊連接步驟中的關鍵操作的執行代價之後,處理裝置可以根據廣播分發步驟中的關鍵操作的執行代價獲得廣播分發步驟的執行代價,並根據雜湊連接步驟中的關鍵操作的執行代價獲得雜湊連接步驟的執行代價。具體的:對BKHJ方式中的廣播分發步驟,處理裝置可以將本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,0,N * L *(RC+RNC+WC))作為廣播分發步驟的執行代價;對BKHJ方式中的雜湊連接步驟,若各輔資料表中存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表,則處理裝置可以將修正後的執行代價(J,Nk*ΣNl,Nk*ΣNl * L * WC)作為雜湊連接步驟的執行代價;若各輔資料表中不存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表,則處理裝置可以將輸出操作的執行代價(J,0,0)作為雜湊連接步驟的執行代價。
在獲得廣播分發步驟的執行代價以及雜湊連接步驟的執行代價之後,處理裝置可以將兩個執行步驟的執行代價
進行疊加,以獲得BKHJ方式的執行代價。具體的:在各輔資料表中存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表的情況下,BKHJ方式的執行代價為(N+J,Nk*ΣNl,Nk*ΣNl * L * WC+N * L *(RC+RNC+WC));在各輔資料表中不存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表的情況下,BKHJ方式的執行代價為(N+J,0,N * L *(RC+RNC+WC))。
在預估出各候選資料表連接方式對待連接資料表進行連接計算時的執行代價(簡稱為各候選資料表連接方式的執行代價)後,處理裝置可以根據預估的各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,選擇用於對待連接資料表進行連接計算的目標資料表連接方式。
具體的,處理裝置可以將預估出的各候選資料表連接方式對待連接資料表進行連接計算時的執行代價進行比較,選擇最小執行代價對應的候選資料表連接方式作為目標資料表連接方式,或者選擇最優執行代價對應的候選資料表連接方式作為目標資料表連接方式。
在上述選擇目標資料表連接方式的過程中,需要對執行代價進行比較。在上述三元組(資料記錄數消耗、CPU消耗、IO消耗)表示執行代價的情況下,可以預先設定三元組之間的優先級,以便於進行比較。例如,可以設定資
料記錄數消耗的優先級高於CPU消耗的優先級,CPU消耗的優先級高於IO消耗的優先級,基於此,在對各候選資料表連接方式的執行代價進行比較時,可以優先比較資料記錄數消耗,選擇資料記錄數消耗最小的候選資料表連接方式作為目標資料表連接方式;若資料記錄數消耗均相同,可以比較CPU消耗,選擇CPU消耗最小的候選資料表連接方式作為目標資料表連接方式;若CPU消耗均相同,可以比較IO消耗,選擇IO消耗最小的候選資料表連接方式作為目標資料表連接方式。
除了按照三元組之間的優先級對各候選資料表連接方式的執行代價進行比較之外,還可以設置三元組的權重,分別記為w1,w2和w3,然後根據公式平均代價=資料記錄數消耗*w1+CPU消耗*w2+IO消耗*w3,計算出各候選資料表連接方式的平均代價,選擇平均代價最小的候選資料表連接方式作為目標資料表連接方式。
然後,基於選擇的目標資料表連接方式對待連接資料表進行連接計算。由於所選擇的資料表連接方式與分布式資料倉儲環境相適合,所以在基於所選擇的資料表連接方式進行資料表之間的連接計算時,可以節約分布式資料倉儲的資源,提高查詢效率。
下面結合具體資料表連接場景以及具體參數,詳細說明一下各候選資料表連接方式的執行代價。
假設需要將用戶表和訂單表進行連接計算,用戶表記為R,訂單表記為S,R包含的資料記錄為10M,S包含
的資料記錄為10M,根據分布式資料倉儲環境,設置以下參數:N1=10M;N2=10M;N=20M;L=100Byte;D=256MB;G=1GB;M=Input/256MB;P=Input/1GB;RC=1;WC=2;RNC=10;WNC=10;上述G表示單個計算節點支持的資料記錄數。
對PSJ方式:將相應參數代入執行代價(N,N,N * L *(RC+RNC+WC)),可以得出重分佈步驟的執行代價是(20M,20M,26GB);將相應參數代入執行代價(J,0,0),可以得出有序連接步驟的執行代價是(20M,0,0B);進而得出:PSJ方式的執行代價是(40M,20M,26GB)。
對BHJ方式,計算出M=N2*L/256MB=4;
將相應參數代入執行代價(ΣNi* M,0,ΣNi * M * L * RNC),可以得出廣播步驟的執行代價是(40M,0,4GB);將相應參數代入執行代價(J,Nk*ΣNl,Nk*ΣNl * L * WC),可以得出雜湊連接步驟的執行代價是(10M,10M * 10M,10M * 10M * 100 * 2);進而得出:BHJ方式的執行代價是(50M,inf,inf)。
對BKHJ方式,計算出P=N*L/1G=8;將相應參數代入執行代價(N,0,N * L *(RC+RNC+WC)),可以得出廣播分發步驟的執行代價是(20M,0,26GB);將相應參數代入執行代價(J,Nk*ΣNl,Nk*ΣNl * L * WC),可以得出雜湊連接步驟的執行代價是(20M,10M * 10M,10M * 10M * 100 * 2);進而得出:BKHJ方式的執行代價是(40M,100M,26GB)。
若基於預先設定的資料記錄數消耗的優先級高於CPU消耗的優先級,CPU消耗的優先級高於IO消耗的優先級,則透過比較可見,PSJ方式的執行代價更低,因此可以選擇PSJ方式。
如果S包含的資料記錄為1K,則對PSJ方式,可以得出:重分佈步驟的執行代價是(10M,10M,13GB);有序連接步驟的執行代價是(100K,0,0B);PSJ方式的執行代價是(10M,10M,13GB)。
對BHJ方式,計算出M=N2*L/256MB=4,基於此,可得出:廣播步驟的執行代價是(4K,0,400K);雜湊連接步驟的執行代價是(100K,0,0);BHJ方式的執行代價是(104K,0,400K)。
對BKHJ方式,計算出P=N*L/1G=4,基於此,可得出:廣播分發步驟的執行代價是(10M,0,13GB);雜湊連接步驟的執行代價是(100K,0,0B);BKHJ方式的執行代價是(10M,0,13GB)。
若基於預先設定的資料記錄數消耗的優先級高於CPU消耗的優先級,CPU消耗的優先級高於IO消耗的優先級,則透過比較可見,BHJ方式的執行代價更低,因此可以選擇BHJ方式,而BKHJ方式的執行代價也低於PSJ方式。
需要說明的是,對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明並不受所描述的動作順序的限制,因為依據本發明,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作和模組並不一定是本發明所必須的。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相
關描述。
圖5為本發明又一實施例提供的資料表連接方式處理裝置的結構示意圖。如圖5所示,該裝置包括:設置模組51、預估模組52和選擇模組53。
設置模組51,用於根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表。
預估模組52,用於根據設置模組51設置的參數列表中的參數和各候選資料表連接方式的執行邏輯,預估各候選資料表連接方式對待連接資料表進行連接計算時的執行代價。
選擇模組53,用於根據預估模組52預估的各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,選擇用於對待連接資料表進行連接計算的目標資料表連接方式。
在一可選實施方式中,設置模組51具體用於:設置待連接資料表中各資料表包含的資料記錄數、資料記錄總數以及每條資料記錄的平均長度;根據分布式資料倉儲的文件系統,設置每個儲存節點支持的資料分塊的大小;根據分布式資料倉儲的硬體資訊,設置連接計算所需的各種操作的單位代價以及每個計算節點所能處理的資料記錄數。
進一步,設置模組51在根據分布式資料倉儲的硬體資訊,設置連接計算所需的各種操作的單位代價時,具體
用於:根據分布式資料倉儲使用的儲存媒體,確定本地讀取操作的單位代價和本地寫入操作的單位代價;根據分布式資料倉儲的網路拓撲結構,確定網路讀取操作的單位代價和網路寫入操作的單位代價。
在一可選實施方式中,如圖6所示,該預估模組52的一種實現結構包括:確定子模組521、預估子模組522和獲取子模組523。
確定子模組521,用於對每個候選資料表連接方式,確定候選資料表連接方式的執行步驟以及每個執行步驟中的關鍵操作。
預估子模組522,用於根據參數列表中的參數和每個執行步驟中的關鍵操作,預估每個執行步驟的執行代價。
獲取子模組523,用於根據每個執行步驟的執行代價,獲得候選資料表連接方式的執行代價。
進一步,如圖6所示,預估子模組522的一種實現結構包括:參數獲取單元5221、代價預估單元5222和代價獲取單元5223。
參數獲取單元5221,用於對於每個執行步驟,從參數列表中獲取執行步驟所需的目標參數。
代價預估單元5222,用於根據執行步驟所需的目標參數和執行步驟中的關鍵操作,預估執行步驟中的關鍵操作的執行代價。
代價獲取單元5223,用於根據執行步驟中的關鍵操
作的執行代價,獲得執行步驟的執行代價。
在一可選實施方式中,若候選資料表連接方式為分區有序連接Partitioned Sort Join方式,則分區有序連接方式的執行步驟包括:重分佈步驟和有序連接步驟;重分佈步驟中的關鍵操作包括:本地讀取操作、網路讀取操作、本地排序操作和本地寫入操作;有序連接步驟中的關鍵操作包括:輸出操作;若候選資料表連接方式為廣播雜湊連接Broadcasted Hash Join方式,廣播雜湊連接方式的執行步驟包括:廣播步驟和雜湊連接步驟;廣播步驟中的關鍵操作包括:網路讀取操作;雜湊連接步驟中的關鍵操作包括:輸出操作;若候選資料表連接方式為分區雜湊連接Blocked Hash Join方式,分區雜湊連接方式的執行步驟包括:廣播分發步驟和雜湊連接步驟;廣播分發步驟中的關鍵操作包括:本地讀取操作、網路讀取操作和本地寫入操作;雜湊連接步驟中的關鍵操作包括:輸出操作。
進一步可選的,上述執行代價由三元組(資料記錄數消耗、CPU消耗、IO消耗)表示。
基於上述,參數獲取單元5221具體用於:對重分佈步驟,從參數列表中獲取參數N、L、RC、RNC以及WC作為重分佈步驟所需的目標參數;對廣播步驟,從參數列表中獲取參數Ni、Nk、D、L以及RNC作為廣播步驟所需的目標參數;
對廣播分發步驟,從參數列表中獲取參數N、L、RC、RNC以及WC作為廣播分發步驟所需的目標參數;對有序連接步驟或雜湊連接步驟,從參數列表中獲取Nj以及n作為有序連接步驟或雜湊連接步驟所需的目標參數;N表示資料記錄總數;L表示每條資料記錄的平均長度;RC表示本地讀取操作的單位代價;RNC表示網路讀取操作的單位代價;WC表示本地寫入操作的單位代價;Nk表示待連接資料表中主資料表包含的資料記錄數,k為1...n中的任一取值;Ni表示待連接資料表中第i個輔資料表包含的資料記錄數,i=1...n且i≠k;D表示每個儲存節點支持的資料分塊的大小;Nj表示待連接資料表中第j個資料表包含的資料記錄數,j=1...n;n表示待連接資料表中資料表的個數。
進一步,代價預估單元5222具體用於:對重分佈步驟,根據參數N、L、RC、RNC以及WC,預估本地讀取操作的執行代價為(0,0,N * L * RC),網路讀取操作的執行代價為(N,0,N * L * RNC),本地排序操作的執行代價為(0,N,0)以及本地寫入操作的執行代價為(0,0,N * L * WC);
對廣播步驟,根據參數Ni、Nk、D、L以及RNC,預估網路讀取操作的執行代價為(ΣNi* M,0,ΣNi * M * L * RNC);其中,M=Nk/D;對廣播分發步驟,根據參數N、L、RC、RNC以及WC,預估本地讀取操作的執行代價為(0,0,N * L * RC),網路讀取操作的執行代價為(N,0,N * L * RNC)以及本地寫入操作的執行代價為(0,0,N * L * WC);對有序連接步驟或雜湊連接步驟,根據參數Nj以及n,預估輸出操作的執行代價為(J,0,0),J=(ΠNj)1/n。
進一步,代價獲取單元5223具體用於:對重分佈步驟,將本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)、本地排序操作的執行代價(0,N,0)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,N,N * L *(RC+RNC+WC))作為重分佈步驟的執行代價;對廣播步驟,將網路讀取操作的執行代價(ΣNi* M,0,ΣNi * M * L * RNC)作為廣播步驟的執行代價;對廣播分發步驟,將本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,0,N * L *(RC+RNC+WC))作為廣播分發步驟的執行代價;對有序連接步驟或雜湊連接步驟,將輸出操作的執行
代價(J,0,0)作為有序連接步驟或雜湊連接步驟的執行代價。
更進一步,代價獲取單元5223還用於:在將本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)、本地排序操作的執行代價(0,N,0)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,N,N * L *(RC+RNC+WC))作為重分佈步驟的執行代價之前,判斷待連接資料表包含的資料記錄是否發生分佈傾斜;若判斷結果為是,則將網路讀取操作的執行代價(N,0,N * L * RNC)修正為(N,0,P * N * L * p * RNC),將本地寫入操作的執行代價(0,0,N * L * WC)修正為(0,0,P *N * L* p * WC);其中,p表示分佈傾斜率;P表示用於對待連接資料表進行連接處理的計算節點的個數。
更進一步,代價獲取單元5223還用於:對述雜湊連接步驟,將輸出操作的執行代價(J,0,0)作為有序連接步驟或雜湊連接步驟的執行代價之前,判斷各輔資料表中是否存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表;若判斷結果為是,則對輸出操作的執行代價(J,0,0)進行修正,以獲得修正後的執行代價(J,Nk*ΣNl,Nk*ΣNl * L * WC)作為雜湊連接步驟的執行代價;Nl表示第1個所包含的資料記錄數大於每個儲存節點
支持的資料分塊的大小D的資料表,l=1...n且l≠k。
更進一步,如圖6所示,該裝置還包括:連接計算模組54。
連接計算模組54,用於採用選擇模組53選出的目標資料表連接方式,對待連接資料表進行連接計算。
本實施例提供的資料表連接方式處理裝置,根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表,根據參數列表中的參數和各候選資料表連接方式的執行邏輯,預估各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,根據預估的各候選資料表連接方式對待連接資料表進行連接計算時的執行代價,選擇用於對待連接資料表進行連接計算的目標資料表連接方式,從而選擇與分布式資料倉儲環境相適合的資料表連接方式,進而在基於所選擇的資料表連接方式進行資料表之間的連接計算時,可以節約分布式資料倉儲的資源,提高查詢效率。
所屬領域的技術人員可以清楚地瞭解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本發明所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以透過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可
以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是透過一些介面,裝置或單元的間接耦合或通訊連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用硬體加軟體功能單元的形式實現。
上述以軟體功能單元的形式實現的集成的單元,可以儲存在一個電腦可讀取儲存媒體中。上述軟體功能單元儲存在一個儲存媒體中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)或處理器(processor)執行本發明各個實施例所述方法的部分步驟。而前述的儲存媒體包括:USB、行動硬碟、唯讀記憶體(Read-Only Memory,ROM)、隨機存取記憶體(Random Access Memory,RAM)、磁碟或者光碟等各種可以儲存程式碼的媒體。
最後應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的具有通常知識者應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。
Claims (24)
- 一種資料表連接方式處理方法,其特徵在於,包括:根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表;根據該參數列表中的參數和各候選資料表連接方式的執行邏輯,預估該各候選資料表連接方式對該待連接資料表進行連接計算時的執行代價,該執行代價由包括資料記錄數消耗、CPU消耗、IO消耗的三元組表示,其中,從該參數列表中獲取該各候選資料表連接方式的執行步驟所需的目標參數,該執行步驟用於體現該各候選資料表連接方式的執行邏輯;根據預估的該各候選資料表連接方式對該待連接資料表進行連接計算時的執行代價,選擇用於對該待連接資料表進行連接計算的目標資料表連接方式。
- 根據申請專利範圍第1項所述的方法,其中,該根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表,包括:設置該待連接資料表中各資料表包含的資料記錄數、資料記錄總數以及每條資料記錄的平均長度;根據該分布式資料倉儲的文件系統,設置每個儲存節點支持的資料分塊的大小;根據該分布式資料倉儲的硬體資訊,設置連接計算所需的各種操作的單位代價以及每個計算節點所能處理的資 料記錄數。
- 根據申請專利範圍第2項所述的方法,其中,該根據該分布式資料倉儲的硬體資訊,設置連接計算所需的各種操作的單位代價,包括:根據該分布式資料倉儲使用的儲存媒體,確定本地讀取操作的單位代價和本地寫入操作的單位代價;根據該分布式資料倉儲的網路拓撲結構,確定網路讀取操作的單位代價和網路寫入操作的單位代價。
- 根據申請專利範圍第1項所述的方法,其中,該根據該參數列表中的參數和各候選資料表連接方式的執行邏輯,預估該各候選資料表連接方式對該待連接資料表進行連接計算時的執行代價,包括:對每個候選資料表連接方式,確定該候選資料表連接方式的執行步驟以及每個執行步驟中的關鍵操作;根據該參數列表中的參數和每個執行步驟中的關鍵操作,預估每個執行步驟的執行代價;根據每個執行步驟的執行代價,獲得該候選資料表連接方式的執行代價。
- 根據申請專利範圍第4項所述的方法,其中,該根據該參數列表中的參數和每個執行步驟中的關鍵操作,預估每個執行步驟的執行代價,包括:對於每個執行步驟,從該參數列表中獲取該執行步驟所需的目標參數;根據該執行步驟所需的目標參數和該執行步驟中的關 鍵操作,預估該執行步驟中的關鍵操作的執行代價;根據該執行步驟中的關鍵操作的執行代價,獲得該執行步驟的執行代價。
- 根據申請專利範圍第5項所述的方法,其中,若該候選資料表連接方式為分區有序連接(Partitioned Sort Join)方式,則該分區有序連接方式的執行步驟包括:重分佈步驟和有序連接步驟;該重分佈步驟中的關鍵操作包括:本地讀取操作、網路讀取操作、本地排序操作和本地寫入操作;該有序連接步驟中的關鍵操作包括:輸出操作;若該候選資料表連接方式為廣播雜湊連接(Broadcasted Hash Join)方式,該廣播雜湊連接方式的執行步驟包括:廣播步驟和雜湊連接步驟;該廣播步驟中的關鍵操作包括:網路讀取操作;該雜湊連接步驟中的關鍵操作包括:輸出操作;若該候選資料表連接方式為分區雜湊連接(Blocked Hash Join)方式,該分區雜湊連接方式的執行步驟包括:廣播分發步驟和雜湊連接步驟;該廣播分發步驟中的關鍵操作包括:本地讀取操作、網路讀取操作和本地寫入操作;該雜湊連接步驟中的關鍵操作包括:輸出操作。
- 根據申請專利範圍第6項所述的方法,其中,該對於每個執行步驟,從該參數列表中獲取該執行步驟所需的目標參數,包括:對該重分佈步驟,從該參數列表中獲取參數N、L、 RC、RNC以及WC作為該重分佈步驟所需的目標參數;對該廣播步驟,從該參數列表中獲取參數Ni、Nk、D、L以及RNC作為該廣播步驟所需的目標參數;對該廣播分發步驟,從該參數列表中獲取參數N、L、RC、RNC以及WC作為該廣播分發步驟所需的目標參數;對該有序連接步驟或該雜湊連接步驟,從該參數列表中獲取Nj以及n作為該有序連接步驟或該雜湊連接步驟所需的目標參數;N表示資料記錄總數;L表示每條資料記錄的平均長度;RC表示本地讀取操作的單位代價;RNC表示網路讀取操作的單位代價;WC表示本地寫入操作的單位代價;Nk表示該待連接資料表中主資料表包含的資料記錄數,k為1...n中的任一取值;Ni表示該待連接資料表中第i個輔資料表包含的資料記錄數,i=1...n且i≠k;D表示每個儲存節點支持的資料分塊的大小;Nj表示該待連接資料表中第j個資料表包含的資料記錄數,j=1...n;n表示該待連接資料表中資料表的個數。
- 根據申請專利範圍第7項所述的方法,其中,該根據該執行步驟所需的目標參數和該執行步驟中的關鍵操 作,預估該執行步驟中的關鍵操作的執行代價,包括:對該重分佈步驟,根據該參數N、L、RC、RNC以及WC,預估該本地讀取操作的執行代價為(0,0,N * L * RC),網路讀取操作的執行代價為(N,0,N * L * RNC),本地排序操作的執行代價為(0,N,0)以及本地寫入操作的執行代價為(0,0,N * L * WC);對該廣播步驟,根據該參數Ni、Nk、D、L以及RNC,預估該網路讀取操作的執行代價為(Σ Ni* M,0,Σ Ni * M * L * RNC);其中,M=Nk/D;對該廣播分發步驟,根據該參數N、L、RC、RNC以及WC,預估該本地讀取操作的執行代價為(0,0,N * L * RC),網路讀取操作的執行代價為(N,0,N * L * RNC)以及本地寫入操作的執行代價為(0,0,N * L * WC);對該有序連接步驟或該雜湊連接步驟,根據該參數Nj以及n,預估該輸出操作的執行代價為(J,0,0),J=(Π Nj)1/n。
- 根據申請專利範圍第8項所述的方法,其中,該根據該執行步驟中的關鍵操作的執行代價,獲得該執行步驟的執行代價,包括:對該重分佈步驟,將該本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)、本地排序操作的執行代價(0,N,0)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,N,N * L * (RC+RNC+WC))作為該重分佈步驟的執行代價; 對該廣播步驟,將該網路讀取操作的執行代價(Σ Ni* M,0,ΣNi * M * L * RNC)作為該廣播步驟的執行代價;對該廣播分發步驟,將該本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,0,N * L * (RC+RNC+WC))作為該廣播分發步驟的執行代價;對該有序連接步驟或該雜湊連接步驟,將該輸出操作的執行代價(J,0,0)作為該有序連接步驟或該雜湊連接步驟的執行代價。
- 根據申請專利範圍第9項所述的方法,其中,該將該本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)、本地排序操作的執行代價(0,N,0)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,N,N * L * (RC+RNC+WC))作為該重分佈步驟的執行代價之前,包括:判斷該待連接資料表包含的資料記錄是否發生分佈傾斜;若判斷結果為是,則將該網路讀取操作的執行代價(N,0,N * L * RNC)修正為(N,0,P * N * L * p * RNC),將該本地寫入操作的執行代價(0,0,N * L * WC)修正為(0,0,P *N * L* p * WC);其中,p表示分佈傾斜率;P表示用於對該待連接資料表進行連接處理的計算節 點的個數。
- 根據申請專利範圍第9項所述的方法,其中,該對該雜湊連接步驟,將該輸出操作的執行代價(J,0,0)作為該雜湊連接步驟的執行代價之前,包括:判斷各輔資料表中是否存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表;若判斷結果為是,則對該輸出操作的執行代價(J,0,0)進行修正,以獲得修正後的執行代價(J,Nk*Σ Nl,Nk*Σ Nl * L * WC)作為該雜湊連接步驟的執行代價;Nl表示第l個所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表,l=1...n且l≠k。
- 根據申請專利範圍第1-11項中任一項所述的方法,其中,該根據該各候選資料表連接方式的運行代價,選擇用於該分布式資料倉儲的目標資料表連接方式之後,還包括:採用該目標資料表連接方式,對該待連接資料表進行連接計算。
- 一種資料表連接方式處理裝置,其特徵在於,包括:設置模組,用於根據待連接資料表所在的分布式資料倉儲環境,設置用於代價估計的參數列表;預估模組,用於根據該參數列表中的參數和各候選資料表連接方式的執行邏輯,預估該各候選資料表連接方式對該待連接資料表進行連接計算時的執行代價,該執行代 價由包括資料記錄數消耗、CPU消耗、IO消耗的三元組表示,其中,從該參數列表中獲取該各候選資料表連接方式的執行步驟所需的目標參數,該執行步驟用於體現該各候選資料表連接方式的執行邏輯;選擇模組,用於根據預估的該各候選資料表連接方式對該待連接資料表進行連接計算時的執行代價,選擇用於對該待連接資料表進行連接計算的目標資料表連接方式。
- 根據申請專利範圍第13項所述的裝置,其中,該設置模組具體用於:設置該待連接資料表中各資料表包含的資料記錄數、資料記錄總數以及每條資料記錄的平均長度;根據該分布式資料倉儲的文件系統,設置每個儲存節點支持的資料分塊的大小;根據該分布式資料倉儲的硬體資訊,設置連接計算所需的各種操作的單位代價以及每個計算節點所能處理的資料記錄數。
- 根據申請專利範圍第14項所述的裝置,其中,該設置模組具體用於:根據該分布式資料倉儲使用的儲存媒體,確定本地讀取操作的單位代價和本地寫入操作的單位代價;根據該分布式資料倉儲的網路拓撲結構,確定網路讀取操作的單位代價和網路寫入操作的單位代價。
- 根據申請專利範圍第13項所述的裝置,其中,該預估模組包括: 確定子模組,用於對每個候選資料表連接方式,確定該候選資料表連接方式的執行步驟以及每個執行步驟中的關鍵操作;預估子模組,用於根據該參數列表中的參數和每個執行步驟中的關鍵操作,預估每個執行步驟的執行代價;獲取子模組,用於根據每個執行步驟的執行代價,獲得該候選資料表連接方式的執行代價。
- 根據申請專利範圍第16項所述的裝置,其中,該預估子模組包括:參數獲取單元,用於對於每個執行步驟,從該參數列表中獲取該執行步驟所需的目標參數;代價預估單元,用於根據該執行步驟所需的目標參數和該執行步驟中的關鍵操作,預估該執行步驟中的關鍵操作的執行代價;代價獲取單元,用於根據該執行步驟中的關鍵操作的執行代價,獲得該執行步驟的執行代價。
- 根據申請專利範圍第17項所述的裝置,其中,若該候選資料表連接方式為分區有序連接(Partitioned Sort Join)方式,則該分區有序連接方式的執行步驟包括:重分佈步驟和有序連接步驟;該重分佈步驟中的關鍵操作包括:本地讀取操作、網路讀取操作、本地排序操作和本地寫入操作;該有序連接步驟中的關鍵操作包括:輸出操作;若該候選資料表連接方式為廣播雜湊連接(Broadcasted Hash Join)方式,該廣播雜湊連接方式的執行步驟包括:廣播步驟和雜湊連接步驟;該廣播步驟中的關鍵操作包括:網路讀取操作;該雜湊連接步驟中的關鍵操作包括:輸出操作;若該候選資料表連接方式為分區雜湊連接(Blocked Hash Join)方式,該分區雜湊連接方式的執行步驟包括:廣播分發步驟和雜湊連接步驟;該廣播分發步驟中的關鍵操作包括:本地讀取操作、網路讀取操作和本地寫入操作;該雜湊連接步驟中的關鍵操作包括:輸出操作。
- 根據申請專利範圍第18項所述的裝置,其中,該參數獲取單元具體用於:對該重分佈步驟,從該參數列表中獲取參數N、L、RC、RNC以及WC作為該重分佈步驟所需的目標參數;對該廣播步驟,從該參數列表中獲取參數Ni、Nk、D、L以及RNC作為該廣播步驟所需的目標參數;對該廣播分發步驟,從該參數列表中獲取參數N、L、RC、RNC以及WC作為該廣播分發步驟所需的目標參數;對該有序連接步驟或該雜湊連接步驟,從該參數列表中獲取Nj以及n作為該有序連接步驟或該雜湊連接步驟所需的目標參數;N表示資料記錄總數;L表示每條資料記錄的平均長度;RC表示本地讀取操作的單位代價; RNC表示網路讀取操作的單位代價;WC表示本地寫入操作的單位代價;Nk表示該待連接資料表中主資料表包含的資料記錄數,k為1...n中的任一取值;Ni表示該待連接資料表中第i個輔資料表包含的資料記錄數,i=1...n且i≠k;D表示每個儲存節點支持的資料分塊的大小;Nj表示該待連接資料表中第j個資料表包含的資料記錄數,j=1...n;n表示該待連接資料表中資料表的個數。
- 根據申請專利範圍第19項所述的裝置,其中,該代價預估單元具體用於:對該重分佈步驟,根據該參數N、L、RC、RNC以及WC,預估該本地讀取操作的執行代價為(0,0,N * L * RC),網路讀取操作的執行代價為(N,0,N * L * RNC),本地排序操作的執行代價為(0,N,0)以及本地寫入操作的執行代價為(0,0,N * L * WC);對該廣播步驟,根據該參數Ni、Nk、D、L以及RNC,預估該網路讀取操作的執行代價為(Σ Ni* M,0,Σ Ni * M * L * RNC);其中,M=Nk/D;對該廣播分發步驟,根據該參數N、L、RC、RNC以及WC,預估該本地讀取操作的執行代價為(0,0,N * L * RC),網路讀取操作的執行代價為(N,0,N * L * RNC)以及本地寫入操作的執行代價為(0,0,N * L * WC); 對該有序連接步驟或該雜湊連接步驟,根據該參數Nj以及n,預估該輸出操作的執行代價為(J,0,0),J=(Π Nj)1/n。
- 根據申請專利範圍第20項所述的裝置,其中,該代價獲取單元具體用於:對該重分佈步驟,將該本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)、本地排序操作的執行代價(0,N,0)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,N,N * L * (RC+RNC+WC))作為該重分佈步驟的執行代價;對該廣播步驟,將該網路讀取操作的執行代價(Σ Ni* M,0,Σ Ni * M * L * RNC)作為該廣播步驟的執行代價;對該廣播分發步驟,將該本地讀取操作的執行代價(0,0,N * L * RC)、網路讀取操作的執行代價(N,0,N * L * RNC)以及本地寫入操作的執行代價(0,0,N * L * WC)進行疊加,以獲得執行代價(N,0,N * L * (RC+RNC+WC))作為該廣播分發步驟的執行代價;對該有序連接步驟或該雜湊連接步驟,將該輸出操作的執行代價(J,0,0)作為該有序連接步驟或該雜湊連接步驟的執行代價。
- 根據申請專利範圍第21項所述的裝置,其中,該代價獲取單元還用於:判斷該待連接資料表包含的資料記錄是否發生分佈傾斜; 若判斷結果為是,則將該網路讀取操作的執行代價(N,0,N * L * RNC)修正為(N,0,P * N * L * p * RNC),將該本地寫入操作的執行代價(0,0,N * L * WC)修正為(0,0,P *N * L* p * WC);其中,p表示分佈傾斜率;P表示用於對該待連接資料表進行連接處理的計算節點的個數。
- 根據申請專利範圍第21項所述的裝置,其中,該代價獲取單元還用於:判斷各輔資料表中是否存在所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表;若判斷結果為是,則對該輸出操作的執行代價(J,0,0)進行修正,以獲得修正後的執行代價(J,Nk*Σ Nl,Nk*Σ Nl * L * WC)作為該雜湊連接步驟的執行代價;Nl表示第l個所包含的資料記錄數大於每個儲存節點支持的資料分塊的大小D的資料表,l=1...n且l≠k。
- 根據申請專利範圍第13-23項中任一項所述的裝置,其中,還包括:連接計算模組,用於採用該目標資料表連接方式,對該待連接資料表進行連接計算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610141198.4A CN107193813B (zh) | 2016-03-14 | 2016-03-14 | 数据表连接方式处理方法及装置 |
CN201610141198.4 | 2016-03-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201734859A TW201734859A (zh) | 2017-10-01 |
TWI753881B true TWI753881B (zh) | 2022-02-01 |
Family
ID=59850087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106104787A TWI753881B (zh) | 2016-03-14 | 2017-02-14 | 資料表連接方式處理方法及裝置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11650990B2 (zh) |
EP (1) | EP3432157B1 (zh) |
CN (1) | CN107193813B (zh) |
TW (1) | TWI753881B (zh) |
WO (1) | WO2017157160A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885865B (zh) | 2017-11-22 | 2019-12-10 | 星环信息科技(上海)有限公司 | 一种代价优化器与代价估计的方法及其设备 |
CN108595254B (zh) * | 2018-03-09 | 2022-02-22 | 北京永洪商智科技有限公司 | 一种查询调度方法 |
CN108549666B (zh) * | 2018-03-22 | 2021-05-04 | 上海达梦数据库有限公司 | 一种数据表的排序方法、装置、设备及存储介质 |
CN108491516B (zh) * | 2018-03-26 | 2021-09-14 | 哈工大大数据(哈尔滨)智能科技有限公司 | 基于混合整数线性规划的分布式多表连接选择方法及装置 |
CN108628972B (zh) * | 2018-04-25 | 2020-11-06 | 咪咕音乐有限公司 | 一种数据表的处理方法、装置及存储介质 |
CN108804626B (zh) * | 2018-05-31 | 2019-11-22 | 华中科技大学 | 一种基于分布感知的二元等值连接倾斜优化方法和系统 |
US11500931B1 (en) * | 2018-06-01 | 2022-11-15 | Amazon Technologies, Inc. | Using a graph representation of join history to distribute database data |
CN111078738B (zh) * | 2019-11-25 | 2023-08-15 | 泰康保险集团股份有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN110851452B (zh) * | 2020-01-16 | 2020-09-04 | 医渡云(北京)技术有限公司 | 数据表连接处理方法及装置、电子设备和存储介质 |
CN112199577B (zh) * | 2020-12-09 | 2021-04-02 | 浙江口碑网络技术有限公司 | 一种数据查询方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929996A (zh) * | 2012-10-24 | 2013-02-13 | 华南理工大学 | XPath查询优化方法及系统 |
CN102968420A (zh) * | 2011-08-31 | 2013-03-13 | 国际商业机器公司 | 数据库查询的方法和系统 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6950823B2 (en) | 2002-12-23 | 2005-09-27 | International Business Machines Corporation | Transparent edge-of-network data cache |
US7152073B2 (en) | 2003-01-30 | 2006-12-19 | Decode Genetics Ehf. | Method and system for defining sets by querying relational data using a set definition language |
US8983934B2 (en) | 2003-09-06 | 2015-03-17 | Oracle International Corporation | SQL tuning base |
US7254574B2 (en) | 2004-03-08 | 2007-08-07 | Microsoft Corporation | Structured indexes on results of function applications over data |
US7779238B2 (en) | 2004-06-30 | 2010-08-17 | Oracle America, Inc. | Method and apparatus for precisely identifying effective addresses associated with hardware events |
EP2093681A3 (en) | 2004-10-04 | 2010-01-20 | Clearpace Software Limited | Method and system for implementing an enhanced database |
US7574424B2 (en) | 2004-10-13 | 2009-08-11 | Sybase, Inc. | Database system with methodology for parallel schedule generation in a query optimizer |
US20060248592A1 (en) | 2005-04-28 | 2006-11-02 | International Business Machines Corporation | System and method for limiting disclosure in hippocratic databases |
US8271478B2 (en) | 2006-07-27 | 2012-09-18 | Sap Ag | Fast algorithms for computing semijoin reduction sequences |
US10007686B2 (en) | 2006-08-02 | 2018-06-26 | Entit Software Llc | Automatic vertical-database design |
US20080172356A1 (en) | 2007-01-17 | 2008-07-17 | Microsoft Corporation | Progressive parametric query optimization |
US8136124B2 (en) | 2007-01-18 | 2012-03-13 | Oracle America, Inc. | Method and apparatus for synthesizing hardware counters from performance sampling |
US20080243765A1 (en) | 2007-03-29 | 2008-10-02 | Ariel Fuxman | Method for generating nested mapping specifications in a schema mapping formalism |
US7895192B2 (en) * | 2007-07-19 | 2011-02-22 | Hewlett-Packard Development Company, L.P. | Estimating the loaded execution runtime of a database query |
CN101739398A (zh) * | 2008-11-11 | 2010-06-16 | 山东省标准化研究院 | 分布式数据库多连接查询优化算法 |
CN101408900B (zh) * | 2008-11-24 | 2011-03-16 | 中国科学院地理科学与资源研究所 | 一种网格计算环境下的分布式空间数据查询优化方法 |
US8214352B2 (en) | 2008-11-26 | 2012-07-03 | Hewlett-Packard Development Company | Modular query optimizer |
US8898142B2 (en) * | 2009-01-29 | 2014-11-25 | Hewlett-Packard Development Company, L.P. | Risk-premium-based database-query optimization |
US8285709B2 (en) | 2009-05-12 | 2012-10-09 | Teradata Us, Inc. | High-concurrency query operator and method |
CN101908003B (zh) | 2009-06-05 | 2014-10-22 | Sap股份公司 | 并行化查询的多核调度 |
US8620903B2 (en) | 2009-11-04 | 2013-12-31 | Nec Laboratories America, Inc. | Database distribution system and methods for scale-out applications |
US8935232B2 (en) * | 2010-06-04 | 2015-01-13 | Yale University | Query execution systems and methods |
US8260803B2 (en) | 2010-09-23 | 2012-09-04 | Hewlett-Packard Development Company, L.P. | System and method for data stream processing |
US8892569B2 (en) | 2010-12-23 | 2014-11-18 | Ianywhere Solutions, Inc. | Indexing spatial data with a quadtree index having cost-based query decomposition |
CN102831120B (zh) * | 2011-06-15 | 2017-07-21 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及系统 |
US9639575B2 (en) | 2012-03-30 | 2017-05-02 | Khalifa University Of Science, Technology And Research | Method and system for processing data queries |
US8949218B2 (en) * | 2012-12-26 | 2015-02-03 | Teradata Us, Inc. | Techniques for join processing on column partitioned tables |
US10740330B2 (en) * | 2013-03-15 | 2020-08-11 | Teradata Us, Inc. | Multi-platform optimization |
EP2843567B1 (en) | 2013-08-30 | 2017-05-10 | Pilab S.A. | Computer-implemented method for improving query execution in relational databases normalized at level 4 and above |
GB2521197A (en) | 2013-12-13 | 2015-06-17 | Ibm | Incremental and collocated redistribution for expansion of an online shared nothing database |
US9576039B2 (en) * | 2014-02-19 | 2017-02-21 | Snowflake Computing Inc. | Resource provisioning systems and methods |
CN103927346B (zh) * | 2014-03-28 | 2017-02-15 | 浙江大学 | 基于数据量的查询连接方法 |
US9454574B2 (en) * | 2014-03-28 | 2016-09-27 | Sybase, Inc. | Bloom filter costing estimation |
US9836506B2 (en) * | 2014-06-11 | 2017-12-05 | International Business Machines Corporation | Dynamic query optimization with pilot runs |
CN105243068A (zh) * | 2014-07-09 | 2016-01-13 | 华为技术有限公司 | 数据库系统的查询方法、服务器和能耗测试系统 |
CN104504018B (zh) * | 2014-12-11 | 2017-09-08 | 浙江大学 | 基于浓密树和自顶向下的大数据实时查询优化方法 |
CN105989142A (zh) * | 2015-02-28 | 2016-10-05 | 华为技术有限公司 | 一种数据查询方法及装置 |
US10108683B2 (en) | 2015-04-24 | 2018-10-23 | International Business Machines Corporation | Distributed balanced optimization for an extract, transform, and load (ETL) job |
US10771538B2 (en) * | 2015-10-08 | 2020-09-08 | International Business Machines Corporation | Automated ETL resource provisioner |
US20170249360A1 (en) * | 2016-02-26 | 2017-08-31 | International Business Machines Corporation | Skew sensitive estimating of record cardinality of a join predicate for rdbms query optimizer access path selection |
-
2016
- 2016-03-14 CN CN201610141198.4A patent/CN107193813B/zh active Active
-
2017
- 2017-02-14 TW TW106104787A patent/TWI753881B/zh active
- 2017-02-27 EP EP17765702.0A patent/EP3432157B1/en active Active
- 2017-02-27 WO PCT/CN2017/075065 patent/WO2017157160A1/zh active Application Filing
- 2017-02-27 US US16/084,529 patent/US11650990B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968420A (zh) * | 2011-08-31 | 2013-03-13 | 国际商业机器公司 | 数据库查询的方法和系统 |
CN102929996A (zh) * | 2012-10-24 | 2013-02-13 | 华南理工大学 | XPath查询优化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20190171639A1 (en) | 2019-06-06 |
CN107193813B (zh) | 2021-05-14 |
EP3432157A1 (en) | 2019-01-23 |
EP3432157A4 (en) | 2019-10-02 |
CN107193813A (zh) | 2017-09-22 |
US11650990B2 (en) | 2023-05-16 |
EP3432157B1 (en) | 2021-05-26 |
TW201734859A (zh) | 2017-10-01 |
WO2017157160A1 (zh) | 2017-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI753881B (zh) | 資料表連接方式處理方法及裝置 | |
US10789085B2 (en) | Selectively providing virtual machine through actual measurement of efficiency of power usage | |
US11347787B2 (en) | Image retrieval method and apparatus, system, server, and storage medium | |
US9411659B2 (en) | Data processing method used in distributed system | |
TWI746511B (zh) | 資料表連接方法及裝置 | |
WO2021258512A1 (zh) | 数据的聚合处理装置、方法和存储介质 | |
US20220253222A1 (en) | Data reduction method, apparatus, computing device, and storage medium | |
US20150302022A1 (en) | Data deduplication method and apparatus | |
US20120044532A1 (en) | Management device, file server system, execution method and management program | |
EP3295300A1 (en) | System and method for determining concurrency factors for dispatch size of parallel processor kernels | |
WO2017020735A1 (zh) | 一种数据处理方法、备份服务器及存储系统 | |
CN102970349B (zh) | 一种dht网络的存储负载均衡方法 | |
CN109213972B (zh) | 确定文档相似度的方法、装置、设备和计算机存储介质 | |
US11301436B2 (en) | File storage method and storage apparatus | |
US10042957B2 (en) | Devices and methods for implementing dynamic collaborative workflow systems | |
CN107203550B (zh) | 一种数据处理方法和数据库服务器 | |
US10621008B2 (en) | Electronic device with multi-core processor and management method for multi-core processor | |
CN111459937B (zh) | 数据表关联方法、装置、服务器及存储介质 | |
US9858551B2 (en) | Ranking analysis results based on user perceived problems in a database system | |
CN109214884B (zh) | 需求撮合方法及装置、电子设备 | |
CN113076197A (zh) | 负载均衡方法及装置、存储介质及电子设备 | |
US20190370259A1 (en) | Devices and methods for implementing dynamic collaborative workflow systems | |
US11627085B2 (en) | Non-transitory computer-readable recording medium, service management device, and service management method | |
CN117971742A (zh) | 基于传输序列的芯片数据传输方法和装置 | |
CN116541137A (zh) | 事务处理方法、装置、计算机设备、存储介质和程序产品 |