CN106933928A - 基于外部数据文件的任务存储方法及装置 - Google Patents

基于外部数据文件的任务存储方法及装置 Download PDF

Info

Publication number
CN106933928A
CN106933928A CN201511032728.3A CN201511032728A CN106933928A CN 106933928 A CN106933928 A CN 106933928A CN 201511032728 A CN201511032728 A CN 201511032728A CN 106933928 A CN106933928 A CN 106933928A
Authority
CN
China
Prior art keywords
data
condition
task
subregion
tasks
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
CN201511032728.3A
Other languages
English (en)
Other versions
CN106933928B (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 Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum 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 Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201511032728.3A priority Critical patent/CN106933928B/zh
Publication of CN106933928A publication Critical patent/CN106933928A/zh
Application granted granted Critical
Publication of CN106933928B publication Critical patent/CN106933928B/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/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing

Landscapes

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

Abstract

本发明公开了一种基于外部数据文件的任务存储方法及装置。其中,该方法包括:获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置,其中,外部数据文件用于存储每个类型信息,每个分区信息以及每个存储位置的对应关系;将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置。本发明解决了现有技术中任务数据存储在分布式数据库中,无法一次性查找到所有任务数据,导致任务数据查询速度慢的技术问题。

Description

基于外部数据文件的任务存储方法及装置
技术领域
本发明涉及通信领域,具体而言,涉及一种基于外部数据文件的任务存储方法及装置。
背景技术
现有技术中,针对多个用户,做数据分析时,一个用户可能对应一个profile(用户配置文件),或是一堆profile(数据分析的相应网站唯一字段)。用户既希望在查看单网站数据时能获得很高的分析能力,又希望能将所有profile数据放在一起,来查看整个站群的相关数据,这就发生了一个矛盾,将所有数据放在同一个数据库里,会导致在查询单网站时,由于有其它站群网站的数据干扰,影响了查询速度。
针对现有技术中任务数据存储在分布式数据库中,无法一次性查找到所有任务数据,导致任务数据查询速度慢的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于外部数据文件的任务存储方法及装置,以至少解决现有技术中任务数据存储在分布式数据库中,无法一次性查找到所有任务数据,导致任务数据查询速度慢的技术问题。
根据本发明实施例的一个方面,提供了一种基于外部数据文件的任务存储方法,包括:获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置;将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置。
进一步地,在根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置之前,方法还包括:构建用于存储待存储的任务集合的数据库,其中,数据库包含多张数据表;根据预设分区条件,将数据库中的多张数据表进行划分,得到多个存储位置;将预设分区条件和多个存储位置的对应关系保存在预先配置的外部数据文件中。
进一步地,预设分区条件包括:分区条件,其中,根据预设分区条件,将数据库中的多张数据表进行划分,得到多个存储位置包括:将数据库中包含的多张数据表按照分区条件划分为多个存储位置。
进一步地,预设分区条件包括:新增分区条件和分区条件,其中,根据预设分区条件,将数据库中的多张数据表进行划分,得到多个存储位置包括:将数据库中包含的多张数据表按照新增分区条件划分为多个存储分区;将多个存储分区中每个存储分区按照分区条件划分为多个存储位置。
进一步地,在将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置之后,方法还包括:在进行数据查询的过程中,获取输入的查询条件集合,其中,查询条件集合包括:多个查询条件,以及每个查询条件包含的查询类型信息和查询分区信息;在每个查询条件包含的查询类型信息相同的情况下,根据每个查询条件包含的查询分区信息,从预先配置的外部数据文件中读取每个查询条件相应的存储位置;从每个查询条件相应的存储位置中读取多个查询条件的数据信息。
进一步地,在每个查询条件包含的查询类型信息不同的情况下,方法还包括:根据每个查询条件包含的查询类型信息和查询分区信息,从预先配置的外部数据文件中读取每个查询条件相应的存储位置;从每个查询条件相应的存储位置中读取多个查询条件的数据信息。
根据本发明实施例的另一方面,还提供了一种基于外部数据文件的任务存储装置,包括:第一获取模块,用于获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;第一读取模块,用于根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置;第一存储模块,用于将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置。
进一步地,该装置还包括:构建模块,用于构建用于存储待存储的任务集合的数据库,其中,数据库包含多张数据表;第二获取模块,用于根据预设分区条件,将数据库中的多张数据表进行划分,得到多个存储位置;第二存储模块,用于将预设分区条件和多个存储位置的对应关系保存在预先配置的外部数据文件中。
进一步地,预设分区条件包括:分区条件,其中,第二获取模块包括:第一子处理模块,用于将数据库中包含的多张数据表按照分区条件划分为多个存储位置。
进一步地,预设分区条件包括:新增分区条件和分区条件,其中,第二获取模块包括:第二子处理模块,用于将数据库中包含的多张数据表按照新增分区条件划分为多个存储分区;第三子处理模块,用于将多个存储分区中每个存储分区按照分区条件划分为多个存储位置。
进一步地,该装置还包括:第三获取模块,用于在进行数据查询的过程中,获取输入的查询条件集合,其中,查询条件集合包括:多个查询条件,以及每个查询条件包含的查询类型信息和查询分区信息;第二读取模块,用于在每个查询条件包含的查询类型信息相同的情况下,根据每个查询条件包含的查询分区信息,从预先配置的外部数据文件中读取每个查询条件相应的存储位置;第三读取模块,用于从每个查询条件相应的存储位置中读取多个查询条件的数据信息。
进一步地,在每个查询条件包含的查询类型信息不同的情况下,第二读取模块还包括:第二读取子模块,用于根据每个查询条件包含的查询类型信息和查询分区信息,从预先配置的外部数据文件中读取每个查询条件相应的存储位置;第三读取子模块,用于从每个查询条件相应的存储位置中读取多个查询条件的数据信息。
在本发明实施例中,采用获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置;将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置的方式。由于任务数据相应的存储位置已经预先存储在外部数据文件中,因此,通过查询外部数据文件可以快速确定任务数据的存储位置,提高任务数据存储和查询的速度,从而解决了现有技术中任务数据存储在分布式数据库中,无法一次性查找到所有任务数据,导致任务数据查询速度慢的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例一的一种基于外部数据文件的任务存储方法的流程图;
图2是根据本发明实施例二的一种基于外部数据文件的任务存储装置的结构示意图;
图3是根据本发明实施例二的一种可选的基于外部数据文件的任务存储装置的结构示意图;
图4是根据本发明实施例二的一种可选的基于外部数据文件的任务存储装置的结构示意图;
图5是根据本发明实施例二的一种可选的基于外部数据文件的任务存储装置的结构示意图;
图6是根据本发明实施例二的一种可选的基于外部数据文件的任务存储装置的结构示意图;以及
图7是根据本发明实施例二的一种可选的基于外部数据文件的任务存储装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
根据本发明实施例,提供了一种基于外部数据文件的任务存储方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
ETL,Extract-Transform-Load简称,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。Parquet是面向分析型业务的列存储格式,在分布式实时查询引擎里,如Impala,Hive等查询引擎里,多用做外部存储文件,以Impala查询引擎进行举例说明,在本实施例中,以实现基于外部数据文件的任务存储方法为准,具体不做限定。
图1是根据本发明实施例一的一种基于外部数据文件的任务存储方法的流程图,如图1所示,该方法包括如下步骤:
步骤S12,获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息。
步骤S14,根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置,其中,外部数据文件用于存储每个类型信息,每个分区信息以及每个存储位置的对应关系。
步骤S16,将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置。
本实施例所提供的基于外部数据文件的任务存储方法,通过获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置;将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置。由于任务数据相应的存储位置已经预先存储在外部数据文件中,因此,通过查询外部数据文件可以快速确定任务数据的存储位置,提高任务数据存储和查询的速度,从而解决了现有技术中任务数据存储在分布式数据库中,无法一次性查找到所有任务数据,导致任务数据查询速度慢的技术问题。
可选地,在本实施例中,在根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置之前,该方法还包括:
步骤S111,构建用于存储待存储的任务集合的数据库,其中,数据库包含多张数据表。
步骤S113,根据预设分区条件,将数据库中的多张数据表进行划分,得到多个存储位置。
步骤S115,将预设分区条件和多个存储位置的对应关系保存在预先配置的外部数据文件中。
这里需要说明的是,在本实施例中,首先,构建用于存储待存储的任务集合的数据库,其中,数据库包含多张数据表;然后,根据预设分区条件,将数据库中的多张数据表进行划分,得到多个存储位置;最后,将预设分区条件和多个存储位置的对应关系保存在预先配置的外部数据文件中,运用合理的parquet文件组织形式,构造一份外部物理文件,在impala查询引擎里构造多份逻辑映射,解决了现有技术中将所有数据放在同一个数据库里,会导致在查询单网站时,由于有其它站群网站的数据干扰,影响了查询速度,如果分库存放的话,又不能一次性的查询出站群的数据的技术问题,保证了用户在查看单网站数据时能获得很高的分析能力,又能将所有profile数据放在一起,来查看整个站群的相关数据的有益效果。
可选地,在本实施例中,预设分区条件包括:分区条件,其中,步骤S113,根据预设分区条件,将数据库中的多张数据表进行划分,得到多个存储位置包括:步骤S1131,将数据库中包含的多张数据表按照分区条件划分为多个存储位置。
下面结合具体实例,对本发明实施例的基于外部数据文件的任务存储方法进行进一步说明。已经进行过详细说明的不再赘述。以本申请的基于外部数据文件的任务存储方法用于构造单个profile的网站数据仓库为例进行详细说明,具体步骤如下:
此时,根据预设分区条件,将数据库中的多张数据表进行划分时,该预设分区条件包括:分区条件,需要说明的是,本实施例中的分区条件以按时间Date进行分区为例说明,以实现基于外部数据文件的任务存储方法为准,具体不做限定。
首先,创建DW_profile ID的对应数据仓库。
然后,对上述数据仓库的各表进行分区,示例:Alter Table session AddPartitions(date=20151125)。
最后,设置分区对应的物理文件,示例:alter table session partition(20151125)setlocation“/…/solutionid/profileid/20151125”。
可选地,在本实施例中,预设分区条件包括:新增分区条件和分区条件,其中,步骤S113,根据预设分区条件,将数据库中的多张数据表进行划分,得到多个存储位置包括:
步骤S1133,将数据库中包含的多张数据表按照新增分区条件划分为多个存储分区。
步骤S1135,将多个存储分区中每个存储分区按照分区条件划分为多个存储位置。
下面结合具体实例,对本发明实施例的基于外部数据文件的任务存储方法进行进一步说明。已经进行过详细说明的不再赘述。以本申请的基于外部数据文件的任务存储方法用于构造站群的网站数据仓库为例进行详细说明,具体步骤如下:
此时,根据预设分区条件,将数据库中的多张数据表进行划分时,该预设分区条件包括:新增分区条件和分区条件,需要说明的是,本实施例中的新增分区条件为profile,分区条件仍旧以按时间Date进行分区为例说明,以实现基于外部数据文件的任务存储方法为准,具体不做限定。
首先,创建DW_solutionID的对应数据仓库;
然后,指定站群的预设分区条件为:新增分区条件和分区条件即profile+Date的条件,其中profile为新增加分区条件(否则Imapla等引擎里会报分区路径与实际存储的物理路径不匹配的问题),Date为相应Profile里我们设定的分区条件。
接着,创建分区,示例:Alter table session add partitions(profile=1,date=20151125)。
最后,设置分区对应的物理文件,示例:
Alter table session partition(profile=1,date=20151125)set location‘/…/solutionid/profileid/20151125’。
这里需要说明的是,在本实施例中,采用本申请所提供的基于外部数据文件的任务存储方法进行Parquet文件构造时:采用按profile进行目录分割,即以“站群(solution)/网站(profile)/分区条件/Parquet Files”的形式进行目录存储,在ETL阶段对数据进行上述分流,并写入到对应的子目录去,实现了只需要1份物理文件和磁盘存储开销,通过元数据逻辑映射的方式创造出多份数据仓库的技术效果。
这里还需要说明的是,在本实施例中,针对不同用户的查询需求,根据需要动态选取需要的数据仓库进行查询的方式,使其得到期望的数据,例如用户想看站群数据时,对应的更改连接字符串到相应的DW_solutionID数据仓库上;用户想看单个profile的数据时,对应的更改连接字符串到相应的DW_profileID数据仓库上,由此便可以得到期望的数据。
这里还需要说明的是,本申请的基于外部数据文件的任务存储方法,运用合理的parquet文件组织形式,构造一份外部物理文件,在impala里构造多份逻辑映射,从而能够从容的应对各种情况。
可选地,在本实施例中,步骤S16,在将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置之后,方法还包括:
步骤S18,在进行数据查询的过程中,获取输入的查询条件集合,其中,查询条件集合包括:多个查询条件,以及每个查询条件包含的查询类型信息和查询分区信息。
步骤S20,在每个查询条件包含的查询类型信息相同的情况下,根据每个查询条件包含的查询分区信息,从预先配置的外部数据文件中读取每个查询条件相应的存储位置。
本申请上述步骤S20中,上述查询类型信息可以是profile,在每个查询条件包含的查询类型信息相同的情况下(例如,查询类型信息均为profile=1时),根据每个查询条件包含的查询分区信息,例如,根据查询分区信息Date,从预先配置的外部数据文件中读取每个查询条件相应的存储位置。
步骤S22,从每个查询条件相应的存储位置中读取多个查询条件的数据信息。
可选地,在本实施例中,在每个查询条件包含的查询类型信息不同的情况下,该方法还包括:
步骤S19,根据每个查询条件包含的查询类型信息和查询分区信息,从预先配置的外部数据文件中读取每个查询条件相应的存储位置。
步骤S21,从每个查询条件相应的存储位置中读取多个查询条件的数据信息。
本实施例所提供的基于外部数据文件的任务存储方法,通过获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置;将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置,从而解决了现有技术中任务数据存储在分布式数据库中,无法一次性查找到所有任务数据,导致任务数据查询速度慢的技术问题,进而可以实现针对不同用户的查询需求,例如用户想看站群数据时,对应的更改连接字符串到相应的DW_solutionID数据仓库上;用户想看单个profile的数据时,对应的更改连接字符串到相应的DW_profileID数据仓库上的方式,使其得到期望的数据的技术效果。
实施例二
根据本实施例,还提供了一种基于外部数据文件的任务存储装置,该基于外部数据文件的任务存储装置主要用于执行本发明实施例上述内容所提供的基于外部数据文件的任务存储方法,以下对本实施例所提供的基于外部数据文件的任务存储装置做具体介绍。
图2是根据本发明实施例二的一种基于外部数据文件的任务存储装置的结构示意图,如图2所示,该装置包括:
第一获取模块21,用于获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息。
第一读取模块23,用于根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置,其中,外部数据文件用于存储每个类型信息,每个分区信息以及每个存储位置的对应关系。
第一存储模块25,用于将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置。
本实施例所提供的基于外部数据文件的任务存储装置,该装置包括:第一获取模块21,用于获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;第一读取模块23,用于根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置;第一存储模块25,用于将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置。由于任务数据相应的存储位置已经预先存储在外部数据文件中,因此,通过查询外部数据文件可以快速确定任务数据的存储位置,提高任务数据存储和查询的速度,从而解决了现有技术中任务数据存储在分布式数据库中,无法一次性查找到所有任务数据,导致任务数据查询速度慢的技术问题。
可选地,在本实施例中,如图3所示,上述装置还包括:
构建模块31,用于构建用于存储待存储的任务集合的数据库,其中,数据库包含多张数据表;第二获取模块33,用于根据预设分区条件,将数据库中的多张数据表进行划分,得到多个存储位置;第二存储模块35,用于将预设分区条件和多个存储位置的对应关系保存在预先配置的外部数据文件中。
通过上述方案,运用合理的parquet文件组织形式,构造一份外部物理文件,在impala查询引擎里构造多份逻辑映射,解决了现有技术中将所有数据放在同一个数据库里,会导致在查询单网站时,由于有其它站群网站的数据干扰,影响了查询速度,如果分库存放的话,又不能一次性的查询出站群的数据的技术问题,保证了用户在查看单网站数据时能获得很高的分析能力,又能将所有profile数据放在一起,来查看整个站群的相关数据的有益效果。
可选地,在本实施例中,如图4所示,预设分区条件包括:分区条件,其中,第二获取模块33包括:
第一子处理模块41,用于将数据库中包含的多张数据表按照分区条件划分为多个存储位置。
下面结合具体实例,对本发明实施例的基于外部数据文件的任务存储装置进行进一步说明。已经进行过详细说明的不再赘述。以本申请的基于外部数据文件的任务存储装置用于构造单个profile的网站数据仓库为例进行详细说明,具体步骤如下:
此时,根据预设分区条件,将数据库中的多张数据表进行划分时,该预设分区条件包括:分区条件,需要说明的是,本实施例中的分区条件以按时间Date进行分区为例说明,以实现基于外部数据文件的任务存储方法为准,具体不做限定。
首先,创建DW_profileID的对应数据仓库;
然后,对上述数据仓库的各表进行分区,示例:Alter Table session AddPartitions(date=20151125)。
最后,设置分区对应的物理文件,示例:alter table session partition(20151125)setlocation“/…/solutionid/profileid/20151125”。
可选地,在本实施例中,如图5所示,预设分区条件包括:新增分区条件和分区条件,其中,第二获取模块33包括:
第二子处理模块51,用于将数据库中包含的多张数据表按照新增分区条件划分为多个存储分区;第三子处理模块53,用于将多个存储分区中每个存储分区按照分区条件划分为多个存储位置。
下面结合具体实例,对本发明实施例的基于外部数据文件的任务存储方法进行进一步说明。已经进行过详细说明的不再赘述。以本申请的基于外部数据文件的任务存储方法用于构造站群的网站数据仓库为例进行详细说明,具体步骤如下:
此时,根据预设分区条件,将数据库中的多张数据表进行划分时,该预设分区条件包括:新增分区条件和分区条件,需要说明的是,本实施例中的新增分区条件为profile,分区条件仍旧以按时间Date进行分区为例说明,以实现基于外部数据文件的任务存储方法为准,具体不做限定。
首先,创建DW_solutionID的对应数据仓库;
然后,指定站群的预设分区条件为:新增分区条件和分区条件即profile+Date的条件,其中profile为新增加分区条件(否则Imapla等引擎里会报分区路径与实际存储的物理路径不匹配的问题),Date为相应Profile里我们设定的分区条件。
接着,创建分区,示例:Alter table session add partitions(profile=1,date=20151125)。
最后,设置分区对应的物理文件,示例:
Alter table session partition(profile=1,date=20151125)set location‘/…/solutionid/profileid/20151125’。
这里需要说明的是,在本实施例中,采用本申请所提供的基于外部数据文件的任务存储装置进行Parquet文件构造时:采用按profile进行目录分割,即以“站群(solution)/网站(profile)/分区条件/Parquet Files”的形式进行目录存储,在ETL阶段对数据进行上述分流,并写入到对应的子目录去,实现了只需要1份物理文件和磁盘存储开销,通过元数据逻辑映射的方式创造出多份数据仓库的技术效果。
这里还需要说明的是,在本实施例中,针对不同用户的查询需求,根据需要动态选取需要的数据仓库进行查询的方式,使其得到期望的数据,例如用户想看站群数据时,对应的更改连接字符串到相应的DW_solutionID数据仓库上;用户想看单个profile的数据时,对应的更改连接字符串到相应的DW_profileID数据仓库上,由此便可以得到期望的数据。
这里还需要说明的是,本申请的基于外部数据文件的任务存储装置,运用合理的parquet文件组织形式,构造一份外部物理文件,在impala里构造多份逻辑映射,从而能够从容的应对各种情况。
可选地,在本实施例中,如图6所示,该装置还包括:
第三获取模块61,用于在进行数据查询的过程中,获取输入的查询条件集合,其中,查询条件集合包括:多个查询条件,以及每个查询条件包含的查询类型信息和查询分区信息。
第二读取模块63,用于在每个查询条件包含的查询类型信息相同的情况下,根据每个查询条件包含的查询分区信息,从预先配置的外部数据文件中读取每个查询条件相应的存储位置。
本实施例中,上述查询类型信息可以是profile,在每个查询条件包含的查询类型信息相同的情况下(例如,查询类型信息均为profile=1时),根据每个查询条件对应的查询分区信息,例如,根据查询分区信息Date,从预先配置的外部数据文件中读取每个查询条件相应的存储位置。
第三读取模块65,用于从每个查询条件相应的存储位置中读取多个查询条件的数据信息。
可选地,在本实施例中,如图7所示,在每个查询条件包含的查询类型信息不同的情况下,该装置还包括:
第四读取模块71,用于根据每个查询条件包含的查询类型信息和查询分区信息,从预先配置的外部数据文件中读取每个查询条件相应的存储位置;第五读取模块73,用于从每个查询条件相应的存储位置中读取多个查询条件的数据信息。
本实施例所提供的基于外部数据文件的任务存储装置,该装置包括:第一获取模块,用于获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;第一读取模块,用于根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置;第一存储模块,用于将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置,从而解决了现有技术中任务数据存储在分布式数据库中,无法一次性查找到所有任务数据,导致任务数据查询速度慢的技术问题,进而可以实现针对不同用户的查询需求,例如用户想看站群数据时,对应的更改连接字符串到相应的DW_solutionID数据仓库上;用户想看单个profile的数据时,对应的更改连接字符串到相应的DW_profileID数据仓库上的方式,使其得到期望的数据的技术效果。
基于外部数据文件的任务存储装置包括处理器和存储器,上述第一获取模块、第一读取模块和第一存储模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数解析文本内容。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取待存储的任务集合,其中,任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;根据每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取每个任务数据相应的存储位置;将任务集合中的每个任务数据分别存储到每个任务数据相应的存储位置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于外部数据文件的任务存储方法,其特征在于,包括:
获取待存储的任务集合,其中,所述任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;
根据所述每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取所述每个任务数据相应的存储位置,其中,所述外部数据文件用于存储每个类型信息,每个分区信息以及每个存储位置的对应关系;
将所述任务集合中的每个任务数据分别存储到所述每个任务数据相应的存储位置。
2.根据权利要求1所述的方法,其特征在于,在根据所述每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取所述每个任务数据相应的存储位置之前,所述方法还包括:
构建用于存储所述待存储的任务集合的数据库,其中,所述数据库包含多张数据表;
根据预设分区条件,将所述数据库中的多张数据表进行划分,得到多个存储位置;
将所述预设分区条件和所述多个存储位置的对应关系保存在所述预先配置的外部数据文件中。
3.根据权利要求2所述的方法,其特征在于,所述预设分区条件包括:分区条件,其中,根据预设分区条件,将所述数据库中的多张数据表进行划分,得到多个存储位置包括:
将所述数据库中包含的多张数据表按照所述分区条件划分为所述多个存储位置。
4.根据权利要求2所述的方法,其特征在于,所述预设分区条件包括:新增分区条件和分区条件,其中,根据预设分区条件,将所述数据库中的多张数据表进行划分,得到多个存储位置包括:
将所述数据库中包含的多张数据表按照所述新增分区条件划分为多个存储分区;
将所述多个存储分区中每个存储分区按照所述分区条件划分为所述多个存储位置。
5.根据权利要求1所述的方法,其特征在于,在将所述任务集合中的每个任务数据分别存储到所述每个任务数据相应的存储位置之后,所述方法还包括:
在进行数据查询的过程中,获取输入的查询条件集合,其中,所述查询条件集合包括:多个查询条件,以及每个查询条件包含的查询类型信息和查询分区信息;
在所述每个查询条件包含的查询类型信息相同的情况下,根据所述每个查询条件包含的查询分区信息,从所述预先配置的外部数据文件中读取所述每个查询条件相应的存储位置;
从所述每个查询条件相应的存储位置中读取所述多个查询条件的数据信息。
6.根据权利要求5所述的方法,其特征在于,在所述每个查询条件包含的查询类型信息不同的情况下,所述方法还包括:
根据所述每个查询条件包含的查询类型信息和查询分区信息,从所述预先配置的外部数据文件中读取所述每个查询条件相应的存储位置;
从所述每个查询条件相应的存储位置中读取所述多个查询条件的数据信息。
7.一种基于外部数据文件的任务存储装置,其特征在于,包括:
第一获取模块,用于获取待存储的任务集合,其中,所述任务集合包括:多个任务数据,以及每个任务数据对应的类型信息和分区信息;
第一读取模块,用于根据所述每个任务数据对应的类型信息和分区信息,从预先配置的外部数据文件中读取所述每个任务数据相应的存储位置;
第一存储模块,用于将所述任务集合中的每个任务数据分别存储到所述每个任务数据相应的存储位置。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
构建模块,用于构建用于存储所述待存储的任务集合的数据库,其中,所述数据库包含多张数据表;
第二获取模块,用于根据预设分区条件,将所述数据库中的多张数据表进行划分,得到多个存储位置;
第二存储模块,用于将所述预设分区条件和所述多个存储位置的对应关系保存在所述预先配置的外部数据文件中。
9.根据权利要求8所述的装置,其特征在于,所述预设分区条件包括:分区条件,其中,所述第二获取模块包括:
第一子处理模块,用于将所述数据库中包含的多张数据表按照所述分区条件划分为所述多个存储位置。
10.根据权利要求8所述的装置,其特征在于,所述预设分区条件包括:新增分区条件和分区条件,其中,所述第二获取模块包括:
第二子处理模块,用于将所述数据库中包含的多张数据表按照所述新增分区条件划分为多个存储分区;
第三子处理模块,用于将所述多个存储分区中每个存储分区按照所述分区条件划分为所述多个存储位置。
CN201511032728.3A 2015-12-31 2015-12-31 基于外部数据文件的任务存储方法及装置 Active CN106933928B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511032728.3A CN106933928B (zh) 2015-12-31 2015-12-31 基于外部数据文件的任务存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511032728.3A CN106933928B (zh) 2015-12-31 2015-12-31 基于外部数据文件的任务存储方法及装置

Publications (2)

Publication Number Publication Date
CN106933928A true CN106933928A (zh) 2017-07-07
CN106933928B CN106933928B (zh) 2019-12-10

Family

ID=59444228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511032728.3A Active CN106933928B (zh) 2015-12-31 2015-12-31 基于外部数据文件的任务存储方法及装置

Country Status (1)

Country Link
CN (1) CN106933928B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019497A (zh) * 2017-08-07 2019-07-16 北京国双科技有限公司 一种数据读取方法及装置
CN111143363A (zh) * 2019-12-23 2020-05-12 武汉光谷信息技术股份有限公司 一种基于HBase的3D Tiles数据的存取方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876983A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 数据库分区方法与系统
CN102486798A (zh) * 2010-12-03 2012-06-06 腾讯科技(深圳)有限公司 数据加载的方法及装置
CN102799628A (zh) * 2012-06-21 2012-11-28 新浪网技术(中国)有限公司 在key-value数据库中进行数据分区的方法和装置
CN202563493U (zh) * 2012-05-21 2012-11-28 成都因纳伟盛科技股份有限公司 非结构化数据共享灾备平台

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876983A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 数据库分区方法与系统
CN102486798A (zh) * 2010-12-03 2012-06-06 腾讯科技(深圳)有限公司 数据加载的方法及装置
CN202563493U (zh) * 2012-05-21 2012-11-28 成都因纳伟盛科技股份有限公司 非结构化数据共享灾备平台
CN102799628A (zh) * 2012-06-21 2012-11-28 新浪网技术(中国)有限公司 在key-value数据库中进行数据分区的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019497A (zh) * 2017-08-07 2019-07-16 北京国双科技有限公司 一种数据读取方法及装置
CN111143363A (zh) * 2019-12-23 2020-05-12 武汉光谷信息技术股份有限公司 一种基于HBase的3D Tiles数据的存取方法及装置

Also Published As

Publication number Publication date
CN106933928B (zh) 2019-12-10

Similar Documents

Publication Publication Date Title
CN105094707B (zh) 一种数据存储、读取方法及装置
EP2565802B1 (en) Data masking setup
CN104462430B (zh) 关系型数据库的数据处理方法及装置
CN104504077B (zh) 网页访问数据的统计方法和装置
CN103164424B (zh) 一种时效性词的获取方法和装置
CN108733713A (zh) 数据仓库中的数据查询方法及装置
CN106708841B (zh) 网站访问路径的聚合方法和装置
CN104462429B (zh) 数据库查询语句的生成方法及装置
DE10244731A1 (de) Dynamischer Auslastungsausgleich unter Verwendung einer semantischen Verkehrsüberwachung
CN106708996A (zh) 用于对关系数据库进行全文搜索的方法及系统
CN106933935A (zh) 任务存储方法和装置
EP3217296A1 (en) Data query method and apparatus
CN103559619A (zh) 一种服装尺码信息的应答方法及系统
CN105468764A (zh) 一种数据处理方法、装置及集群服务系统
CN106649368A (zh) 数据存储方法、装置和数据查询方法、装置
CN108009254A (zh) 多索引方法及装置、云系统以及计算机可读存储介质
CN106933897A (zh) 数据查询方法和装置
US20180060362A1 (en) Method and system for implementing distributed lobs
US20150120697A1 (en) System and method for analysis of a database proxy
CN104484405A (zh) 执行爬取任务的方法和装置
CN105677687A (zh) 一种数据处理方法及装置
CN106487860A (zh) 工作信息的处理方法及装置
CN103064989A (zh) 网页保存、打开方法及装置
CN107169046A (zh) 一种数据库索引查找方法、装置及用户终端
CN106933928A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant