CN107622088A - 一种基于Hive支持多字符作为分隔符的方法 - Google Patents

一种基于Hive支持多字符作为分隔符的方法 Download PDF

Info

Publication number
CN107622088A
CN107622088A CN201710708052.8A CN201710708052A CN107622088A CN 107622088 A CN107622088 A CN 107622088A CN 201710708052 A CN201710708052 A CN 201710708052A CN 107622088 A CN107622088 A CN 107622088A
Authority
CN
China
Prior art keywords
separator
user defined
user
data
hive
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.)
Granted
Application number
CN201710708052.8A
Other languages
English (en)
Other versions
CN107622088B (zh
Inventor
尚平平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710708052.8A priority Critical patent/CN107622088B/zh
Publication of CN107622088A publication Critical patent/CN107622088A/zh
Application granted granted Critical
Publication of CN107622088B publication Critical patent/CN107622088B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种基于Hive支持多字符作为分隔符的方法,创建用户自定义分隔符模块,基于用户自定义分隔符模块创建用户自定义分隔符;获取用户自定义的分隔符;根据用户自定义的分隔符对数据进行分割,并将具有用户自定义分隔符的数据进行存储,使得数据仓库支持多字符作为分隔符,对Hive进行改进,支持多字符作为分隔符。

Description

一种基于Hive支持多字符作为分隔符的方法
技术领域
本发明涉及数据库领域,尤其涉及一种基于Hive支持多字符作为分隔符的方法。
背景技术
Apache Hive是建立在Hadoop之上的数据仓库,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。由于SQL被广泛的应用在数据仓库中,因此,Hive专门针对自身特性设计了类SQL的查询语言。熟悉SQL开发的开发者可以很方便的使用Hive进行开发。但是Hive只支持单字符作为分隔符,而实际应用中会使用多个字符作为分隔符,这样造成使用Hive的局限性,给Hive的开发使用带来不便。
发明内容
为了克服上述现有技术中的不足,本发明提供一种基于Hive支持多字符作为分隔符的方法,方法包括:
创建用户自定义分隔符模块,基于用户自定义分隔符模块创建用户自定义分隔符;
获取用户自定义的分隔符;
根据用户自定义的分隔符对数据进行分割,并将具有用户自定义分隔符的数据进行存储。
优选地,步骤创建用户自定义分隔符模块还包括:
基于继承抽象模块的扩展,创建Hive中的MultiCharDelimitedSerde类,使得用户在创建用户自定义分隔符模块时,设置为MultiCharDelimitedSerde类,支持多字符作为分隔符。
优选地,步骤用户在创建用户自定义分隔符模块时,设置为MultiCharDelimitedSerde类还包括:
将用户创建的用户自定义分隔符模块设置为序列化和反序列化。
优选地,步骤根据用户自定义的分隔符对数据进行分割还包括:
获取待分隔的数据信息,按照第一预设数据划分格式对待分隔的数据信息进行分割,分割成若干个第一分割数据部,在第一分割数据部与第一分割数据部之间设置用户自定义分隔符模块创建的第一自定义分隔符;
按照第二预设数据划分格式对第一分割数据部进行分割,分割成若干个第二分割数据部,在第二分割数据部与第二分割数据部之间设置用户自定义分隔符模块创建的第二自定义分隔符;
按照第三预设数据划分格式对第二分割数据部进行分割,分割成若干个第三分割数据部,在第三分割数据部与第三分割数据部之间设置用户自定义分隔符模块创建的第三自定义分隔符。
优选地,第一预设数据划分格式的分隔区间大于第二预设数据划分格式,第二预设数据划分格式分隔区间大于第三预设数据划分格式;
分隔区间采用位为单位区间,或字节为单位区间,或KB为单位区间,或B为单位区间,或为MB为单位区间。
优选地,步骤用户自定义分隔符模块创建用户自定义分隔符还包括:
设置用户自定义分隔符的序列化及反序列化规则;
基于序列化及反序列化规则对用户自定义分隔符进行序列化及反序列化处理;
创建用户自定义分隔符的序列化及反序列化对应表;
将设置的用户自定义分隔符序列化及反序列化规则,用户自定义分隔符的序列化及反序列化对应表存储到对象列表中,供数据处理使用。
优选地,将按照第一分割数据部,第二分割数据部,第三分割数据部分割后的数据信息,根据序列化及反序列化规则,进行序列化形成序列化数据;
将序列化数据储存至数据库。
从以上技术方案可以看出,本发明具有以下优点:
基于Hive支持多字符作为分隔符的方法中,创建用户自定义分隔符模块,基于用户自定义分隔符模块创建用户自定义分隔符;获取用户自定义的分隔符;根据用户自定义的分隔符对数据进行分割,并将具有用户自定义分隔符的数据进行存储。使得数据仓库支持多字符作为分隔符,对Hive进行改进,支持多字符作为分隔符。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为基于Hive支持多字符作为分隔符的方法流程图;
图2为根据用户自定义的分隔符对数据进行分割步骤流程图;
图3为用户自定义分隔符模块创建用户自定义分隔符步骤流程图;
图4为基于Hive支持多字符作为分隔符的方法实施例流程图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。
本实施例提供一种基于Hive支持多字符作为分隔符的方法,如图1所示,方法包括:
S1,创建用户自定义分隔符模块,基于用户自定义分隔符模块创建用户自定义分隔符;
S2,获取用户自定义的分隔符;
S3,根据用户自定义的分隔符对数据进行分割,并将具有用户自定义分隔符的数据进行存储。
Hive中没有定义专门的数据格式,数据格式可以由用户指定。用户定义数据格式需要指定三个属性:分隔符、行分隔符以及读取文件数据的方法。基于Hive支持多字符作为分隔符的方法扩展了Hive中的分隔符。
具体的,步骤创建用户自定义分隔符模块还包括:基于继承抽象模块的扩展,创建Hive中的MultiCharDelimitedSerde类,使得用户在创建用户自定义分隔符模块时,设置为MultiCharDelimitedSerde类,支持多字符作为分隔符。
步骤用户在创建用户自定义分隔符模块时,设置为MultiCharDelimitedSerde类还包括:将用户创建的用户自定义分隔符模块设置为序列化和反序列化。
本实施例中,如图2所示,步骤根据用户自定义的分隔符对数据进行分割还包括:
S11,获取待分隔的数据信息,按照第一预设数据划分格式对待分隔的数据信息进行分割,分割成若干个第一分割数据部,在第一分割数据部与第一分割数据部之间设置用户自定义分隔符模块创建的第一自定义分隔符;
S12,按照第二预设数据划分格式对第一分割数据部进行分割,分割成若干个第二分割数据部,在第二分割数据部与第二分割数据部之间设置用户自定义分隔符模块创建的第二自定义分隔符;
S13,按照第三预设数据划分格式对第二分割数据部进行分割,分割成若干个第三分割数据部,在第三分割数据部与第三分割数据部之间设置用户自定义分隔符模块创建的第三自定义分隔符。
第一预设数据划分格式的分隔区间大于第二预设数据划分格式,第二预设数据划分格式分隔区间大于第三预设数据划分格式;
分隔区间采用位为单位区间,或字节为单位区间,或KB为单位区间,或B为单位区间,或为MB为单位区间。
可以理解的是,将待分隔的数据信息向根据第一预设数据划分格式进行划分,在按照第二预设数据划分格式对第一分割数据部进行分割,之后再按照第三预设数据划分格式对第二分割数据部进行分割,以此类推,逐步递减。
本实施例中,基于继承抽象模块的扩展为扩展AbstractSerde类,创建MultiCharDelimitedSerde类,用户在创建表时指定MultiCharDelimitedSerde为要用的序列化反序列化方法。
定义分割行数据时所用分隔符参数“delimited”,定义对象列表“row”,用于存储每行中的各数据。
实现方法getDelimited,用来获取创建表时输入的参数“field_delimited”,如果获取不到则抛出异常并退出。由于“field_delimited”参数是用户在创建表时自己定义值,所以可支持用户定义的多个字符作为分隔符。
实现序列化及反序列化方法对传进的数据进行反序列化,根据分隔符参数,对行数据进行分割,获得各数据。将各数据转换对应的类型数据,并存储到储存对象列表里,以供使用。
这样使得Hive支持多字符多为分隔符,为实际应用提供了很大的方便,一方面不必先将数据转换为单字符分隔的数据,另一方面通过自定义稍复杂的分隔符,也降低了数据值中包含分隔符的几率,提高了分割的准确率。
本实施例中,如图3所示,步骤用户自定义分隔符模块创建用户自定义分隔符还包括:
S21,设置用户自定义分隔符的序列化及反序列化规则;
S22,基于序列化及反序列化规则对用户自定义分隔符进行序列化及反序列化处理;
S23,创建用户自定义分隔符的序列化及反序列化对应表;
S24,将设置的用户自定义分隔符序列化及反序列化规则,用户自定义分隔符的序列化及反序列化对应表存储到对象列表中,供数据处理使用。
将按照第一分割数据部,第二分割数据部,第三分割数据部分割后的数据信息,根据序列化及反序列化规则,进行序列化形成序列化数据;将序列化数据储存至数据库。
本实施例中,如图4所示,进一步的实施例为,
S31,创建用户自定义分隔符模块,基于用户自定义分隔符模块创建用户自定义分隔符;
S32,获取用户自定义的分隔符;
S33,获取待分隔的数据信息,按照第一预设数据划分格式对待分隔的数据信息进行分割,分割成若干个第一分割数据部,在第一分割数据部与第一分割数据部之间设置用户自定义分隔符模块创建的第一自定义分隔符;
S34,按照第二预设数据划分格式对第一分割数据部进行分割,分割成若干个第二分割数据部,在第二分割数据部与第二分割数据部之间设置用户自定义分隔符模块创建的第二自定义分隔符;
S35,按照第三预设数据划分格式对第二分割数据部进行分割,分割成若干个第三分割数据部,在第三分割数据部与第三分割数据部之间设置用户自定义分隔符模块创建的第三自定义分隔符,以此类推。
S36,将按照第一分割数据部,第二分割数据部,第三分割数据部分割后的数据信息,根据序列化及反序列化规则,进行序列化形成序列化数据;
S37,将序列化数据储存至数据库。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (7)

1.一种基于Hive支持多字符作为分隔符的方法,其特征在于,方法包括:
创建用户自定义分隔符模块,基于用户自定义分隔符模块创建用户自定义分隔符;
获取用户自定义的分隔符;
根据用户自定义的分隔符对数据进行分割,并将具有用户自定义分隔符的数据进行存储。
2.根据权利要求1所述的基于Hive支持多字符作为分隔符的方法,其特征在于,
步骤创建用户自定义分隔符模块还包括:
基于继承抽象模块的扩展,创建Hive中的MultiCharDelimitedSerde类,使得用户在创建用户自定义分隔符模块时,设置为MultiCharDelimitedSerde类,支持多字符作为分隔符。
3.根据权利要求2所述的基于Hive支持多字符作为分隔符的方法,其特征在于,
步骤用户在创建用户自定义分隔符模块时,设置为MultiCharDelimitedSerde类还包括:
将用户创建的用户自定义分隔符模块设置为序列化和反序列化。
4.根据权利要求1所述的基于Hive支持多字符作为分隔符的方法,其特征在于,
步骤根据用户自定义的分隔符对数据进行分割还包括:
获取待分隔的数据信息,按照第一预设数据划分格式对待分隔的数据信息进行分割,分割成若干个第一分割数据部,在第一分割数据部与第一分割数据部之间设置用户自定义分隔符模块创建的第一自定义分隔符;
按照第二预设数据划分格式对第一分割数据部进行分割,分割成若干个第二分割数据部,在第二分割数据部与第二分割数据部之间设置用户自定义分隔符模块创建的第二自定义分隔符;
按照第三预设数据划分格式对第二分割数据部进行分割,分割成若干个第三分割数据部,在第三分割数据部与第三分割数据部之间设置用户自定义分隔符模块创建的第三自定义分隔符。
5.根据权利要求4所述的基于Hive支持多字符作为分隔符的方法,其特征在于,
第一预设数据划分格式的分隔区间大于第二预设数据划分格式,第二预设数据划分格式分隔区间大于第三预设数据划分格式;
分隔区间采用位为单位区间,或字节为单位区间,或KB为单位区间,或B为单位区间,或为MB为单位区间。
6.根据权利要求4所述的基于Hive支持多字符作为分隔符的方法,其特征在于,
步骤用户自定义分隔符模块创建用户自定义分隔符还包括:
设置用户自定义分隔符的序列化及反序列化规则;
基于序列化及反序列化规则对用户自定义分隔符进行序列化及反序列化处理;
创建用户自定义分隔符的序列化及反序列化对应表;
将设置的用户自定义分隔符序列化及反序列化规则,用户自定义分隔符的序列化及反序列化对应表存储到对象列表中,供数据处理使用。
7.根据权利要求6所述的基于Hive支持多字符作为分隔符的方法,其特征在于,
将按照第一分割数据部,第二分割数据部,第三分割数据部分割后的数据信息,根据序列化及反序列化规则,进行序列化形成序列化数据;
将序列化数据储存至数据库。
CN201710708052.8A 2017-08-17 2017-08-17 一种基于Hive支持多字符作为分隔符的方法 Active CN107622088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710708052.8A CN107622088B (zh) 2017-08-17 2017-08-17 一种基于Hive支持多字符作为分隔符的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710708052.8A CN107622088B (zh) 2017-08-17 2017-08-17 一种基于Hive支持多字符作为分隔符的方法

Publications (2)

Publication Number Publication Date
CN107622088A true CN107622088A (zh) 2018-01-23
CN107622088B CN107622088B (zh) 2021-12-24

Family

ID=61088167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710708052.8A Active CN107622088B (zh) 2017-08-17 2017-08-17 一种基于Hive支持多字符作为分隔符的方法

Country Status (1)

Country Link
CN (1) CN107622088B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947429A (zh) * 2019-03-13 2019-06-28 咪咕文化科技有限公司 数据处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678339A (zh) * 2012-09-06 2014-03-26 阿里巴巴集团控股有限公司 数据回流、关系型数据库中的数据访问方法及系统
CN104102701A (zh) * 2014-07-07 2014-10-15 浪潮(北京)电子信息产业有限公司 一种基于hive的历史数据存档与查询方法
CN105117433A (zh) * 2015-08-07 2015-12-02 北京思特奇信息技术股份有限公司 一种基于Hive解析HFile统计查询HBase的方法和系统
US20160342680A1 (en) * 2015-05-22 2016-11-24 Guidance Software Inc. System and method for generating, maintaining, and querying a database for computer investigations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678339A (zh) * 2012-09-06 2014-03-26 阿里巴巴集团控股有限公司 数据回流、关系型数据库中的数据访问方法及系统
CN104102701A (zh) * 2014-07-07 2014-10-15 浪潮(北京)电子信息产业有限公司 一种基于hive的历史数据存档与查询方法
US20160342680A1 (en) * 2015-05-22 2016-11-24 Guidance Software Inc. System and method for generating, maintaining, and querying a database for computer investigations
CN105117433A (zh) * 2015-08-07 2015-12-02 北京思特奇信息技术股份有限公司 一种基于Hive解析HFile统计查询HBase的方法和系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
WUJUSTIN: "Hive系列之SerDe", 《HTTPS://WWW.JIANSHU.COM/P/9C43F03B97E7》 *
ZHENGRUNJIAN: "Hive多字符分割列", 《HTTPS://BLOG.CSDN.NET/ZHENGRUNJIAN/ARTICLE/DETAILS/53135703》 *
无: "Hive常用字符串函数", 《HTTPS://WWW.ITEBLOG.COM/ARCHIVES/1639.HTML》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947429A (zh) * 2019-03-13 2019-06-28 咪咕文化科技有限公司 数据处理方法及装置
CN109947429B (zh) * 2019-03-13 2022-07-26 咪咕文化科技有限公司 数据处理方法及装置

Also Published As

Publication number Publication date
CN107622088B (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
CN109670163B (zh) 信息识别方法、信息推荐方法、模板构建方法及计算设备
CN105989076B (zh) 一种数据统计方法以及装置
CN107038207A (zh) 一种数据查询方法、数据处理方法及装置
CN104753540B (zh) 数据压缩方法、数据解压方法和装置
CN105630847B (zh) 数据存储方法、数据查询方法、装置及系统
US7834781B2 (en) Method of constructing an approximated dynamic Huffman table for use in data compression
CN107045531A (zh) 一种优化hdfs小文件存取的系统及方法
CN109446385B (zh) 一种建立网络资源设备图谱的方法及设备图谱的使用方法
CN102521334A (zh) 一种基于分类特性和平衡二叉树的数据存储、查询方法
US10164884B2 (en) Search apparatus, search configuration method, and search method
US11132492B2 (en) Methods for automated filling of columns in spreadsheets
CN105512229B (zh) 一种ip地址的地域信息的存储、查询方法及装置
CN104346466B (zh) 数据库中添加新属性数据的方法和装置
JP2005302038A (ja) Bツリー中の連続キーの名前を変更する方法およびシステム
RU2605041C2 (ru) Способы и системы для отображения тем микроблогов
CN102346747A (zh) 在数据模型中查找参数的方法
CN107436911A (zh) 模糊查询方法、装置及查询系统
WO2015054877A1 (en) Method and apparatus for data storage and retrieval
CN107480205A (zh) 一种进行数据分区的方法和装置
CN107798035A (zh) 一种数据处理方法及终端
CN108228760A (zh) 敏感词过滤的方法、装置、移动终端及存储介质
CN107330094A (zh) 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法
CN105718521A (zh) 一个基于Wavelet Tree的网络数据包索引系统
CN105207793B (zh) 一种树状拓扑结构中节点信息的获取方法和系统
CN110333990B (zh) 数据处理方法以及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200520

Address after: Building S01, Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan City, Shandong Province, 250000

Applicant after: Tidal Cloud Information Technology Co.,Ltd.

Address before: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601

Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: Building S01, Langchao Science Park, 1036 Langchao Road, high tech Zone, Jinan City, Shandong Province

Applicant after: Inspur cloud Information Technology Co., Ltd

Address before: Building S01, Langchao Science Park, 1036 Langchao Road, high tech Zone, Jinan City, Shandong Province

Applicant before: Tidal Cloud Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant