CN110083602A - 一种基于hive表的数据存储及数据处理的方法及装置 - Google Patents

一种基于hive表的数据存储及数据处理的方法及装置 Download PDF

Info

Publication number
CN110083602A
CN110083602A CN201910299612.8A CN201910299612A CN110083602A CN 110083602 A CN110083602 A CN 110083602A CN 201910299612 A CN201910299612 A CN 201910299612A CN 110083602 A CN110083602 A CN 110083602A
Authority
CN
China
Prior art keywords
hive
stored
partition table
field name
data
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
CN201910299612.8A
Other languages
English (en)
Other versions
CN110083602B (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.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online 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 Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN201910299612.8A priority Critical patent/CN110083602B/zh
Publication of CN110083602A publication Critical patent/CN110083602A/zh
Application granted granted Critical
Publication of CN110083602B publication Critical patent/CN110083602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书公开了一种数据存储及数据处理的方法及装置,在获取待存储数据之后,首先可确定待存储数据对应的各字段名,之后针对每个字段名,从已经存储的至少一个hive分区表中,确定该至少一个hive分区表中字段名对应的字段值,最后将该待存储数据中该字段名对应的字段值以及确定出的至少一个hive分区表中字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中。

Description

一种基于hive表的数据存储及数据处理的方法及装置
技术领域
本申请涉及信息技术领域,尤其涉及一种基于hive表的数据存储及数据处理的方法及装置。
背景技术
hive是一种在海杜普分布式文件系统(Hadoop Distributed File System,HDFS)中应用的数据仓库工具,用于将结构化的数据文件映射为一张数据库表(通常称为hive表),并提供简单的结构化查询语言(Structured Query Language,SQL)查询功能,将SQL语句转换为MapReduce任务进行运行。
由于通过hive生产的数据库表中,并不记录字段的地址,因此导致利用hive表中的数据进行处理时,需要遍历整个hive表的所有字段,才能获取处理需要的数据以进行处理。
为了减少获取数据需要扫描的数据量,在现有技术中通常按照日期创建hive分区表,并将数据按照日期存储至不同的hive分区表中。
但是,当数据处理时需要获取多个日期的数据时,还是需要遍历多个hive分区表,导致系统运行压力较大。例如,假设计算用户A的平均登录时长,则需要扫描多个hive分区表,以确定该用户A在不同日期的登录时长,再计算该用户A的平均登录时长。并且,若数据处理的过程中,涉及到同一数据的多次调用,则可能会导致重复加载存储该数据的hive分区表,造成系统资源浪费。
因此针对在现有技术中利用hive表进行数据处理时,存在运行压力大以及资源浪费的情况,本说明书提供一种新的数据存储以及数据处理的方法及装置。
发明内容
本说明书实施例提供一种基于hive表的数据存储及数据处理的方法及装置,用于解决现有技术中使用hive分区表进行数据处理时,存在需要遍历多个hive分区表以获取数据,容易出现重复调用数据的情况,导致系统运行压力大,容易出现资源浪费的问题。
本说明书实施例采用下述技术方案:
本说明书提供的一种基于hive表的数据存储方法,包括:
获取待存储数据;
确定所述待存储数据对应的各字段名;
针对确定的每个字段名,从已存储的至少一个hive分区表中,分别确定所述至少一个hive分区表中该字段名对应的字段值;
将所述待存储数据中该字段名对应的字段值以及已存储的至少一个hive分区表中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中。
可选地,将所述待存储数据中该字段名对应的字段值存储至指定hive分区表的该字段名对应的字段值中,具体包括:
确定所述待存储数据所在的hive分区表的标识;
将所述待存储数据所在的hive分区表的标识以及所述待存储数据中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中;
将已存储的至少一个hive分区表中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中,具体包括:
针对已存储的至少一个hive分区表,将该已存储的hive分区表的标识以及该已存储的hive分区表中该字段名对应的字段值,存储至所述指定hive分区表的该字段名对应的字段值中。
可选地,按照预设的周期创建hive分区表并存储数据;
所述针对确定的每个字段名,从已存储的至少一个hive表中,分别确定所述至少一个hive分区表中该字段名对应的字段值,具体包括:
针对确定的每个字段名,从已存储的各hive分区表中,确定当前周期的前一个周期创建的hive分区表,并从确定出的hive分区表中确定该字段名对应的字段值。
可选地,所述指定hive分区表为所述已存储的各hive分区表中的一个;或者,所述指定hive表为创建的新增hive分区表。
本说明书提供的一种基于hive表的数据处理方法,包括:
接收数据处理请求;
根据所述数据处理请求,确定所需处理的目标数据的字段名;
从指定hive分区表中,确定所述字段名对应的字段值,其中,针对所述指定hive分区表中的每个字段名,该字段名对应的字段值中,存储有至少两个hive分区表中该字段名对应的字段值;
根据所述数据处理请求以及确定出的字段值,进行数据处理。
可选地,按照预设的周期创建hive分区表并存储数据;
从指定hive分区表中,确定所述字段名对应的字段值之前,所述方法还包括:
确定最后一个周期对应的hive分区表,作为所述指定hive分区表。
本说明书提供的一种基于hive表的数据存储装置,包括:
获取模块,获取待存储数据;
第一确定模块,确定所述待存储数据对应的字段名;
第二确定模块,针对确定的每个字段名,从已存储的至少一个hive分区表中,分别确定所述至少一个hive分区表中该字段名对应的字段值;
存储模块,将所述待存储数据中该字段名对应的字段值以及已存储的至少一个hive分区表中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中。
本说明书提供的一种基于hive表的数据处理装置,包括:
接收模块,接收数据处理请求;
第一确定模块,确定所需处理的目标数据的字段名;
第二确定模块,从指定hive分区表中,确定所述字段名对应的字段值,其中,针对所述指定hive分区表中的每个字段名,该字段名对应的字段值中,存储有至少两个hive分区表中该字段名对应的字段值;
处理模块,根据所述数据处理请求以及确定出的字段值,进行数据处理。
本说明书提供的一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据存储的方法或者实现上述数据处理的方法。
本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述数据存储的方法,或者实现上述数据处理的方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书提供的数据存储过程基于hive表,在获取待存储数据之后,首先可确定待存储数据对应的各字段名,之后针对每个字段名,从已经存储的至少一个hive分区表中,确定该至少一个hive分区表中字段名对应的字段值,最后将该待存储数据中该字段名对应的字段值以及确定出的至少一个hive分区表中字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中。使得在本说明书提供的数据处理过程中,仅需通过扫描该指定hive分区表便可以获取进行数据处理所需的数据,减少了需要扫描的hive分区表的数量。降低了现有技术中HDFS的运行压力,同时由于只需要扫描一个hive分区表即可获取所需数据,因此也避免了数据处理中需要反复加载的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的一种基于hive表的数据存储过程;
图2为本说明书提供的hive分区表中存储数据的示意图;
图3为本说明书实施例提供的一种基于hive表的数据处理过程;
图4为本说明书实施例提供的一种基于hive表的数据存储装置的结构示意图;
图5为本说明书实施例提供的一种基于hive表的数据处理装置的结构示意图;
图6为本说明书实施例提供的对应于图1或图3的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本说明书实施例提供的一种基于hive表的数据存储过程,具体可包括以下步骤:
S102:获取待存储数据。
在本说明书实施例中,由于是基于hive表的数据存储过程,因此具体可由创建hive表的设备执行该数据存储过程,例如,若HDFS中设置由该管理数据仓库的服务器执行数据存储过程,则由该服务器执行该数据存储过程,或者若由专门的服务器执行数据存储过程,则由该服务器执行该数据存储过程。为了方面描述,本说明书以服务器执行该数据存储过程为例进行说明,该服务器可以是单独的一台设备,或者也可以是由HDFS中的多台设备组成。当然,本说明书不限定该数据存储过程的具体执行主体为何种设备,可根据需要设置。
在本说明书实施例中可按照日期确定hive分区表的标识,并根据hive分区表的标识,将数据存储至对应的hive分区表中。于是当服务器获取待存储数据时,还可确定该待存储数据对应的日期,以便确定存储该待存储数据的hive分区表的标识。
另外,在本说明书实施例中,该待存储数据中可携带有存储该待存储数据的hive分区表的标识(如,日期)以及数值。则服务器在接收到该待存储数据时,可根据该待存储数据中包含的日期,确定待存储数据对应的日期。
进一步地,在本说明书实施例中,服务器也可以根据接收该待存储数据时的时间戳,换算确定该待存储数据对应的日期。例如,假设服务器接收到待存储数据的时间戳为尤尼斯时间戳(Unix timestamp)1552447474,则换算确定对应的时间为北京时间2019/3/1311:24:34,于是服务器可确定待存储数据对应的日期为20190313。
需要说明的是,在本说明书实施例中,该待存储数据为新增的需要存储的数据,而非服务器从已经存储完成的hive分区中的获取的数据。例如,日流水记录、日步数记录等等。
S104:确定所述待存储数据对应的各字段名。
S106:针对确定的每个字段名,从已存储的各hive表中,分别确定各hive表中该字段名对应的字段值。
在本说明书实施例中,为了避免在数据处理时,需要扫描多个hive分区表,导致系统运行压力大的问题,服务器可将从已经存储的各hive分区表中,确定待存储数据对应的各字段名分别对应的字段值,并与该待存储数据一并存储至存指定hive分区表中。则服务器需要先确定待存储数据对应的是哪个字段名,再从各hive分区表中获取该字段名对应的字段值。
具体的,服务器可通过以下步骤获取字段值:
首先,由于待存储数据中可能包含若干需存储至不同字段中的数据,因此服务器需要先确定该待存储数据对应的各字段名。以待存储数据的内容为二维表的键值对形式的内容,则该字段名可以直接根据待存储数据中的各键值确定。或者,当hive表以自定义的方式确定各字段名时,则服务器中可存储有字段名的命名规则。例如,假设服务器中预设有数据类型、数据属性以及字段名的对应关系,则可根据待存储数据的内容,确定该待存储数据的数据类型和/或数据属性,并根据上述对应关系确定该待存储数据对应的各字段名。
之后,服务器可针对确定的每个字段名,从已存储的各hive分区表中,分别确定各hive分区表中该字段名对应的字段值。
另外,在本说明书实施例中,该指定hive分区表可以是独立设置的一个hive分区表,不按照其余hive分区表的标识确定规则进行划分(如,不按照日期进行划分)。则在本说明书中,该指定hive分区表中存储的数据应包含了其他对应日期的hive分区表中的数据。因此,服务器针对每个确定的字段名,可仅从该指定hive分区表中,获取该字段名对应的字段值。并且在后续步骤S108中,服务器可将该待存储数据中对应该字段名的字段值添加至该指定hive分区表的该字段名对应的字段值中。
需要说明的是,在本说明书实施例中,该已存储的hive分区表,为已经创建并完成数据存储的hive分区表,该已存储的hive分区表不再存储新增的数据。
S108:将所述待存储数据中该字段名对应的字段值以及已存储的各hive分区表中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中。
在本说明书实施例中,在分别确定各hive分区表中该字段名对应的字段值之后,服务器便可确定需要存储的数据,并存储至指定hive分区表中,使得在后续数据处理过程中需要获取数据时,只需要扫描该指定hive分区表即可。
由于在本说明书实施例中,服务器可将多个hive分区表的字段值,存储至该指定hive分区表中,因此为了方便区分对应不同hive分区表的字段值,服务器在存储各字段值时,可确定存储字段值的hive分区表的标识,并按照字段值与标识的对应的关系,将确定出的各字段值存储。
具体的,针对待存储数据,服务器可确定该待存储数据所在的hive分区表的标识,再将改待存储数据所在的hive分区表的标识以及该待存储数据中该字段名对应的字段值,存储至指定该hive分区表的该字段名对应的字段值中。
而针对已存储的至少一个hive分区表,服务器可将该已存储的hive分区表的标识以及该已存储的hive分区表中该字段名对应的字段值,存储至所述指定hive分区表的该字段名对应的字段值中。
例如,在本说明书实施例中,服务器可将按照“hive分区表的标识:字段值”的形式组织从每个已存储的hive分区表中获取的字段值。再利用字符“,”将各字段值进行分隔。
”的组织形式表示字段值与标识的对应关系,以“,”作为分隔符号区分不同hive分区表的字段值。
当各hive分区表是根据日期划分时,针对每个hive分区表,该hive分区表的标识为该hive分区表的创建日期。则从各已存储的hive分区表中获取的字段值可以“日期:字段值”的形式组织,例如,“20190313:11”表示字段值11来自2019年3月13日对应的hive分区表。如表1所示的hive分区表标识和字段值。
表1
则服务器可按照表1的对应关系,将指定hive分区表中该字段名的字段值存储为为“20190101:1,20190102:2,20190103:1,20190104:4”。表1中,最后一行可以是待存储数据对应的字段值和该待存储数据所在的hive分区表的标识。而其他行可以为hive分区表的标识分别为20190101、20190102以及20190103的hive分区表中该字段名B对应的字段值。
当然,为了方便从字段值中确定数据,服务器还可按照设定的顺序,依次将各字段值存储至指定hive分区表的该字段名对应的字段值中。例如,当各hive分区表的标识为日期时,可以按照日期先后顺序,排列该指定hive表中的字段值。
基于图1所示的数据存储过程,针对每个字段名,可将已经存储的至少一个hive分区表中该字段名对应的字段值,累积存储至指定hive分区表的该字段名对应的字段值中。使得在进行数据处理时,无需再扫描多个hive分区表,而只需要扫描指定hive分区表,便可获取所需的数据,避免了扫描多个hive分区表导致系统运行压力大的问题。
另外,在本说明书实施例中,该hive表中的各hive分区表,可按照预设的周期创建,并存储数据。例如,前述实施例中按照日期创建hive分区表时,预设周期为一天,服务器可每日创建一个hive分区表用于存储数据。并且当每日的数据存储完成时,该日创建的hive分区表即为本申请中所述的已存储的hive分区表。
则在本说明书步骤S106中,服务器可针对确定的每个字段名,从已存储的各hive分区表中,确定当前周期的前一个周期创建的hive分区表,并从确定出的hive分区表中确定该字段名对应的字段值。
例如,假设hive表2019年1月1日创建,预设周期为1日,则服务器在连续3日接收到待存储数据,均为需要存储至字段名B的数据,分别对应的字段值为:1、2、1。服务器期可在每日分别创建hive分区表,并且在2019年1月2日创建的hive分区表中,存储前一日创建的hive分区表(即,2019年1月1日创建的hive分区表)中的数据,在2019年1月3日接收到带存储数据时,获取2019年1月2日创建的hive分区表中字段名B对应的字段值,与待存储数据对应的字段值存储至2019年1月3日创建的hive分区表中,如图2所示。
图2为本说明书提供的hive分区表中存储数据的示意图。在标识为20190101的hive分区表中,可见该字段B的字段值包含有“20190101:1”,而在标识为20190102的hive分区表中该字段B的字段值包含有“20190101:1,20190102:2”。则通过步骤S108存储数据之后,在标识为20190103的hive分区表中该字段B的数据为“20190101:1,20190102:2,20190103:1”。
另外,为了避免随着时间该指定分区所需的存储空间越来越大的情况,在步骤S106中,服务器在确定各hive分区表的字段值时,服务器可从已经创建的各hive表中,确定当前周期对应的已存储的各hive表,针对确定的每个字段名,从确定出的各hive表中确定该字段名对应的字段值。其中,该周期的时长可根据需要设置,并且与上述创建hive表的周期可以不完全相同。并且,不同的周期对应的指定hive分区表也可不完全一致。
例如,假设该周期为一个月,并且,每个月创建一个新增hive分区表作为指定hive分区表,则每个月会新增一个指定hive分区表,每个指定hive分区表中只存储有一个周期内获取的待存储数据。
基于图1所示基于hive表的数据存储的方法,本说明书实施例还对应提供一种数据处理的过程,如,图3所示。
图3为本说明书实施例提供的一种基于hive表的数据处理过程,具体包括以下步骤:
S202:接收数据处理请求;
S204:根据所述数据处理请求,确定所需处理的目标数据的字段名。
在本说明书实施例中,沿用图1中对HDFS的描述,仍以服务器处理数据处理请求为例进行说明。其中,该数据处理请求具体是由何方发送的本说明书不做限定,既可以是根据业务执行的需要向服务器发送的请求,也可以是系统内部例行数据统计时,系统自身发送的,本说明书对此不做限定。
具体的,该数据处理请求中可包含需要进行的数据处理过程对应的计算函数,并且还可包含进行处理所需要获取的目标数据的字段名
S206:从指定hive分区表中,确定所述字段名对应的字段值,其中,针对所述指定hive分区表中的每个字段名,该字段名对应的字段值中,存储有至少两个hive分区表中该字段名对应的字段值。
在本说明书实施例中,由于数据存储时采用图1所示的方法,因此指定hive分区表中存储有其他至少一个hive分区表中的数据,于是服务器可从该指定hive分区表中,确定该字段名对应的字段值中的各数据。
具体的,服务器可采用与现有技术相同的方法,根据该字段名,扫描该指定hive分区表,确定与该字段名匹配的字段中的字段值。
另外,若服务器是按照“hive分区表的标识:字段值”的形式组织从每个已存储的hive分区表中获取的字段值。再利用字符“,”将各字段值进行分隔的,则服务器可按照上述字符将该字段值划分为若干字段值,每个字段值至少包括hive分区表的标识以及字段值。
S208:根据所述数据处理请求以及确定出的字段值,进行数据处理。
在本说明书中,当确定出进行数据处理所需的字段值之后,便可根据该计算函数进行计算确定数据处理的结果。
基于图3所示的数据处理方法,可见服务器通过扫描指定hive分区表,可以获取至少两个hive分区表中存储的数据,可有效减少数据处理时所需扫描的hive分区表的数量。当设置一个新增的hive分区表用于存储其他已存储的各hive分区表中的数据时,服务器还可仅通过扫描该指定hive分区表,获取进行数据处理所需的数据。避免了现有技术中需要扫描多个hive分区表的弊端。
基于图1所示基于hive表的数据存储的方法,本说明书实施例还对应提供一种数据存储的装置的结构示意图,如图4所示。
图4为本说明书实施例提供的一种基于hive表的数据存储的装置的结构示意图,所述装置包括:
获取模块302,获取待存储数据;
第一确定模块304,确定所述待存储数据对应的各字段名;
第二确定模块306,针对确定的每个字段名,从已存储的至少一个hive分区表中,分别确定所述至少一个hive分区表中该字段名对应的字段值;
存储模块308,将所述待存储数据中该字段名对应的字段值以及已存储的至少一个hive分区表中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中。
可选地,存储模块308,确定所述待存储数据所在的hive分区表的标识,将所述待存储数据所在的hive分区表的标识以及所述待存储数据中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中,针对已存储的至少一个hive分区表,将该已存储的hive分区表的标识以及该已存储的hive分区表中该字段名对应的字段值,存储至所述指定hive分区表的该字段名对应的字段值中。
可选地,按照预设的周期创建hive分区表并存储数据,第二确定模块306,针对确定的每个字段名,从已存储的各hive分区表中,确定当前周期的前一个周期创建的hive分区表,并从确定出的hive分区表中确定该字段名对应的字段值。
可选地,所述指定hive分区表为所述已存储的各hive分区表中的一个;或者,所述指定hive表为创建的新增hive分区表。
具体的,所述基于hive表的数据存储的装置可位于HDFS中。
基于图3所示基于hive表的数据处理的方法,本说明书实施例还对应提供一种数据处理的装置的结构示意图,如图5所示。
图5为本说明书实施例提供的一种基于hive表的数据处理的装置的结构示意图,所述装置包括:
接收模块402,接收数据处理请求;
第一确定模块404,根据所述数据处理请求,确定所需处理的目标数据的字段名;
第二确定模块406,从指定hive分区表中,确定所述字段名对应的字段值,其中,针对所述指定hive分区表中的每个字段名,该字段名对应的字段值中,存储有至少两个hive分区表中该字段名对应的字段值;
处理模块408,根据所述数据处理请求以及确定出的字段值,进行数据处理。
可选地,按照预设的周期创建hive分区表并存储数据,第二确定模块406,确定最后一个周期对应的hive分区表,作为所述指定hive分区表。
具体的,所述基于hive表的数据存储的装置可位于HDFS中。
本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的数据存储方法,或者用于执行上述图3提供的数据处理方法。
基于图1所示的基于hive表的数据存储的方法,以及图3所示的基于hive表的数据存储方法,本说明书实施例还提出了图6所示的电子设备的示意结构图。如图6,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的数据存储方法,或者实现上述图3所述的数据处理方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种基于hive表的数据存储方法,其特征在于,包括:
获取待存储数据;
确定所述待存储数据对应的各字段名;
针对确定的每个字段名,从已存储的至少一个hive分区表中,分别确定所述至少一个hive分区表中该字段名对应的字段值;
将所述待存储数据中该字段名对应的字段值以及已存储的至少一个hive分区表中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中。
2.如权利要求1所述的方法,其特征在于,将所述待存储数据中该字段名对应的字段值存储至指定hive分区表的该字段名对应的字段值中,具体包括:
确定所述待存储数据所在的hive分区表的标识;
将所述待存储数据所在的hive分区表的标识以及所述待存储数据中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中;
将已存储的至少一个hive分区表中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中,具体包括:
针对已存储的至少一个hive分区表,将该已存储的hive分区表的标识以及该已存储的hive分区表中该字段名对应的字段值,存储至所述指定hive分区表的该字段名对应的字段值中。
3.如权利要求1所述的方法,其特征在于,按照预设的周期创建hive分区表并存储数据;
所述针对确定的每个字段名,从已存储的至少一个hive表中,分别确定所述至少一个hive分区表中该字段名对应的字段值,具体包括:
针对确定的每个字段名,从已存储的各hive分区表中,确定当前周期的前一个周期创建的hive分区表,并从确定出的hive分区表中确定该字段名对应的字段值。
4.如权利要求1所述的方法,其特征在于,所述指定hive分区表为所述已存储的各hive分区表中的一个;或者,所述指定hive表为创建的新增hive分区表。
5.一种基于hive表的数据处理方法,包括:
接收数据处理请求;
根据所述数据处理请求,确定所需处理的目标数据的字段名;
从指定hive分区表中,确定所述字段名对应的字段值,其中,针对所述指定hive分区表中的每个字段名,该字段名对应的字段值中,存储有至少两个hive分区表中该字段名对应的字段值;
根据所述数据处理请求以及确定出的字段值,进行数据处理。
6.如权利要求5所述的方法,其特征在于,各hive分区表是按照预设的周期创建并存储数据的;
从指定hive分区表中,确定所述字段名对应的字段值之前,所述方法还包括:
确定最后一个周期对应的hive分区表,作为所述指定hive分区表。
7.一种基于hive表的数据存储装置,包括:
获取模块,获取待存储数据;
第一确定模块,确定所述待存储数据对应的字段名;
第二确定模块,针对确定的每个字段名,从已存储的至少一个hive分区表中,分别确定所述至少一个hive分区表中该字段名对应的字段值;
存储模块,将所述待存储数据中该字段名对应的字段值以及已存储的至少一个hive分区表中该字段名对应的字段值,存储至指定hive分区表的该字段名对应的字段值中。
8.一种基于hive表的数据处理装置,包括:
接收模块,接收数据处理请求;
第一确定模块,确定所需处理的目标数据的字段名;
第二确定模块,从指定hive分区表中,确定所述字段名对应的字段值,其中,针对所述指定hive分区表中的每个字段名,该字段名对应的字段值中,存储有至少两个hive分区表中该字段名对应的字段值;
处理模块,根据所述数据处理请求以及确定出的字段值,进行数据处理。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-4或5或6任一所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-4或5或6任一所述的方法。
CN201910299612.8A 2019-04-15 2019-04-15 一种基于hive表的数据存储及数据处理的方法及装置 Active CN110083602B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910299612.8A CN110083602B (zh) 2019-04-15 2019-04-15 一种基于hive表的数据存储及数据处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910299612.8A CN110083602B (zh) 2019-04-15 2019-04-15 一种基于hive表的数据存储及数据处理的方法及装置

Publications (2)

Publication Number Publication Date
CN110083602A true CN110083602A (zh) 2019-08-02
CN110083602B CN110083602B (zh) 2021-07-06

Family

ID=67415066

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910299612.8A Active CN110083602B (zh) 2019-04-15 2019-04-15 一种基于hive表的数据存储及数据处理的方法及装置

Country Status (1)

Country Link
CN (1) CN110083602B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925792A (zh) * 2021-03-26 2021-06-08 北京中经惠众科技有限公司 数据存储控制方法、装置、计算设备及介质
CN113515520A (zh) * 2021-03-26 2021-10-19 北京达佳互联信息技术有限公司 数据管理方法、装置、服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609464A (zh) * 2012-01-16 2012-07-25 北京亿赞普网络技术有限公司 Mongodb分片联表查询方法及装置
CN105045877A (zh) * 2015-07-20 2015-11-11 深圳市深信服电子科技有限公司 数据库数据分片存储方法和装置、数据查询方法和装置
CN105095484A (zh) * 2015-08-17 2015-11-25 北京京东世纪贸易有限公司 一种数据拉链方法
CN107861989A (zh) * 2017-10-17 2018-03-30 平安科技(深圳)有限公司 数据的分区存储方法、装置、计算机设备及存储介质
CN108205576A (zh) * 2016-12-20 2018-06-26 航天信息股份有限公司 一种基于数据仓库工具hive分区存储使用和分析数据的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609464A (zh) * 2012-01-16 2012-07-25 北京亿赞普网络技术有限公司 Mongodb分片联表查询方法及装置
CN105045877A (zh) * 2015-07-20 2015-11-11 深圳市深信服电子科技有限公司 数据库数据分片存储方法和装置、数据查询方法和装置
CN105095484A (zh) * 2015-08-17 2015-11-25 北京京东世纪贸易有限公司 一种数据拉链方法
CN108205576A (zh) * 2016-12-20 2018-06-26 航天信息股份有限公司 一种基于数据仓库工具hive分区存储使用和分析数据的方法及系统
CN107861989A (zh) * 2017-10-17 2018-03-30 平安科技(深圳)有限公司 数据的分区存储方法、装置、计算机设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925792A (zh) * 2021-03-26 2021-06-08 北京中经惠众科技有限公司 数据存储控制方法、装置、计算设备及介质
CN113515520A (zh) * 2021-03-26 2021-10-19 北京达佳互联信息技术有限公司 数据管理方法、装置、服务器及存储介质
CN112925792B (zh) * 2021-03-26 2024-01-05 北京中经惠众科技有限公司 数据存储控制方法、装置、计算设备及介质

Also Published As

Publication number Publication date
CN110083602B (zh) 2021-07-06

Similar Documents

Publication Publication Date Title
CN107450972A (zh) 一种调度方法、装置以及电子设备
CN110134668B (zh) 应用于区块链的数据迁移方法、装置和设备
CN106201673B (zh) 一种地震数据处理方法及装置
CN107391526A (zh) 一种基于区块链的数据处理方法及设备
CN107391527A (zh) 一种基于区块链的数据处理方法及设备
CN110096528A (zh) 一种分布式系统中生成序列的方法、装置及系统
CN105335389B (zh) 一种业务可视化方法及系统
CN108345977A (zh) 一种业务处理方法及装置
TWI709049B (zh) 隨機漫步、基於叢集的隨機漫步方法、裝置以及設備
CN110389842A (zh) 一种动态资源分配方法、装置、存储介质及设备
CN108171267A (zh) 用户群划分方法及装置、消息推送方法及装置
CN108733546A (zh) 一种日志采集方法、装置及设备
CN108345644A (zh) 一种数据处理的方法及装置
CN110084496A (zh) 一种资源分配方法及装置
CN105868216B (zh) 一种实现对象过期操作的方法、装置和设备
CN109376189A (zh) 批量数据操作的处理方法、装置及设备
CN109104327A (zh) 一种业务日志生成方法、装置及设备
CN109725989A (zh) 一种任务执行的方法及装置
CN108268289A (zh) web应用的参数配置方法、装置及系统
CN110083602A (zh) 一种基于hive表的数据存储及数据处理的方法及装置
CN110069523A (zh) 一种数据查询方法、装置和查询系统
CN110245978A (zh) 策略组中的策略评估、策略选择方法及装置
CN116932175B (zh) 一种基于序列生成的异构芯片任务调度方法以及装置
CN108959330A (zh) 一种数据库的处理、数据查询方法及设备
CN110020004A (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
GR01 Patent grant
GR01 Patent grant