一种HIVE持久化函数的控制方法及系统.pdf

上传人:g**** 文档编号:1285327 上传时间:2018-04-12 格式:PDF 页数:6 大小:271.05KB
返回 下载 相关 举报
摘要
申请专利号:

CN201610953600.9

申请日:

2016.11.03

公开号:

CN106503210A

公开日:

2017.03.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/30申请日:20161103|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

北京集奥聚合科技有限公司

发明人:

张书凡; 张翼; 温宗臣; 何良均; 冯森林; 李冰; 范卫卫

地址:

100085 北京市海淀区上地东路1号院5号楼9层901

优先权:

专利代理机构:

北京和信华成知识产权代理事务所(普通合伙) 11390

代理人:

胡剑辉

PDF下载: PDF下载
内容摘要

一种hive持久化函数的控制方法,其使得在大量数据库需要添加UDF时操作变得方便,增强了可维护性,使得UDF具有更强的易用性,保证了UDF的灵活性和安全性。该方法包括以下步骤:(1)修改hive的源代码,以便在不指定数据库域名时,使hive的读取和存储UDF信息的操作指向default数据库;(2)优化hive的部署;(3)建立跨库UDF:在hive中的任意一个数据库下,用create function建立跨库UDF。还有一种hive持久化函数的控制系统。

权利要求书

1.一种hive持久化函数的控制方法,其特征在于:该方法包括以下步骤:
(1)修改hive的源代码,以便在不指定数据库域名时,使hive的读取和存储UDF信息的
操作指向default数据库;
(2)优化hive的部署;
(3)建立跨库UDF:在hive中的任意一个数据库下,用create function建立跨库UDF。
2.根据权利要求1所述的hive持久化函数的控制方法,其特征在于:所述步骤(1)中,首
先修改类FunctionRegistry中getFunctionInfoFromMetastore函数和getFunctionInfo,
将其中的dbName=SessionState.get().getCurrentDatabase().toLowerCase()替换为
dbName=default;再修改类FunctionUtils类中的getQualifiedFunctionNamePart函数,
将其中的String dbName=SessionState.get().getCurrentDatabase()替换为dbName=
default。
3.根据权利要求2所述的hive持久化函数的控制方法,其特征在于:所述步骤(2)中,将
修改好的hive文件中的ql工程用mvn编译成jar包,在含有pom.xml的项目路径下执行mvn
package,生成包含依赖的jar文件,然后用该jar包替换机器上原有的jar包。
4.根据权利要求3所述的hive持久化函数的控制方法,其特征在于:所述步骤(3)中,在
任意数据库下,创建UDF名称,并通过指定已经上传到集群中jar包的一个类完成该UDF的定
义,从而建立跨库访问的UDF。
5.根据权利要求4所述的hive持久化函数的控制方法,其特征在于:该方法还包括步骤
(4),在创建UDF时,如果添加数据库域名前缀,则UDF建立在该数据库下。
6.一种hive持久化函数的控制系统,其特征在于:该系统包括:
hive的源代码修改模块,其配置来检查输入的参数是否合法;
部署优化模块,其配置来优化hive的部署;
跨库UDF建立模块,其配置来在hive中的任意一个数据库下,用create function建立
跨库UDF。

说明书

一种hive持久化函数的控制方法及系统

技术领域

本发明涉及大数据处理的技术领域,尤其涉及一种hive持久化函数的控制方法,
以及hive持久化函数的控制系统。

背景技术

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数
据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优
点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的
MapReduce应用,十分适合数据仓库的统计分析。

在hive平台上做大数据计算时通用会使用到UDF(User-Defined Functions,用户
定义函数),主要是由于UDF非常灵活易用,用户可以在UDF中实现非常复杂的逻辑运算,在
某些情况下UDF具有不可替代的作用。

在hive中建立持久化UDF的时候需要在每个数据库中执行一遍create function
UDF名as包命using jar‘集群路径’的命令,即创建UDF名称并通过指定已经上传到集群中
jar包的某个类完成该UDF的定义。在对UDF进行删除等操作也是如此。例如,中国专利申请
(申请号:CN201410483891.0)提供了一种Hive中自制用户提取信息工具的方法和装置。

如果需要加载UDF的数据库很多,则对UDF的添加、删除等操作将非常费时费力。如
果只在一个数据库下建立UDF,在其他数据库中使用该UDF时,则需要在UDF名前添加该UDF
所在数据库的名称,即:数据库名.UDF名。这虽然降低了建立UDF的复杂性,却使UDF的使用
变得复杂。

发明内容

为克服现有技术的缺陷,本发明要解决的技术问题是提供了一种hive持久化函数
的控制方法,其使得在大量数据库需要添加UDF时操作变得方便,增强了可维护性,使得UDF
具有更强的易用性,保证了UDF的灵活性和安全性。

本发明的技术方案是:这种hive持久化函数的控制方法,该方法包括以下步骤:

(1)修改hive的源代码,以便在不指定数据库域名时,使hive的读取和存储UDF信
息的操作指向default数据库;

(2)优化hive的部署;

(3)建立跨库UDF:在hive中的任意一个数据库下,用create function建立跨库
UDF。

本发明通过在hive中的任意一个数据库中创建UDF,则可以在hive中所有库中跨
库访问该UDF,而不必在每个数据库中都创建一遍UDF。使得在大量数据库需要添加UDF时操
作变得方便,增强了可维护性;在hive的各个数据库中使用UDF时,可以像使用hive内置的
函数一样方便,不需要添加任何数据库域名前缀,使得UDF具有更强的易用性;依然可以创
建个别数据库自有的UDF,只需添加数据库域名前缀即可,保证了UDF的灵活性和安全性。

还提供了一种hive持久化函数的控制系统,该系统包括:

hive的源代码修改模块,其配置来检查输入的参数是否合法;

部署优化模块,其配置来优化hive的部署;

跨库UDF建立模块,其配置来在hive中的任意一个数据库下,用create function
建立跨库UDF。

附图说明

图1所示为根据本发明的hive持久化函数的控制方法的流程图。

具体实施方式

如图1所示,这种hive持久化函数的控制方法,该方法包括以下步骤:

(1)修改hive的源代码,以便在不指定数据库域名时,使hive的读取和存储UDF信
息的操作指向default数据库;

(2)优化hive的部署;

(3)建立跨库UDF:在hive中的任意一个数据库下,用create function建立跨库
UDF。

本发明通过在hive中的任意一个数据库中创建UDF,则可以在hive中所有库中跨
库访问该UDF,而不必在每个数据库中都创建一遍UDF。使得在大量数据库需要添加UDF时操
作变得方便,增强了可维护性;在hive的各个数据库中使用UDF时,可以像使用hive内置的
函数一样方便,不需要添加任何数据库域名前缀,使得UDF具有更强的易用性;依然可以创
建个别数据库自有的UDF,只需添加数据库域名前缀即可,保证了UDF的灵活性和安全性。

另外,所述步骤(1)中,首先修改类FunctionRegistry中
getFunctionInfoFromMetastore函数和getFunctionInfo,将其中的dbName=
SessionState.get().getCurrentDatabase().toLowerCase()替换为dbName=default;
再修改类FunctionUtils类中的getQualifiedFunctionNamePart函数,将其中的String
dbName=SessionState.get().getCurrentDatabase()替换为dbName=default。

另外,所述步骤(2)中,将修改好的hive文件中的ql工程用mvn编译成jar包,在含
有pom.xml的项目路径下执行mvn package,生成包含依赖的jar文件,然后用该jar包替换
机器上原有的jar包。

另外,所述步骤(3)中,在任意数据库下,创建UDF名称,并通过指定已经上传到集
群中jar包的一个类完成该UDF的定义,从而建立跨库访问的UDF。具体地,执行create
function UDF名as包名.类名,使用jar包在hadoop集群中的路径。

另外,该方法还包括步骤(4),在创建UDF时,如果添加数据库域名前缀,则UDF建立
在该数据库下。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以
通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,
该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁
碟、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种hive持久化函
数的控制系统,该系统通常以与方法各步骤相对应的功能模块的形式表示。使用该方法的
系统包括:

hive的源代码修改模块,其配置来检查输入的参数是否合法;

部署优化模块,其配置来优化hive的部署;

跨库UDF建立模块,其配置来在hive中的任意一个数据库下,用create function
建立跨库UDF。

本发明的有益效果如下:

1.通过在hive中的任意一个数据库中创建UDF,则可以在hive中所有库中跨库访
问该UDF,而不必在每个数据库中都创建一遍UDF。使得在大量数据库需要添加UDF时操作变
得方便,增强了可维护性。

2.在hive的各个数据库中使用UDF时,可以像使用hive内置的函数一样方便,不需
要添加任何数据库域名前缀,使得UDF具有更强的易用性。

3.依然可以创建个别数据库自有的UDF,只需添加数据库域名前缀即可,保证了
UDF的灵活性和安全性。

以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依
据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明
技术方案的保护范围。

一种HIVE持久化函数的控制方法及系统.pdf_第1页
第1页 / 共6页
一种HIVE持久化函数的控制方法及系统.pdf_第2页
第2页 / 共6页
一种HIVE持久化函数的控制方法及系统.pdf_第3页
第3页 / 共6页
点击查看更多>>
资源描述

《一种HIVE持久化函数的控制方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种HIVE持久化函数的控制方法及系统.pdf(6页珍藏版)》请在专利查询网上搜索。

一种hive持久化函数的控制方法,其使得在大量数据库需要添加UDF时操作变得方便,增强了可维护性,使得UDF具有更强的易用性,保证了UDF的灵活性和安全性。该方法包括以下步骤:(1)修改hive的源代码,以便在不指定数据库域名时,使hive的读取和存储UDF信息的操作指向default数据库;(2)优化hive的部署;(3)建立跨库UDF:在hive中的任意一个数据库下,用createfuncti。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1