欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種hive持久化函數(shù)的控制方法及系統(tǒng)與流程

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

本發(fā)明涉及大數(shù)據(jù)處理的技術(shù)領(lǐng)域,尤其涉及一種hive持久化函數(shù)的控制方法,以及hive持久化函數(shù)的控制系統(tǒng)。



背景技術(shù):

hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供簡(jiǎn)單的sql查詢功能,可以將sql語(yǔ)句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過(guò)類SQL語(yǔ)句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉(cāng)庫(kù)的統(tǒng)計(jì)分析。

在hive平臺(tái)上做大數(shù)據(jù)計(jì)算時(shí)通用會(huì)使用到UDF(User-Defined Functions,用戶定義函數(shù)),主要是由于UDF非常靈活易用,用戶可以在UDF中實(shí)現(xiàn)非常復(fù)雜的邏輯運(yùn)算,在某些情況下UDF具有不可替代的作用。

在hive中建立持久化UDF的時(shí)候需要在每個(gè)數(shù)據(jù)庫(kù)中執(zhí)行一遍create function UDF名as包命using jar‘集群路徑’的命令,即創(chuàng)建UDF名稱并通過(guò)指定已經(jīng)上傳到集群中jar包的某個(gè)類完成該UDF的定義。在對(duì)UDF進(jìn)行刪除等操作也是如此。例如,中國(guó)專利申請(qǐng)(申請(qǐng)?zhí)枺篊N201410483891.0)提供了一種Hive中自制用戶提取信息工具的方法和裝置。

如果需要加載UDF的數(shù)據(jù)庫(kù)很多,則對(duì)UDF的添加、刪除等操作將非常費(fèi)時(shí)費(fèi)力。如果只在一個(gè)數(shù)據(jù)庫(kù)下建立UDF,在其他數(shù)據(jù)庫(kù)中使用該UDF時(shí),則需要在UDF名前添加該UDF所在數(shù)據(jù)庫(kù)的名稱,即:數(shù)據(jù)庫(kù)名.UDF名。這雖然降低了建立UDF的復(fù)雜性,卻使UDF的使用變得復(fù)雜。



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

為克服現(xiàn)有技術(shù)的缺陷,本發(fā)明要解決的技術(shù)問(wèn)題是提供了一種hive持久化函數(shù)的控制方法,其使得在大量數(shù)據(jù)庫(kù)需要添加UDF時(shí)操作變得方便,增強(qiáng)了可維護(hù)性,使得UDF具有更強(qiáng)的易用性,保證了UDF的靈活性和安全性。

本發(fā)明的技術(shù)方案是:這種hive持久化函數(shù)的控制方法,該方法包括以下步驟:

(1)修改hive的源代碼,以便在不指定數(shù)據(jù)庫(kù)域名時(shí),使hive的讀取和存儲(chǔ)UDF信息的操作指向default數(shù)據(jù)庫(kù);

(2)優(yōu)化hive的部署;

(3)建立跨庫(kù)UDF:在hive中的任意一個(gè)數(shù)據(jù)庫(kù)下,用create function建立跨庫(kù)UDF。

本發(fā)明通過(guò)在hive中的任意一個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建UDF,則可以在hive中所有庫(kù)中跨庫(kù)訪問(wèn)該UDF,而不必在每個(gè)數(shù)據(jù)庫(kù)中都創(chuàng)建一遍UDF。使得在大量數(shù)據(jù)庫(kù)需要添加UDF時(shí)操作變得方便,增強(qiáng)了可維護(hù)性;在hive的各個(gè)數(shù)據(jù)庫(kù)中使用UDF時(shí),可以像使用hive內(nèi)置的函數(shù)一樣方便,不需要添加任何數(shù)據(jù)庫(kù)域名前綴,使得UDF具有更強(qiáng)的易用性;依然可以創(chuàng)建個(gè)別數(shù)據(jù)庫(kù)自有的UDF,只需添加數(shù)據(jù)庫(kù)域名前綴即可,保證了UDF的靈活性和安全性。

還提供了一種hive持久化函數(shù)的控制系統(tǒng),該系統(tǒng)包括:

hive的源代碼修改模塊,其配置來(lái)檢查輸入的參數(shù)是否合法;

部署優(yōu)化模塊,其配置來(lái)優(yōu)化hive的部署;

跨庫(kù)UDF建立模塊,其配置來(lái)在hive中的任意一個(gè)數(shù)據(jù)庫(kù)下,用create function建立跨庫(kù)UDF。

附圖說(shuō)明

圖1所示為根據(jù)本發(fā)明的hive持久化函數(shù)的控制方法的流程圖。

具體實(shí)施方式

如圖1所示,這種hive持久化函數(shù)的控制方法,該方法包括以下步驟:

(1)修改hive的源代碼,以便在不指定數(shù)據(jù)庫(kù)域名時(shí),使hive的讀取和存儲(chǔ)UDF信息的操作指向default數(shù)據(jù)庫(kù);

(2)優(yōu)化hive的部署;

(3)建立跨庫(kù)UDF:在hive中的任意一個(gè)數(shù)據(jù)庫(kù)下,用create function建立跨庫(kù)UDF。

本發(fā)明通過(guò)在hive中的任意一個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建UDF,則可以在hive中所有庫(kù)中跨庫(kù)訪問(wèn)該UDF,而不必在每個(gè)數(shù)據(jù)庫(kù)中都創(chuàng)建一遍UDF。使得在大量數(shù)據(jù)庫(kù)需要添加UDF時(shí)操作變得方便,增強(qiáng)了可維護(hù)性;在hive的各個(gè)數(shù)據(jù)庫(kù)中使用UDF時(shí),可以像使用hive內(nèi)置的函數(shù)一樣方便,不需要添加任何數(shù)據(jù)庫(kù)域名前綴,使得UDF具有更強(qiáng)的易用性;依然可以創(chuàng)建個(gè)別數(shù)據(jù)庫(kù)自有的UDF,只需添加數(shù)據(jù)庫(kù)域名前綴即可,保證了UDF的靈活性和安全性。

另外,所述步驟(1)中,首先修改類FunctionRegistry中g(shù)etFunctionInfoFromMetastore函數(shù)和getFunctionInfo,將其中的dbName=SessionState.get().getCurrentDatabase().toLowerCase()替換為dbName=default;再修改類FunctionUtils類中的getQualifiedFunctionNamePart函數(shù),將其中的String dbName=SessionState.get().getCurrentDatabase()替換為dbName=default。

另外,所述步驟(2)中,將修改好的hive文件中的ql工程用mvn編譯成jar包,在含有pom.xml的項(xiàng)目路徑下執(zhí)行mvn package,生成包含依賴的jar文件,然后用該jar包替換機(jī)器上原有的jar包。

另外,所述步驟(3)中,在任意數(shù)據(jù)庫(kù)下,創(chuàng)建UDF名稱,并通過(guò)指定已經(jīng)上傳到集群中jar包的一個(gè)類完成該UDF的定義,從而建立跨庫(kù)訪問(wèn)的UDF。具體地,執(zhí)行create function UDF名as包名.類名,使用jar包在hadoop集群中的路徑。

另外,該方法還包括步驟(4),在創(chuàng)建UDF時(shí),如果添加數(shù)據(jù)庫(kù)域名前綴,則UDF建立在該數(shù)據(jù)庫(kù)下。

本領(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、磁碟、光盤、存儲(chǔ)卡等。因此,與本發(fā)明的方法相對(duì)應(yīng)的,本發(fā)明還同時(shí)包括一種hive持久化函數(shù)的控制系統(tǒng),該系統(tǒng)通常以與方法各步驟相對(duì)應(yīng)的功能模塊的形式表示。使用該方法的系統(tǒng)包括:

hive的源代碼修改模塊,其配置來(lái)檢查輸入的參數(shù)是否合法;

部署優(yōu)化模塊,其配置來(lái)優(yōu)化hive的部署;

跨庫(kù)UDF建立模塊,其配置來(lái)在hive中的任意一個(gè)數(shù)據(jù)庫(kù)下,用create function建立跨庫(kù)UDF。

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

1.通過(guò)在hive中的任意一個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建UDF,則可以在hive中所有庫(kù)中跨庫(kù)訪問(wèn)該UDF,而不必在每個(gè)數(shù)據(jù)庫(kù)中都創(chuàng)建一遍UDF。使得在大量數(shù)據(jù)庫(kù)需要添加UDF時(shí)操作變得方便,增強(qiáng)了可維護(hù)性。

2.在hive的各個(gè)數(shù)據(jù)庫(kù)中使用UDF時(shí),可以像使用hive內(nèi)置的函數(shù)一樣方便,不需要添加任何數(shù)據(jù)庫(kù)域名前綴,使得UDF具有更強(qiáng)的易用性。

3.依然可以創(chuàng)建個(gè)別數(shù)據(jù)庫(kù)自有的UDF,只需添加數(shù)據(jù)庫(kù)域名前綴即可,保證了UDF的靈活性和安全性。

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

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
额济纳旗| 长岭县| 正宁县| 永州市| 天台县| 涞源县| 山东省| 明星| 陇川县| 宁夏| 温泉县| 屏南县| 铅山县| 麻江县| 衢州市| 郧西县| 同心县| 外汇| 台东市| 黔东| 青川县| 开化县| 绥德县| 富宁县| 安化县| 武乡县| 京山县| 南和县| 吴忠市| 九龙坡区| 额济纳旗| 拜泉县| 河西区| 陈巴尔虎旗| 莆田市| 马关县| 城固县| 利川市| 乌什县| 杭锦后旗| 黎川县|