CN106503210A - 一种hive持久化函数的控制方法及系统 - Google Patents
一种hive持久化函数的控制方法及系统 Download PDFInfo
- Publication number
- CN106503210A CN106503210A CN201610953600.9A CN201610953600A CN106503210A CN 106503210 A CN106503210 A CN 106503210A CN 201610953600 A CN201610953600 A CN 201610953600A CN 106503210 A CN106503210 A CN 106503210A
- Authority
- CN
- China
- Prior art keywords
- hive
- udf
- function
- persistences
- inter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种hive持久化函数的控制方法,其使得在大量数据库需要添加UDF时操作变得方便,增强了可维护性,使得UDF具有更强的易用性,保证了UDF的灵活性和安全性。该方法包括以下步骤:(1)修改hive的源代码,以便在不指定数据库域名时,使hive的读取和存储UDF信息的操作指向default数据库;(2)优化hive的部署;(3)建立跨库UDF:在hive中的任意一个数据库下,用create function建立跨库UDF。还有一种hive持久化函数的控制系统。
Description
技术领域
本发明涉及大数据处理的技术领域,尤其涉及一种hive持久化函数的控制方法,以及hive持久化函数的控制系统。
背景技术
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
在hive平台上做大数据计算时通用会使用到UDF(User-Defined Functions,用户定义函数),主要是由于UDF非常灵活易用,用户可以在UDF中实现非常复杂的逻辑运算,在某些情况下UDF具有不可替代的作用。
在hive中建立持久化UDF的时候需要在每个数据库中执行一遍create functionUDF名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函数,将其中的StringdbName=SessionState.get().getCurrentDatabase()替换为dbName=default。
另外,所述步骤(2)中,将修改好的hive文件中的ql工程用mvn编译成jar包,在含有pom.xml的项目路径下执行mvn package,生成包含依赖的jar文件,然后用该jar包替换机器上原有的jar包。
另外,所述步骤(3)中,在任意数据库下,创建UDF名称,并通过指定已经上传到集群中jar包的一个类完成该UDF的定义,从而建立跨库访问的UDF。具体地,执行createfunction 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的灵活性和安全性。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。
Claims (6)
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的项目路径下执行mvnpackage,生成包含依赖的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。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610953600.9A CN106503210A (zh) | 2016-11-03 | 2016-11-03 | 一种hive持久化函数的控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610953600.9A CN106503210A (zh) | 2016-11-03 | 2016-11-03 | 一种hive持久化函数的控制方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106503210A true CN106503210A (zh) | 2017-03-15 |
Family
ID=58322287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610953600.9A Pending CN106503210A (zh) | 2016-11-03 | 2016-11-03 | 一种hive持久化函数的控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106503210A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140075161A1 (en) * | 2012-09-12 | 2014-03-13 | Microsoft Corporation | Data-Parallel Computation Management |
CN104239532A (zh) * | 2014-09-19 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | Hive中自制用户提取信息工具的方法和装置 |
CN104298671A (zh) * | 2013-07-16 | 2015-01-21 | 深圳中兴网信科技有限公司 | 数据统计分析方法及装置 |
CN105122243A (zh) * | 2013-03-15 | 2015-12-02 | 亚马逊科技公司 | 用于半结构化数据的可扩展分析平台 |
-
2016
- 2016-11-03 CN CN201610953600.9A patent/CN106503210A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140075161A1 (en) * | 2012-09-12 | 2014-03-13 | Microsoft Corporation | Data-Parallel Computation Management |
CN105122243A (zh) * | 2013-03-15 | 2015-12-02 | 亚马逊科技公司 | 用于半结构化数据的可扩展分析平台 |
CN104298671A (zh) * | 2013-07-16 | 2015-01-21 | 深圳中兴网信科技有限公司 | 数据统计分析方法及装置 |
CN104239532A (zh) * | 2014-09-19 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | Hive中自制用户提取信息工具的方法和装置 |
Non-Patent Citations (1)
Title |
---|
麻吉MAGI: "为hive permanent function添加默认database特性", 《HTTP://BLOG.51CTO.COM/SUPERMAGI/1650024》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598574B (zh) | 页面渲染的方法和装置 | |
CN104239073B (zh) | 一种数据维护系统快速原型开发系统及方法 | |
CN107622080B (zh) | 一种数据处理方法及设备 | |
US7730099B2 (en) | Storage and retrieval of richly typed hierarchical network models | |
CN108304463A (zh) | 一种用于数据库的数据管理方法及其数据库应用组件 | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN103810196A (zh) | 基于业务模型进行数据库性能测试的方法 | |
CN103678575B (zh) | 通过中间件实现多种数据库数据统一处理的方法和系统 | |
CN104361140A (zh) | 动态生成数据模型配置装置和方法 | |
CN108255915B (zh) | 一种文件管理方法、装置及机器可读存储介质 | |
US10262055B2 (en) | Selection of data storage settings for an application | |
KR101790766B1 (ko) | 데이터의 검색 방법, 장치 및 단말기 | |
CN110674297B (zh) | 舆情文本分类模型构建和舆情文本分类方法、装置及设备 | |
CN106909554A (zh) | 一种数据库文本表数据的加载方法及装置 | |
CN108255471B (zh) | 一种基于配置套件的系统配置项配置装置、方法及设备 | |
CN105677805B (zh) | 一种利用protobuf的数据存储、读取方法及装置 | |
CN106775824A (zh) | 一种带有渠道信息的应用文件打包系统及方法 | |
CN104537012B (zh) | 数据处理方法和装置 | |
CN103176801B (zh) | 一种表项操作接口函数的生成方法及装置 | |
US10152526B2 (en) | Generation of synthetic context objects using bounded context objects | |
CN111177506A (zh) | 一种基于大数据的分类存储方法及系统 | |
CN100407204C (zh) | 一种标注计算机资源的方法及其系统 | |
CN106503210A (zh) | 一种hive持久化函数的控制方法及系统 | |
CN106802922B (zh) | 一种基于对象的溯源存储系统及方法 | |
CN116150236A (zh) | 数据同步方法及装置、电子设备、计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170315 |
|
RJ01 | Rejection of invention patent application after publication |