亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于業(yè)務(wù)的全局ID生成方法及系統(tǒng)與流程

文檔序號(hào):11582777閱讀:584來(lái)源:國(guó)知局

本發(fā)明涉及大數(shù)據(jù)處理的技術(shù)領(lǐng)域,尤其涉及一種基于業(yè)務(wù)的全局id生成方法,以及基于業(yè)務(wù)的全局id生成系統(tǒng)。



背景技術(shù):

現(xiàn)有技術(shù)方案大多采用時(shí)間戳+隨機(jī)數(shù)的生成方式。時(shí)間戳一般是取系統(tǒng)當(dāng)前的13位毫秒時(shí)間戳,隨機(jī)數(shù)則是根據(jù)系統(tǒng)內(nèi)置的隨機(jī)數(shù)生成函數(shù),并經(jīng)過(guò)一定的處理,返回一個(gè)固定位數(shù)的數(shù)字串,拼接起來(lái)作為整個(gè)id。

現(xiàn)有方案在單機(jī)執(zhí)行的時(shí)候,是沒(méi)什么問(wèn)題的,但是在分布式系統(tǒng)中,由于是并行操作,在同一毫秒,多臺(tái)機(jī)器都會(huì)執(zhí)行相同指令,從而導(dǎo)致出現(xiàn)重復(fù)id的狀況,經(jīng)過(guò)測(cè)試,40億左右的數(shù)量級(jí),會(huì)產(chǎn)生1萬(wàn)個(gè)左右的重復(fù)id,重復(fù)率約為40萬(wàn)分之一。



技術(shù)實(shí)現(xiàn)要素:

為克服現(xiàn)有技術(shù)的缺陷,本發(fā)明要解決的技術(shù)問(wèn)題是提供了一種基于業(yè)務(wù)的全局id生成方法,其能夠使生成的id是唯一的,而且有了業(yè)務(wù)意義,讓數(shù)據(jù)分析師根據(jù)id就可以得到很多重要信息,避免了很多例如join之類(lèi)的其他多余操作,提升了數(shù)據(jù)分析效率。

本發(fā)明的技術(shù)方案是:這種基于業(yè)務(wù)的全局id生成方法,該方法包括以下步驟:

(1)對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行數(shù)字編碼,并把生成的字典文件存儲(chǔ)到hadoop集群;

(2)實(shí)時(shí)獲取運(yùn)營(yíng)商數(shù)據(jù),并寫(xiě)到hadoop集群;

(3)配置調(diào)度任務(wù),定期執(zhí)行程序,解析運(yùn)營(yíng)商數(shù)據(jù),并生成id,導(dǎo)入數(shù)據(jù)倉(cāng)庫(kù)。

本發(fā)明通過(guò)把分布式系統(tǒng)中的機(jī)器id和計(jì)數(shù)器加入?yún)?shù)中,完美的確定了唯一性,并對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行編碼,作為生成id的子串,從而能夠使生成的id是唯一的,而且有了業(yè)務(wù)意義,讓數(shù)據(jù)分析師根據(jù)id就可以得到很多重要信息,避免了很多例如join之類(lèi)的其他多余操作,提升了數(shù)據(jù)分析效率。

還提供了一種基于業(yè)務(wù)的全局id生成系統(tǒng),該系統(tǒng)包括:

業(yè)務(wù)編碼模塊,其配置來(lái)對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行數(shù)字編碼,并把生成的字典文件存儲(chǔ)到hadoop集群;

運(yùn)營(yíng)商數(shù)據(jù)獲取模塊,其配置來(lái)實(shí)時(shí)獲取運(yùn)營(yíng)商數(shù)據(jù),并寫(xiě)到hadoop集群;

id生成模塊,其配置來(lái)配置調(diào)度任務(wù),定期執(zhí)行程序,解析運(yùn)營(yíng)商數(shù)據(jù),并生成id,導(dǎo)入數(shù)據(jù)倉(cāng)庫(kù)。

附圖說(shuō)明

圖1所示為根據(jù)本發(fā)明的基于業(yè)務(wù)的全局id生成方法的流程圖。

具體實(shí)施方式

如圖1所示,這種基于業(yè)務(wù)的全局id生成方法,該方法包括以下步驟:

(1)對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行數(shù)字編碼,并把生成的字典文件存儲(chǔ)到hadoop集群;

(2)實(shí)時(shí)獲取運(yùn)營(yíng)商數(shù)據(jù),并寫(xiě)到hadoop集群;

(3)配置調(diào)度任務(wù),定期執(zhí)行程序,解析運(yùn)營(yíng)商數(shù)據(jù),并生成id,導(dǎo)入數(shù)據(jù)倉(cāng)庫(kù)。

本發(fā)明通過(guò)把分布式系統(tǒng)中的機(jī)器id和計(jì)數(shù)器加入?yún)?shù)中,完美的確定了唯一性,并對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行編碼,作為生成id的子串,從而能夠使生成的id是唯一的,而且有了業(yè)務(wù)意義,讓數(shù)據(jù)分析師根據(jù)id就可以得到很多重要信息,避免了很多例如join之類(lèi)的其他多余操作,提升了數(shù)據(jù)分析效率。

另外,所述步驟(1)中,對(duì)用戶(hù)最關(guān)心的賬號(hào)類(lèi)型、運(yùn)營(yíng)商和省份數(shù)據(jù),進(jìn)行了數(shù)字編碼。

另外,所述步驟(1)中,數(shù)字編碼采用2位十進(jìn)制數(shù)字表示,賬號(hào)類(lèi)型、運(yùn)營(yíng)商和省份數(shù)據(jù)相互獨(dú)立,分別編碼。

生成id的程序是基于mapreduce框架實(shí)現(xiàn)的。mapreduce運(yùn)行時(shí),會(huì)調(diào)用集群中的多臺(tái)機(jī)器并行執(zhí)行,其中每個(gè)機(jī)器會(huì)有一個(gè)taskid,不同機(jī)器taskid不同,這里我們便利用了這個(gè)特性。另外每個(gè)機(jī)器處理數(shù)據(jù)的過(guò)程中,會(huì)有一個(gè)計(jì)數(shù)器,即counter,程序每處理一條數(shù)據(jù),計(jì)數(shù)器執(zhí)行加一操作。

另外,所述步驟(3)中,id的組成為:時(shí)間戳加上計(jì)數(shù)器加上機(jī)器節(jié)點(diǎn)id再加上業(yè)務(wù)編碼。這樣既可以完全保證生成id的唯一性,而且id包含了重要的業(yè)務(wù)信息,方便后續(xù)的數(shù)據(jù)分析需求。

另外,所述步驟(3)中,從運(yùn)營(yíng)商數(shù)據(jù)解析出uid、運(yùn)營(yíng)商、省份、賬號(hào)類(lèi)型,判斷相應(yīng)的uid是否已經(jīng)生成過(guò)id,是則跳過(guò),否則獲取當(dāng)前的13位時(shí)間戳和當(dāng)前機(jī)器節(jié)點(diǎn)的id;然后對(duì)運(yùn)營(yíng)商、省份、賬號(hào)類(lèi)型根據(jù)字典文件按順序進(jìn)行相應(yīng)的編碼轉(zhuǎn)換,生成一個(gè)數(shù)字組成的字符串,并對(duì)計(jì)數(shù)器加一,如果計(jì)數(shù)器超過(guò)閾值(閾值可以為9999,也可根據(jù)實(shí)際自行調(diào)整),則計(jì)數(shù)器歸零,如此往復(fù)。

本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括上述實(shí)施例方法的各步驟,而所述的存儲(chǔ)介質(zhì)可以是:rom/ram、磁碟、光盤(pán)、存儲(chǔ)卡等。因此,與本發(fā)明的方法相對(duì)應(yīng)的,本發(fā)明還同時(shí)包括一種基于業(yè)務(wù)的全局id生成系統(tǒng),該系統(tǒng)通常以與方法各步驟相對(duì)應(yīng)的功能模塊的形式表示。使用該方法的系統(tǒng)包括:

業(yè)務(wù)編碼模塊,其配置來(lái)對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行數(shù)字編碼,并把生成的字典文件存儲(chǔ)到hadoop集群;

運(yùn)營(yíng)商數(shù)據(jù)獲取模塊,其配置來(lái)實(shí)時(shí)獲取運(yùn)營(yíng)商數(shù)據(jù),并寫(xiě)到hadoop集群;

id生成模塊,其配置來(lái)配置調(diào)度任務(wù),定期執(zhí)行程序,解析運(yùn)營(yíng)商數(shù)據(jù),并生成id,導(dǎo)入數(shù)據(jù)倉(cāng)庫(kù)。

另外,所述業(yè)務(wù)編碼模塊中,對(duì)用戶(hù)最關(guān)心的賬號(hào)類(lèi)型、運(yùn)營(yíng)商和省份數(shù)據(jù),進(jìn)行了數(shù)字編碼。

另外,所述業(yè)務(wù)編碼模塊中,數(shù)字編碼采用2位十進(jìn)制數(shù)字表示,賬號(hào)類(lèi)型、運(yùn)營(yíng)商和省份數(shù)據(jù)相互獨(dú)立,分別編碼。

另外,所述id生成模塊中,id的組成為:時(shí)間戳加上計(jì)數(shù)器加上機(jī)器節(jié)點(diǎn)id再加上業(yè)務(wù)編碼。

另外,所述id生成模塊中,從運(yùn)營(yíng)商數(shù)據(jù)解析出uid、運(yùn)營(yíng)商、省份、賬號(hào)類(lèi)型,判斷相應(yīng)的uid是否已經(jīng)生成過(guò)id,是則跳過(guò),否則獲取當(dāng)前的13位時(shí)間戳和當(dāng)前機(jī)器節(jié)點(diǎn)的id;然后對(duì)運(yùn)營(yíng)商、省份、賬號(hào)類(lèi)型根據(jù)字典文件按順序進(jìn)行相應(yīng)的編碼轉(zhuǎn)換,生成一個(gè)數(shù)字組成的字符串,并對(duì)計(jì)數(shù)器加一,如果計(jì)數(shù)器超過(guò)閾值,則計(jì)數(shù)器歸零,如此往復(fù)。

本發(fā)明的有益效果如下:

1.可以確保id的全局唯一性;

2.業(yè)務(wù)數(shù)據(jù)加入id,提高的數(shù)據(jù)存儲(chǔ)的資源利用率,減少了數(shù)據(jù)解析的環(huán)節(jié)和時(shí)間成本。

以上所述,僅是本發(fā)明的較佳實(shí)施例,并非對(duì)本發(fā)明作任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化與修飾,均仍屬本發(fā)明技術(shù)方案的保護(hù)范圍。



技術(shù)特征:

技術(shù)總結(jié)
一種基于業(yè)務(wù)的全局ID生成方法,其能夠使生成的ID是唯一的,而且有了業(yè)務(wù)意義,讓數(shù)據(jù)分析師根據(jù)ID就可以得到很多重要信息,避免了很多例如join之類(lèi)的其他多余操作,提升了數(shù)據(jù)分析效率。該方法包括以下步驟:(1)對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行數(shù)字編碼,并把生成的字典文件存儲(chǔ)到hadoop集群;(2)實(shí)時(shí)獲取運(yùn)營(yíng)商數(shù)據(jù),并寫(xiě)到hadoop集群;(3)配置調(diào)度任務(wù),定期執(zhí)行程序,解析運(yùn)營(yíng)商數(shù)據(jù),并生成ID,導(dǎo)入數(shù)據(jù)倉(cāng)庫(kù)。還有一種基于業(yè)務(wù)的全局ID生成系統(tǒng)。

技術(shù)研發(fā)人員:李冰;何良均;溫宗臣;范衛(wèi)衛(wèi);馮森林;張書(shū)凡
受保護(hù)的技術(shù)使用者:北京集奧聚合科技有限公司
技術(shù)研發(fā)日:2016.11.03
技術(shù)公布日:2017.08.11
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1