新四季網

多表關聯方法、主服務節點、計算節點及系統的製作方法

2023-10-23 10:58:52 1

多表關聯方法、主服務節點、計算節點及系統的製作方法
【專利摘要】本發明實施例公開了一種多表關聯方法、主服務節點、計算節點及系統,涉及信息【技術領域】,可以實現數據量較大的多個表之間的關聯,同時,提升了多表關聯效率。所述方法包括:首先主服務節點獲取第一表項的數據量和所述第一表項中的關聯數據列,若所述數據量大於預設內存加載閾值,則所述主服務節點將所述關聯數據列中的數據劃分為多個數據組,然後所述主服務節點保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。
【專利說明】多表關聯方法、主服務節點、計算節點及系統

【技術領域】
[0001]本發明涉及信息【技術領域】,特別涉及一種多表關聯方法、主服務節點、計算節點及系統。

【背景技術】
[0002]目前,隨著網際網路及信息技術的不斷發展,多表關聯技術的應用也越來越廣泛。多表關聯技術具體為通過兩個或多個表中相同的某一個數據列作為關聯列,從而建立多個表之間的關聯。在傳統資料庫中,多表關聯操作適用於進行數據量較小的多個表之間的關聯操作,當進行數據量較大的多個表之間的關聯操作時,耗時較長,效率較低。
[0003]針對在傳統資料庫中無法進行數據量較大的多個表之間的關聯操作問題,現有技術通常通過在Hadoop (分布式系統基礎架構)中的任務reduce端或者任務map端實現表關聯操作。然而,在reduce端進行多表關聯操作時,在函數shuffle階段要進行大量的數據傳輸,造成多表關聯效率較低;而在map端進行多表關聯操作時,由於進行關聯操作的多個表中,需要至少有一個表的數據量要小於或等於機器內存容量,從而造成在map端進行的多表關聯操作,不適用於進行數據量較大的多個表之間的關聯。


【發明內容】

[0004]本發明實施例提供一種多表關聯方法、主服務節點、計算節點及系統。可以適用於進行數據量較大的多個表之間的關聯,同時,提升了多表關聯效率。
[0005]本發明實施例採用的技術方案為:
[0006]第一方面,提供一種多表關聯方法,包括:
[0007]主服務節點獲取第一表項的數據量和所述第一表項中的關聯數據列,所述關聯數據列用於與第二表項進行關聯;
[0008]若所述第一表項的數據量大於預設內存加載閾值,則所述主服務節點將所述關聯數據列中的數據劃分為多個數據組,所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據量之和,小於所述預設內存加載閾值;
[0009]所述主服務節點保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。
[0010]第二方面,提供一種多表關聯方法,包括:
[0011]計算節點從主服務節點中獲取與所述計算節點對應的數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述主服務節點保存有每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述每一個數據組為所述主服務節點根據所述第一表項的關聯數據列中的數據進行劃分的;
[0012]所述計算節點按行獲取第二表項的數據,並且獲取當前行數據對應的所述第二表項的關聯數據列中的數據;
[0013]所述計算節點判斷所述當前行數據對應的所述第二表項的關聯數據列中的數據,是否與所述計算節點對應的所述數據組中的數據相同;
[0014]若所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據相同,所述計算節點建立所述當前行數據與所述數據組中的數據對應的所述第一表項中其他數據列的數據之間的對應關係。
[0015]第三方面,提供一種主服務節點,包括:
[0016]獲取單元,用於獲取第一表項的數據量和所述第一表項中的關聯數據列,所述關聯數據列用於與第二表項進行關聯;
[0017]劃分單元,若所述獲取單元獲取的所述第一表項的數據量大於預設內存加載閾值,則將所述關聯數據列中的數據劃分為多個數據組,所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據量之和,小於所述預設內存加載閾值;
[0018]保存單元,用於保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。
[0019]第四方面,提供一種計算節點,包括:
[0020]獲取單元,用於從主服務節點中獲取與所述計算節點對應的數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述主服務節點保存有每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述每一個數據組為所述主服務節點根據所述第一表項的關聯數據列中的數據進行劃分的;
[0021]獲取單元,還用於按行獲取第二表項的數據,並且獲取當前行數據對應的所述第二表項的關聯數據列中的數據;
[0022]判斷單元,用於判斷所述獲取單元獲取的所述當前行數據對應的所述第二表項的關聯數據列中的數據,是否與所述計算節點對應的所述數據組中的數據相同;
[0023]建立單元,用於若所述判斷單元判斷所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據相同,建立所述當前行數據和與所述數據組中的數據對應的所述第一表項中其他數據列的數據之間的對應關係。
[0024]第五方面,提供一種多表關聯繫統,包括:主服務節點和至少一個計算節點;
[0025]所述主服務節點,用於獲取第一表項的數據量和所述第一表項中的關聯數據列,所述關聯數據列用於與第二表項進行關聯;
[0026]所述主服務節點,還用於若所述第一表項的數據量大於預設內存加載閾值,則將所述關聯數據列中的數據劃分為多個數據組,所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據量之和,小於所述預設內存加載閾值;
[0027]所述主服務節點,還用於保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據;
[0028]所述計算節點,用於從所述主服務節點中獲取與所述計算節點對應的數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據;
[0029]所述計算節點,還用於按行獲取第二表項的數據,並且獲取當前行數據對應的所述第二表項的關聯數據列中的數據;
[0030]所述計算節點,還用於若所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據相同,建立所述當前行數據和與所述數據組中的數據對應的所述第一表項中其他數據列的數據之間的對應關係。
[0031]本發明實施例提供的多表關聯方法、主服務節點、計算節點及系統,首先主服務節點獲取第一表項的數據量和所述第一表項中的關聯數據列,若所述第一表項的數據量大於預設內存加載閾值,則所述主服務節點將所述關聯數據列中的數據劃分為多個數據組,然後所述主服務節點保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。與目前通過在Hadoop (分布式系統基礎架構)中的reduce端或者map端實現表關聯操作相比,本發明實施例通過將數據量較大的表項預先進行分片處理,可以實現數據量較大的多個表之間的關聯,同時,提升了多表關聯效率。

【專利附圖】

【附圖說明】
[0032]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。
[0033]圖1為本發明實施例提供的一種多表關聯方法流程圖;
[0034]圖2為本發明實施例提供的另一種多表關聯方法流程圖;
[0035]圖3為本發明實施例提供的主服務節點結構示意圖;
[0036]圖4為本發明實施例提供的計算節點結構示意圖;
[0037]圖5為本發明實施例提供的多表關聯繫統示意圖。

【具體實施方式】
[0038]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬於本發明保護的範圍。
[0039]為使本發明技術方案的優點更加清楚,下面結合附圖和實施例對本發明作詳細說明。
[0040]本發明實施例提供一種多表關聯方法,如圖1所示,所述方法包括:
[0041]101、主服務節點獲取第一表項的數據量和所述第一表項中的關聯數據列。
[0042]其中,所述關聯數據列用於與第二表項進行關聯。第一表項和第二表項具體可以為維表、數據表等,通過本發明實施例提供的方法可以進行一個維表與一個或多個數據表之間的關聯操作,本發明實施例不做限定。對於本發明實施例,關聯數據列可以為需要進行關聯的多個表中都包含的某一列數據,通過該關聯數據列,可以將多個表中的其他數據列中的數據進行關聯。例如,需要關聯的維表和數據表中都包含的關聯數據列為用戶編號,維表中的其他數據列中某一個數據列的數據為不同用戶年齡段,數據表中的其他數據列中某一個數據列的數據為不同用戶的上網時間信息,則此時通過用戶編號這個關聯數據列,就可以將維表和數據表進行關聯,從而使得用戶只需要輸入用戶編號,就可以查詢到該用戶編號對應的用戶年齡段和對應的上網時間信息統計。
[0043]102、主服務節點判斷第一表項的數據量是否大於預設內存加載閾值。
[0044]103a、若所述數據量大於預設內存加載閾值,則主服務節點將所述關聯數據列中的數據劃分為多個數據組。
[0045]其中,預設內存加載閾值具體可以根據進行多表關聯操作的各個計算節點的內存容量進行設定,本發明實施例不做限定。所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據量之和,小於所述預設內存加載閾值。通過將每一個數據組中的數據和與該數據對應的所述第一表項的其他數據列的數據量之和,配置小於所述預設內存加載閾值,可以保證進行表關聯操作的每一個計算節點的內存容量,都可以加載並高效處理每一個數據組中的數據和與該數據對應的所述第一表項的其他數據列的數據。
[0046]具體地,所述主服務節點可以根據所述第一表項的數據量,將所述關聯數據列中的數據劃分為多個數據組。例如,關聯數據列中的數據為用戶編號,具體包括:編號1、編號
2、編號3、編號4,若第一表項的數據量較大時,可以將用戶編號劃分為4個數據組,每一個數據組中包含一個用戶編號,以保證每個數據組的數據和與該數據對應的所述第一表項的其他數據列的數據量之和,小於預設內存加載閾值;若第一表項的數據量較小,但是大於預設內存加載閾值時,可以將用戶編號劃分為2個數據組,每一個數據組中包含兩個用戶編號,以保證每個數據組的數據和與各個數據分別對應的所述第一表項的其他數據列的數據量之和,小於預設內存加載閾值的同時,節約系統資源。
[0047]可選地,所述主服務節點還可以根據所述關聯數據列中各個數據分別對應的統計熱度值,將所述關聯數據列中的數據劃分為多個數據組。例如,關聯數據列中的數據為用戶編號,具體包括:編號1、編號2、編號3、編號4、編號5、編號6,由於數字含義的不同,編號6對應的統計熱度值較高,即對應的第一表項的其他數據列的數據量較大,而編號4、編號2對應的統計熱度值較低,則此時可以將編號6單獨劃分在一個數據組,而將編號2和編號4劃分在一個數據組中,從而保證均衡分配進行多表關聯的各個計算節點需要處理的數據量,提升了多表關聯的效率。
[0048]對於本發明實施例,對關聯數據列中的數據劃分為多個數據組的方式,即對數據量較大的第一表項的分片預處理的方式包括但不限於上述兩種方式。
[0049]104a、主服務節點保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據。
[0050]例如,第一表項的關聯數據列為用戶ID,第一表項的其他數據列包含的數據分別為性別信息、年齡信息、省份信息等,則此時每一個數據組中的數據為一個或多個用戶ID,該數據組對應的第一表項的其他數據列的數據為該數據組中的一個或多個用戶ID分別對應的性別信息、年齡信息、省份信息。
[0051]進一步地,以使得至少一個計算節點根據分別對應的數據組中的數據和所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作.
[0052]對於本發明實施例中計算節點的個數可以根據實際需求進行配置,具體可以大於、小於、或者等於上述數據組的個數,本發明實施例不做限定。當計算節點個數大於數據組個數時,可以從計算節點中選擇負載較低的與數據組個數等量的多個計算節點分別處理一個數據組的數據和與該數據對應的表項中其他數據列的數據;當計算節點個數等於數據組個數時,每一個計算節點可以分別處理一個數據組的數據和與該數據對應的表項中其他數據列的數據;當計算節點個數小於數據組個數時,可以從計算節點中選擇負載較低的計算節點進行多個數據組的數據和與該數據對應的表項中其他數據列的數據的處理,本發明實施例不做限定。
[0053]與步驟103a並列的步驟103b、若所述數據量小於或等於所述預設內存加載閾值,則所述主服務節點進行所述第一表項與所述第二表項的表關聯操作。
[0054]對於本發明實施例,當第一表項的數據量小於或等於所述預設內存加載閾值時,可以直接進行第一表項與所述第二表項的表關聯操作,而不再對第一表項進行分片預處理操作,從而可以進一步提升多表關聯操作的效率。
[0055]本發明實施例提供的一種多表關聯方法,首先主服務節點獲取第一表項的數據量和所述第一表項中的關聯數據列,若所述數據量大於預設內存加載閾值,則所述主服務節點將所述關聯數據列中的數據劃分為多個數據組,然後所述主服務節點保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。與目前通過在Hadoop中的reduce端或者map端實現表關聯操作相比,本發明實施例通過將數據量較大的表項預先進行分片處理,可以實現數據量較大的多個表之間的關聯,同時,提升了多表關聯效率。
[0056]進一步地,本發明實施例提供另一種多表關聯方法,如圖2所示,所述方法包括:
[0057]201、計算節點從主服務節點中獲取與所述計算節點對應的數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據。
[0058]其中,所述主服務節點保存有每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述每一個數據組為所述主服務節點根據所述第一表項的關聯數據列中的數據進行劃分的。
[0059]對於本發明實施例中計算節點的個數可以根據實際需求進行配置,具體可以大於、小於、或者等於上述數據組的個數,本發明實施例不做限定。當計算節點個數大於數據組個數時,可以從計算節點中選擇負載較低的與數據組個數等量的多個計算節點分別處理一個數據組的數據和與該數據對應的表項中其他數據列的數據;當計算節點個數等於數據組個數時,每一個計算節點可以分別處理一個數據組的數據和與該數據對應的表項中其他數據列的數據;當計算節點個數小於數據組個數時,可以從計算節點中選擇負載較低的計算節點進行多個數據組的數據和與該數據對應的表項中其他數據列的數據的處理,本發明實施例不做限定。
[0060]202、計算節點按行獲取第二表項的數據,並且獲取當前行數據對應的所述第二表項的關聯數據列中的數據。
[0061]203、計算節點判斷所述當前行數據對應的所述第二表項的關聯數據列中的數據,是否與所述計算節點對應的所述數據組中的數據相同。若相同則跳轉到步驟204,不同則跳轉到步驟205。
[0062]204、若所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據相同,計算節點建立所述當前行數據與所述數據組中的數據對應的所述第一表項中其他數據列的數據之間的對應關係。
[0063]例如,用於關聯維表和數據表的關聯列數據為用戶編號,此時通過將與用戶編號對應的維表中的用戶性別、用戶年齡等數據,和與用戶編號對應的數據表中的用戶上網時間信息、用戶常用應用程式的統計信息等建立對應關係,可以使得用戶只需要輸入一個用戶編號,即可獲取到維表和數據表中與該用戶編號對應的性別信息、年齡信息、上網時間信息、和用戶常用應用程式的統計信息等。
[0064]可選地,若所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據不相同,則不對當前行數據進行處理,並跳轉到步驟205。
[0065]205、計算節點判斷所述第二表項的數據中是否存在未獲取到的數據。若存在,則跳轉到步驟202,若不存在,則跳轉到步驟206。
[0066]對於本發明實施例,計算節點具體可以根據獲取的當前行數據中存在結束符標記,確認第二表項的數據中不存在未獲取到的數據;或者計算節點還可以根據本次當前行數據獲取操作未獲取到數據,確認不存在未獲取到的數據,本發明實施例不做限定。
[0067]206、若所述第二表項的數據中不存在未獲取到的數據,所述計算節點終止再次獲取所述第二表項的數據。
[0068]對於本發明實施例,當第二表項的數據中不存在未獲取到的數據時,說明此時第二表項的數據已經全部與第一表項中的數據進行了關聯操作,計算節點終止再次獲取所述第二表項的數據,可以避免計算節點重複進行數據獲取操作。
[0069]本發明實施例提供的另一種多表關聯方法,首先主服務節點獲取第一表項的數據量和所述第一表項中的關聯數據列,若所述數據量大於預設內存加載閾值,則所述主服務節點將所述關聯數據列中的數據劃分為多個數據組,然後所述主服務節點保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。與目前通過在Hadoop中的reduce端或者map端實現表關聯操作相比,本發明實施例通過將數據量較大的表項預先進行分片處理,可以實現數據量較大的多個表之間的關聯,同時,提升了多表關聯效率。
[0070]進一步地,作為圖1所示方法的具體實現,本發明實施例提供一種主服務節點,所述主服務節點可以為終端設備,例如伺服器,如圖3所示,包括:獲取單元31、劃分單元32、保存單元33、關聯單元34。
[0071 ] 獲取單元31,可以用於獲取第一表項的數據量和所述第一表項中的關聯數據列,所述關聯數據列用於與第二表項進行關聯。
[0072]劃分單元32,可以用於若所述獲取單元31獲取的所述數據量大於預設內存加載閾值,則將所述關聯數據列中的數據劃分為多個數據組,所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據量之和,小於所述預設內存加載閾值。
[0073]保存單元33,可以用於保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。
[0074]劃分單元32,可以用於根據所述第一表項的數據量,將所述關聯數據列中的數據劃分為多個數據組,和/或
[0075]劃分單元32,可以用於根據所述關聯數據列中各個數據分別對應的統計熱度值,將所述關聯數據列中的數據劃分為多個數據組。
[0076]關聯單元34,可以用於若所述數據量小於或等於所述預設內存加載閾值,則進行所述第一表項與所述第二表項的表關聯操作。
[0077]需要說明的是,本發明實施例提供的主服務節點所涉及各功能單元的其他相應描述,可以參考圖1中的對應描述,在此不再贅述。
[0078]再進一步地,作為圖2所示方法的具體實現,本發明實施例提供一種計算節點,所述計算節點可以為終端設備,例如計算機,如圖4所示,所述計算節點包括:獲取單元41、判斷單元42、建立單元43、終止單元44。
[0079]獲取單元41,可以用於從主服務節點中獲取與所述計算節點對應的數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述主服務節點保存有每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述每一個數據組為所述主服務節點根據所述第一表項的關聯數據列中的數據進行劃分的。
[0080]獲取單元41,還可以用於按行獲取第二表項的數據,並且獲取當前行數據對應的所述第二表項的關聯數據列中的數據。
[0081]判斷單元42,用於判斷所述獲取單元41獲取的所述當前行數據對應的所述第二表項的關聯數據列中的數據,是否與所述計算節點對應的所述數據組中的數據相同。
[0082]建立單元43,可以用於若所述判斷單元42判斷所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據相同,建立所述當前行數據和與所述數據組中的數據對應的所述第一表項中其他數據列的數據之間的對應關係。
[0083]判斷單元42,還可以用於判斷所述第二表項的數據中是否存在未獲取到的數據。
[0084]終止單元44,可以用於若所述判斷單元42判斷所述第二表項的數據中不存在未獲取到的數據,終止再次獲取所述第二表項的數據。
[0085]判斷單元42,還可以用於若所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據不相同,則所述計算節點判斷所述第二表項的數據中是否存在未獲取到的數據。
[0086]需要說明的是,本發明實施例提供的計算節點所涉及各功能單元的其他相應描述,可以參考圖2中的對應描述,在此不再贅述。
[0087]本發明實施例提供的裝置,首先主服務節點獲取第一表項的數據量和所述第一表項中的關聯數據列,若所述數據量大於預設內存加載閾值,則所述主服務節點將所述關聯數據列中的數據劃分為多個數據組,然後所述主服務節點保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。與目前通過在Hadoop中的任務reduce端或者任務map端實現表關聯操作相比,本發明實施例通過將數據量較大的表項預先進行分片處理,可以實現進行數據量較大的多個表之間的關聯,同時,提升了多表關聯效率。
[0088]再進一步地,作為上述各個實施例的具體實現,本發明實施例提供一種多表關聯繫統,如圖5所示,所述多表關聯繫統可以包括:主服務節點51和至少一個計算節點52。
[0089]主服務節點51,可以用於獲取第一表項的數據量和所述第一表項中的關聯數據列,所述關聯數據列用於與第二表項進行關聯。
[0090]主服務節點51,還可以用於若所述數據量大於預設內存加載閾值,則將所述關聯數據列中的數據劃分為多個數據組,所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據量,小於所述預設內存加載閾值。
[0091]主服務節點51,還可以用於保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據。
[0092]計算節點52,可以用於從所述主服務節點51中獲取與所述計算節點對應的數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據。
[0093]計算節點52,還可以用於按行獲取第二表項的數據,並且獲取當前行數據對應的所述第二表項的關聯數據列中的數據。
[0094]計算節點52,還可以用於若所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據相同,建立所述當前行數據和與所述數據組中的數據對應的所述第一表項中其他數據列的數據之間的對應關係。
[0095]本發明實施例提供的多表關聯繫統所涉及各功能單元的其他相應描述,可以參考圖1和圖2中的對應描述,在此不再贅述。
[0096]本發明實施例提供的多表關聯繫統,首先主服務節點獲取第一表項的數據量和所述第一表項中的關聯數據列,若所述數據量大於預設內存加載閾值,則所述主服務節點將所述關聯數據列中的數據劃分為多個數據組,然後所述主服務節點保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。與目前通過在Hadoop中的任務reduce端或者任務map端實現表關聯操作相比,本發明實施例通過將數據量較大的表項預先進行分片處理,可以實現數據量較大的多個表之間的關聯,同時,提升了多表關聯效率。
[0097]本發明實施例提供的主服務節點、計算節點和多表關聯繫統可以實現上述提供的方法實施例,具體功能實現請參見方法實施例中的說明,在此不再贅述。本發明實施例提供的多表關聯方法、主服務節點、計算節點及系統可以適用於信息【技術領域】,但不僅限於此。
[0098]本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過電腦程式來指令相關的硬體來完成,所述的程序可存儲於一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0099]以上所述,僅為本發明的【具體實施方式】,但本發明的保護範圍並不局限於此,任何熟悉本【技術領域】的技術人員在本發明揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應該以權利要求的保護範圍為準。
【權利要求】
1.一種多表關聯方法,其特徵在於,包括: 主服務節點獲取第一表項的數據量和所述第一表項中的關聯數據列,所述關聯數據列用於與第二表項進行關聯; 若所述第一表項的數據量大於預設內存加載閾值,則所述主服務節點將所述關聯數據列中的數據劃分為多個數據組,所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據量之和,小於所述預設內存加載閾值; 所述主服務節點保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和與所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。
2.根據權利要求1所述的多表關聯方法,其特徵在於,所述主服務節點將所述關聯數據列中的數據劃分為多個數據組的步驟包括: 所述主服務節點根據所述第一表項的數據量,將所述關聯數據列中的數據劃分為多個數據組;和/或 所述主服務節點根據所述關聯數據列中各個數據分別對應的統計熱度值,將所述關聯數據列中的數據劃分為多個數據組。
3.根據權利要求1所述的多表關聯方法,其特徵在於,所述主服務節點獲取第一表項的數據量的步驟之後,還包括: 若所述第一表項的數據量小於或等於所述預設內存加載閾值,則所述主服務節點進行所述第一表項與所述第二表項的表關聯操作。
4.一種多表關聯方法,其特徵在於,包括: 計算節點從主服務節點中獲取與所述計算節點對應的數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述主服務節點保存有每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述每一個數據組為所述主服務節點根據所述第一表項的關聯數據列中的數據進行劃分的; 所述計算節點按行獲取第二表項的數據,並且獲取當前行數據對應的所述第二表項的關聯數據列中的數據; 所述計算節點判斷所述當前行數據對應的所述第二表項的關聯數據列中的數據,是否與所述計算節點對應的所述數據組中的數據相同; 若所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據相同,所述計算節點建立所述當前行數據和與所述數據組中的數據對應的所述第一表項中其他數據列的數據之間的對應關係。
5.根據權利要求4所述的多表關聯方法,其特徵在於,所述計算節點建立所述當前行數據和與所述數據對應的所述第一表項中其他數據列的數據之間的對應關係的步驟之後,還包括: 所述計算節點判斷所述第二表項的數據中是否存在未獲取到的數據; 若所述第二表項的數據中不存在未獲取到的數據,所述計算節點終止再次獲取所述第二表項的數據。
6.根據權利要求4所述的多表關聯方法,其特徵在於,所述計算節點判斷所述當前行數據對應的所述第二表項的關聯數據列中的數據,是否與所述計算節點對應的所述數據組中的數據相同的步驟之後,還包括: 若所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據不相同,則所述計算節點判斷所述第二表項的數據中是否存在未獲取到的數據。
7.一種主服務節點,其特徵在於,包括: 獲取單元,用於獲取第一表項的數據量和所述第一表項中的關聯數據列,所述關聯數據列用於與第二表項進行關聯; 劃分單元,若所述獲取單元獲取的所述第一表項的數據量大於預設內存加載閾值,則將所述關聯數據列中的數據劃分為多個數據組,所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據量之和,小於所述預設內存加載閾值; 保存單元,用於保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,以使得至少一個計算節點根據分別對應的數據組中的數據和與所述數據對應的其他數據列的數據,進行所述第一表項與所述第二表項的表關聯操作。
8.根據權利要求7所述的主服務節點,其特徵在於, 所述劃分單元,用於根據所述第一表項的數據量,將所述關聯數據列中的數據劃分為多個數據組;和/或 所述劃分單元,用於根據所述關聯數據列中各個數據分別對應的統計熱度值,將所述關聯數據列中的數據劃分為多個數據組。
9.根據權利要求7所述的主服務節點,其特徵在於,所述主服務節點還包括: 關聯單元,用於若所述第一表項的數據量小於或等於所述預設內存加載閾值,則進行所述第一表項與所述第二表項的表關聯操作。
10.一種計算節點,其特徵在於,包括: 獲取單元,用於從主服務節點中獲取與所述計算節點對應的數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述主服務節點保存有每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據,所述每一個數據組為所述主服務節點根據所述第一表項的關聯數據列中的數據進行劃分的; 獲取單元,還用於按行獲取第二表項的數據,並且獲取當前行數據對應的所述第二表項的關聯數據列中的數據; 判斷單元,用於判斷所述獲取單元獲取的所述當前行數據對應的所述第二表項的關聯數據列中的數據,是否與所述計算節點對應的所述數據組中的數據相同; 建立單元,用於若所述判斷單元判斷所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據相同,建立所述當前行數據和與所述數據組中的數據對應的所述第一表項中其他數據列的數據之間的對應關係。
11.根據權利要求10所述的計算節點,其特徵在於,所述計算節點還包括:終止單元; 所述判斷單元,還用於判斷所述第二表項的數據中是否存在未獲取到的數據; 所述終止單元,用於若所述判斷單元判斷所述第二表項的數據中不存在未獲取到的數據,終止再次獲取所述第二表項的數據。
12.根據權利要求10所述的計算節點,其特徵在於, 所述判斷單元,還用於若所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據不相同,則所述計算節點判斷所述第二表項的數據中是否存在未獲取到的數據。
13.一種多表關聯繫統,其特徵在於,包括:主服務節點和至少一個計算節點; 所述主服務節點,用於獲取第一表項的數據量和所述第一表項中的關聯數據列,所述關聯數據列用於與第二表項進行關聯; 所述主服務節點,還用於若所述第一表項的數據量大於預設內存加載閾值,則將所述關聯數據列中的數據劃分為多個數據組,所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據量之和,小於所述預設內存加載閾值; 所述主服務節點,還用於保存所述每一個數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據; 所述計算節點,用於從所述主服務節點中獲取與所述計算節點對應的數據組中的數據和與所述數據對應的所述第一表項的其他數據列的數據; 所述計算節點,還用於按行獲取第二表項的數據,並且獲取當前行數據對應的所述第二表項的關聯數據列中的數據; 所述計算節點,還用於若所述當前行數據對應的所述第二表項的關聯數據列中的數據與所述數據組中的數據相同,建立所述當前行數據和與所述數據組中的數據對應的所述第一表項中其他數據列的數據之間的對應關係。
【文檔編號】H04L29/08GK104424240SQ201310378712
【公開日】2015年3月18日 申請日期:2013年8月27日 優先權日:2013年8月27日
【發明者】蔡馥晗, 李 浩, 武磊, 曾偉紀 申請人:騰訊科技(深圳)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀