[發明專利]一種按照hash規則切分數據使其更均勻的方法在審
| 申請號: | 202110942746.4 | 申請日: | 2021-08-17 |
| 公開(公告)號: | CN113672619A | 公開(公告)日: | 2021-11-19 |
| 發明(設計)人: | 趙偉;李南鋒 | 申請(專利權)人: | 天津南大通用數據技術股份有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/2458 |
| 代理公司: | 天津企興智財知識產權代理有限公司 12226 | 代理人: | 安孔川 |
| 地址: | 300384 天津市濱海新區華*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 按照 hash 規則 切分 數據 均勻 方法 | ||
本發明提供了一種按照hash規則切分數據使其更均勻的方法,首先根據設置的內存大小去計算出hash桶的數量,然后將待切分的數據集合進行采樣,在采樣過程中,記錄下相同數據出現的次數,然后把記錄下來的數據和數據的出現次數按照出現次數進行排序,將頂端的數據進行記錄形成topN數據信息,然后在進行單獨劃分形成獨立的hash數據塊。本發明所述的一種按照hash規則切分數據使其更均勻的方法,各數據塊切分得更均勻可以使得多個線程可以在同一時間完成工作,避免單個線程由于劃分的數據量巨大使得處理時間過長的問題。
技術領域
本發明屬于數據庫領域,尤其是涉及一種按照hash規則切分數據使其更均勻的方法。
背景技術
數據庫的join操作是指查詢過程中將兩個表進行關聯,形成一個迪卡爾積的兩個表的行的集合,通常再加上where條件來過濾掉不需要的行,來獲得真正所需要的兩個表的行的組合。
在進行兩表的關聯查詢時,通常會指定兩表的連接條件,很多情況下為兩表相關列的一個等值條件,例如select*from t1,t2 where t1.a=t2.a,在數據庫內核中進行處理時,是通過多線程并行計算處理的,在啟動多線程處理之前,需要將兩個表的數據進行切分,使得相同數值的數據可以落到同一線程中處理,這個過程通常采用hash算法來進行切分,使相同hash值的數據放入同一個數據塊。
但這樣帶來的問題是,某些hash值相同的數據過于龐大,可能存在切分出來的數據塊不均勻,使得線程在計算處理這些數據塊時就要比別的線程耗費較多的時間,系統整體的效率則因為這個線程而受到影響,形成木桶效應,因此更均勻的數據劃分則會提高系統效率。
另外hash桶數量的設置也影響著系統的效率,如果hash桶數量過小,那內存不能裝入所有數據,則會反復從磁盤讀取數據,因此這里對hash桶的數量進行了評估運算,通過內存大小和數據信息去預估hash桶的數量。
發明內容
有鑒于此,本發明旨在提出一種按照hash規則切分數據使其更均勻的方法,以解決單個線程由于劃分的數據量巨大使得處理時間過長的問題。
為達到上述目的,本發明的技術方案是這樣實現的:
一種按照hash規則切分數據使其更均勻的方法,包括以下步驟:
S1、對待劃分數據進行采樣,采樣過程中記錄下相同的待劃分數據出現的次數;
S2、對采樣后的數據按照出現次數進行排序,形成topN數據信息;
S3、結合配置內存大小和數據數量進行hash桶數量評估;
S4、根據hash桶數量及topN數據信息通過哈希算法切分為數據塊文件,統計每個數據塊文件中數據的平均數據條數;
S5、根據設定的條件,判斷每個數據塊文件中數據集的平均數據條數是否符合要求,若符合要求則重復步驟S2-S4,否則完成切分。
進一步的,步驟S1中采樣時按比例進行采樣,采樣過程具體包括以下步驟:
第一步,確定采樣條數:根據數據總量,取數據總量的10%作為要采樣的總條數;
第二步,計算采樣點:將總數據條數按照100份進行分配,選取每一份數據條數為起始位置,作為采樣的起始點;
第三步,計算每個采樣點的需采樣的數據條數:將計算出來的采樣數據條數除以100,得到每個采樣點需要采樣的數據條數。
進一步的,步驟S3中進行hash桶數量評估通過以下評估公式得到:
hash桶數量=(總數據條數*(1-數據重復率))/內存中能裝下的數據條數。
進一步的,步驟S4中哈希算法切分為數據塊文件的過程如下:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于天津南大通用數據技術股份有限公司,未經天津南大通用數據技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110942746.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種煙氣濕度檢測裝置和方法
- 下一篇:超導電纜振動試驗與抗振性能測試方法





