• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>
    當(dāng)前位置: 首頁 > 專利查詢>浪潮集團有限公司專利>正文

    一種哈希連接的方法及裝置制造方法及圖紙

    技術(shù)編號:12581094 閱讀:99 留言:0更新日期:2015-12-23 19:25
    本發(fā)明專利技術(shù)提供了一種哈希連接的方法及裝置,該方法包括:S1:獲取待操作的第一表中待操作的第一數(shù)據(jù)和待操作的第二表中待操作的第二數(shù)據(jù);S2:計算每個第一數(shù)據(jù)的哈希值,根據(jù)每個第一數(shù)據(jù)的哈希值,確定每個第一數(shù)據(jù)對應(yīng)的分區(qū)號,并計算每個第二數(shù)據(jù)的哈希值,根據(jù)每個第二數(shù)據(jù)的哈希值,確定每個第二數(shù)據(jù)對應(yīng)的分區(qū)號;S3:將對應(yīng)相同分區(qū)號的數(shù)據(jù)讀入到內(nèi)存的同一個分區(qū)中;S4:分別將同一個分區(qū)中的第一數(shù)據(jù)和第二數(shù)據(jù)進(jìn)行哈希連接hash?join操作。本發(fā)明專利技術(shù)提供了一種哈希連接的方法及裝置,能夠提高join效率。

    【技術(shù)實現(xiàn)步驟摘要】

    本專利技術(shù)涉及計算機
    ,特別涉及一種哈希連接的方法及裝置。
    技術(shù)介紹
    Spark是一個基于內(nèi)存計算的開源的集群計算系統(tǒng),目的是讓數(shù)據(jù)分析更加快速。Spark非常小巧玲瓏,由加州伯克利大學(xué)AMP實驗室的Matei為主的小團隊所開發(fā)。使用的語言是Scala,雖然Spark與Hadoop有相似之處,但它提供了具有有用差異的一個新的集群計算框架。首先,Spark是為集群計算中的特定類型的工作負(fù)載而設(shè)計,即那些在并行操作之間重用工作數(shù)據(jù)集(比如機器學(xué)習(xí)算法)的工作負(fù)載。為了優(yōu)化這些類型的工作負(fù)載,Spark引進(jìn)了內(nèi)存集群計算的概念,可在內(nèi)存集群計算中將數(shù)據(jù)集緩存在內(nèi)存中,以縮短訪問延遲。在hadoop 發(fā)展過程中,為了 給熟悉 RDBMS (Relat1nal Database ManagementSystem,關(guān)系數(shù)據(jù)庫管理系統(tǒng))但又不理解MapReduce的技術(shù)人員提供快速上手的工具,hive應(yīng)運而生,是當(dāng)時唯一運行在hadoop上的SQL-on-Hadoop工具。但是,MapReduce計算過程中大量的中間磁盤落地過程消耗了大量的1/0,降低的運行效率,為了提高SQL-on-Hadoop 的效率,大量的 SQL-on-Hadoop 工具開始產(chǎn)生,MapR 的 Drill、Cloudera 的Impala、Shark都是在這一背景下產(chǎn)生的工具,其中Shark是伯克利實驗室spark生態(tài)環(huán)境的組件之一,它修改了下圖所示的右下角的內(nèi)存管理、物理計劃、執(zhí)行三個模塊,并使之能運行在spark引擎上,從而使得SQL查詢的速度得到10-100倍的提升。隨著Spark的發(fā)展,Shark對于hive的太多依賴(如采用hive的語法解析器、查詢優(yōu)化器等等),制約了 spark各個組件的相互集成,所以提出了 sparkSQL項目。SparkSQL拋棄原有Shark的代碼,汲取了 Shark的一些優(yōu)點,如內(nèi)存列存儲(In-Memory ColumnarStorage)、Hive兼容性等,重新開發(fā)了 SparkSQL代碼,由于擺脫了對hive的依賴性,SparkSQL無論在數(shù)據(jù)兼容、性能優(yōu)化、組件擴展方面都得到了極大的方便。Hive中join操作主要有map join和reduce join組成,這兩種join操作均使用的是mapreduce的計算架構(gòu),sparksql上的join操作針對mapreduce架構(gòu)內(nèi)存利用不足的問題提出了自己的計算模型。現(xiàn)有的hash join(哈希連接)操作中,將整個需要實現(xiàn)join操作的數(shù)據(jù)表存儲到內(nèi)存中進(jìn)行hash join,無法利用現(xiàn)有空閑的內(nèi)存,只能利用較大的內(nèi)存進(jìn)行處理,join效率較低。
    技術(shù)實現(xiàn)思路
    有鑒于此,本專利技術(shù)提供了一種哈希連接的方法及裝置,能夠提高join效率?!矫?,本專利技術(shù)提供了一種哈希連接的方法,包括:S1:獲取待操作的第一表中待操作的第一數(shù)據(jù)和待操作的第二表中待操作的第二數(shù)據(jù);S2:計算每個第一數(shù)據(jù)的哈希值,根據(jù)每個第一數(shù)據(jù)的哈希值,確定每個第一數(shù)據(jù)對應(yīng)的分區(qū)號,并計算每個第二數(shù)據(jù)的哈希值,根據(jù)每個第二數(shù)據(jù)的哈希值,確定每個第二數(shù)據(jù)對應(yīng)的分區(qū)號;S3:將對應(yīng)相同分區(qū)號的數(shù)據(jù)讀入到內(nèi)存的同一個分區(qū)中;S4:分別將同一個分區(qū)中的第一數(shù)據(jù)和第二數(shù)據(jù)進(jìn)行哈希連接hash join操作。進(jìn)一步地,該方法還包括:實時檢測所述內(nèi)存的剩余量是否小于等于預(yù)設(shè)值,如果是,則將所述內(nèi)存的任一分區(qū)中的未進(jìn)行hash join操作的第一數(shù)據(jù)和/或第二數(shù)據(jù)移出內(nèi)存,否則,將從內(nèi)存中移出的未進(jìn)行hash join操作的數(shù)據(jù)讀入到所述內(nèi)存中。進(jìn)一步地,所述S2中,所述根據(jù)每個第一數(shù)據(jù)的哈希值,確定每個第一數(shù)據(jù)對應(yīng)的分區(qū)號,包括:根據(jù)公式一確定每個第一數(shù)據(jù)對應(yīng)的分區(qū)號,其中,公式一為:numl = a | mod length ;其中,numl是第一數(shù)據(jù)對應(yīng)的分區(qū)號,a為第一數(shù)據(jù)的哈希值,length為預(yù)設(shè)的內(nèi)存中分區(qū)的數(shù)量;所述S2中,所述根據(jù)每個第二數(shù)據(jù)的哈希值,確定每個第二數(shù)據(jù)對應(yīng)的分區(qū)號,包括:根據(jù)公式二確定每個第二數(shù)據(jù)對應(yīng)的分區(qū)號,其中,公式二為:num2 = b | mod length ;其中,nUm2是第二數(shù)據(jù)對應(yīng)的分區(qū)號,b為第二數(shù)據(jù)的哈希值,length為預(yù)設(shè)的內(nèi)存中分區(qū)的數(shù)量。進(jìn)一步地,在所述SI之前,還包括:Dl:分別在存儲所述第一表的第一磁盤中和存儲所述第二表的第二磁盤中,劃分出哈希桶,為每個哈希桶分配哈希桶號;D2:計算每個第一數(shù)據(jù)的哈希值,根據(jù)每個第一數(shù)據(jù)的哈希值,確定每個第一數(shù)據(jù)對應(yīng)的哈希桶號,并計算每個第二數(shù)據(jù)的哈希值,根據(jù)每個第二數(shù)據(jù)的哈希值,確定每個第二數(shù)據(jù)對應(yīng)的哈希桶號;D3:根據(jù)每個第一數(shù)據(jù)對應(yīng)的哈希桶號,將每個第一數(shù)據(jù)存儲在所述第一磁盤中的具有相同哈希桶號的哈希桶中,并根據(jù)每個第二數(shù)據(jù)對應(yīng)的哈希桶號,將每個第二數(shù)據(jù)存儲在所述第二磁盤中的具有相同哈希桶號的哈希桶中;所述SI,包括:分別從第一磁盤和第二磁盤中的具有相同哈希桶號的哈希桶中獲取所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。進(jìn)一步地,所述S4,包括:為每個分區(qū)分配hash join操作線程,通過每個分區(qū)對應(yīng)的所述hash join操作線程,將每個分區(qū)中的第一數(shù)據(jù)和第二數(shù)據(jù)進(jìn)行hash join操作。另一方面,本專利技術(shù)提供了一種哈希連接的裝置,包括:獲取單元,用于獲取待操作的第一表中待操作的第一數(shù)據(jù)和待操作的第二表中待操作的第二數(shù)據(jù);分區(qū)號確定單元,用于計算每個第一數(shù)據(jù)的哈希值,根據(jù)每個第一數(shù)據(jù)的哈希值,確定每個第一數(shù)據(jù)對應(yīng)的分區(qū)號,并計算每個第二數(shù)據(jù)的哈希值,根據(jù)每個第二數(shù)據(jù)的哈希值,確定每個第二數(shù)據(jù)對應(yīng)的分區(qū)號;讀入單元,用于將對應(yīng)相同分區(qū)號的數(shù)據(jù)讀入到內(nèi)存的同一個分區(qū)中;操作單元,用于分別將同一個分區(qū)中的第一數(shù)據(jù)和第二數(shù)據(jù)進(jìn)行哈希連接hashjoin操作。進(jìn)一步地,該裝置還包括:檢測單元,用于實時檢測所述內(nèi)存的剩余量是否小于等于預(yù)設(shè)值,如果是,則將所述內(nèi)存的任一分區(qū)中的未進(jìn)行hash join操作的第一數(shù)據(jù)和/或第二數(shù)據(jù)移出內(nèi)存,否則,將從內(nèi)存中移出的未進(jìn)行hash join操作的數(shù)據(jù)讀入到所述內(nèi)存中。進(jìn)一步地,所述分區(qū)號確定單元,在執(zhí)行所述根據(jù)每個第一數(shù)據(jù)的哈希值,確定每個第一數(shù)據(jù)對應(yīng)的分區(qū)號時,具體執(zhí)行:根據(jù)公式一確定每個第一數(shù)據(jù)對應(yīng)的分區(qū)號,其中,公式一為:numl = a | mod length ;其中,numl是第一數(shù)據(jù)對應(yīng)的分區(qū)號,a為第一數(shù)據(jù)的哈希值,length為預(yù)設(shè)的內(nèi)存中分區(qū)的數(shù)量;所述分區(qū)號確定單元,在執(zhí)行根據(jù)每個第二數(shù)據(jù)的哈希值,確定每個第二數(shù)據(jù)對應(yīng)的分區(qū)號時,具體執(zhí)行:根據(jù)公式二確定每個第二數(shù)據(jù)對應(yīng)的分區(qū)號,其中,公式二為:num2 = b | mod length ;其中,nUm2是第二數(shù)據(jù)對應(yīng)的分區(qū)號,b為第二數(shù)據(jù)的哈希值,length為預(yù)設(shè)的內(nèi)存中分區(qū)的數(shù)量。進(jìn)一步地,該裝置還包括:分桶單元,用于分別在存儲所述第一表的第一磁盤中和存儲所述第二表的第二磁盤中,劃分出哈希桶,為每個哈希桶分配哈希桶號;桶號確定單元,用于計算每個第一數(shù)據(jù)的哈希值,根據(jù)每個第一數(shù)據(jù)的哈希值,確定每個第一數(shù)據(jù)對應(yīng)的哈希桶號,并計算每個第二數(shù)據(jù)的哈希值,根據(jù)每個第二數(shù)據(jù)的哈希值,確定每個第本文檔來自技高網(wǎng)
    ...

    【技術(shù)保護點】
    一種哈希連接的方法,其特征在于,包括:S1:獲取待操作的第一表中待操作的第一數(shù)據(jù)和待操作的第二表中待操作的第二數(shù)據(jù);S2:計算每個第一數(shù)據(jù)的哈希值,根據(jù)每個第一數(shù)據(jù)的哈希值,確定每個第一數(shù)據(jù)對應(yīng)的分區(qū)號,并計算每個第二數(shù)據(jù)的哈希值,根據(jù)每個第二數(shù)據(jù)的哈希值,確定每個第二數(shù)據(jù)對應(yīng)的分區(qū)號;S3:將對應(yīng)相同分區(qū)號的數(shù)據(jù)讀入到內(nèi)存的同一個分區(qū)中;S4:分別將同一個分區(qū)中的第一數(shù)據(jù)和第二數(shù)據(jù)進(jìn)行哈希連接hash?join操作。

    【技術(shù)特征摘要】

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:盧軍佐,曹連超亓開元,房體盈,趙仁明
    申請(專利權(quán))人:浪潮集團有限公司,
    類型:發(fā)明
    國別省市:山東;37

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产av无码专区亚洲av果冻传媒| 波多野结AV衣东京热无码专区| 久久午夜福利无码1000合集| 亚洲AV无码一区二区二三区软件 | 精品亚洲成在人线AV无码| 亚洲AV无码一区二区三区在线| 国产免费午夜a无码v视频| 无套中出丰满人妻无码| 成人h动漫精品一区二区无码| 国产激情无码一区二区| 曰韩无码无遮挡A级毛片| 精品久久久久久无码专区不卡| 久久亚洲av无码精品浪潮| 亚洲爆乳精品无码一区二区| 久久午夜夜伦鲁鲁片免费无码| 无码人妻AⅤ一区二区三区水密桃| 无码少妇一区二区性色AV| 国产真人无码作爱免费视频| 蜜芽亚洲av无码一区二区三区| 亚洲动漫精品无码av天堂| 久久久精品人妻无码专区不卡 | 亚洲AV中文无码字幕色三| 免费人成无码大片在线观看| 精品多人p群无码| 无码人妻丰满熟妇区免费 | 午夜无码性爽快影院6080| 久久av高潮av无码av喷吹| 无码人妻精品中文字幕免费| 东京热加勒比无码少妇| 无码aⅴ精品一区二区三区| 亚洲色无码专区一区| 中文无码热在线视频| 亚洲国产超清无码专区| 精品人妻大屁股白浆无码| 亚洲AV无码成人精品区在线观看| 中文字幕av无码专区第一页| 国产台湾无码AV片在线观看| 国产成年无码AV片在线韩国| 亚洲中文字幕无码永久在线| 国产av永久无码天堂影院| 台湾无码一区二区|