CN107330024B - 标签系统数据的存储方法和装置 - Google Patents

标签系统数据的存储方法和装置 Download PDF

Info

Publication number
CN107330024B
CN107330024B CN201710476509.7A CN201710476509A CN107330024B CN 107330024 B CN107330024 B CN 107330024B CN 201710476509 A CN201710476509 A CN 201710476509A CN 107330024 B CN107330024 B CN 107330024B
Authority
CN
China
Prior art keywords
column
file
column family
directory
subdirectory
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.)
Active
Application number
CN201710476509.7A
Other languages
English (en)
Other versions
CN107330024A (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.)
Huawei Precision Manufacturing Co ltd
Original Assignee
Huawei Machine 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 Huawei Machine Co Ltd filed Critical Huawei Machine Co Ltd
Priority to CN201710476509.7A priority Critical patent/CN107330024B/zh
Publication of CN107330024A publication Critical patent/CN107330024A/zh
Application granted granted Critical
Publication of CN107330024B publication Critical patent/CN107330024B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/221Column-oriented storage; Management thereof

Landscapes

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

Abstract

本申请提供一种标签系统数据的存储方法和装置。该方法包括:获取在标签计算任务完成时,按列格式存储在工作目录中的列族文件;列族文件中包括一个标识列和至少一个标签列;根据列族文件的列族名称,将列族文件移动到归档目录中与列族名称对应的归档子目录下。通过将列族文件按列格式存储,提高了数据批量读写吞吐率,方便了数据更新。同时,由于标签计算任务的计算结果直接存储在HDFS中,减少了数据的移动,将数据延迟降低到了最低,降低了成本。通过存储列族文件的多个版本,也方便了对列族文件的版本管理,根据多版本的列族文件进行基于时间序列的分许。

Description

标签系统数据的存储方法和装置
技术领域
本申请涉及数据处理领域,尤其涉及一种标签系统数据的存储方法和装置。
背景技术
在大数据时代,为方便数据分析和信息挖掘,数据越来越多的以标签系统的形式存储。用户标签系统是一种常见的标签系统应用,用户标签可用于对用户进行精准快速的分析和画像。
标签系统中的数据存储和分析多采用大数据生态系统(hadoop)的技术组件实现。示例性的,通常基于计算引擎spark或Map-Reduce对数据进行批量计算,然后将计算结果存储在非关系型的数据库(NoSQL)中,如键值(key-value)类型数据库。在存储过程中通常以实体标识为行主键,将标签按照key-value的形式存入NoSQL数据库,方便后续在NoSQL数据库中做数据的查询分析。
但是,由于NoSQL数据库将数据按key存储,导致数据吞吐率较差,数据的批量读写性能差。
发明内容
本申请提供一种标签系统数据的存储方法和装置,用以解决现有标签系统中,将标签数据存储在NoSQL数据库中,导致数据吞吐率较差,数据的批量读写性能差的问题。
本申请一方面提供一种标签系统数据的存储方法,该方法包括:
获取在标签计算任务完成时,按列格式存储在工作目录中的列族文件;所述列族文件中包括一个标识列和至少一个标签列;
根据所述列族文件的列族名称,将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下。
在一种实施方式中,所述根据所述列族文件的列族名称,将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下,包括:
根据所述列族文件的时间信息,在所述归档子目录下创建与所述时间信息对应的二级归档子目录,将所述列族文件移动到所述二级归档子目录下;或者
根据所述列族文件的时间信息,修改所述列族文件的列族名称,将所述修改列族名称后的列族文件存储在在所述归档子目录下。
在一种实施方式中,所述根据所述列族文件的列族名称,将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下之后,所述方法还包括:
根据预设更新周期,将所述归档目录中的所有第一列族文件备份在时间序列目录中;
其中,各所述第一列族文件的更新周期与所述预设更新周期相同,所述第一列族文件为所属的归档子目录中的最晚存入的列族文件。
在一种实施方式中,所述将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下之前,所述方法还包括:
在所述归档目录中创建与所述列族名称对应的归档子目录。
在一种实施方式中,所述将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下之前,所述方法还包括:
当所述归档子目录中的列族文件或二级归档子目录的个数等于预设数值时,根据列族文件或二级归档子目录的时间信息,在所述归档子目录中删除预设个数个列族文件或二级归档子目录。
在一种实施方式中,所述根据预设更新周期,将所述归档目录中的所有第一列族文件备份在时间序列目录中,包括:
根据各所述第一列族文件的时间信息和所述预设更新周期,在所述时间序列目录中创建与各所述第一列族文件的时间信息对应的时间序列子目录,将各所述第一列族文件存储在对应的时间序列子目录下;或者
将各所述第一列族文件压缩得到压缩文件,根据各所述第一列族文件的时间信息确定所述压缩文件的文件名称,将所述压缩文件存储在所述时间序列目录中。
在一种实施方式中,所述将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下,包括:
将所述列族文件的文件元数据修改为所述归档目录中与所述列族名称对应的归档子目录。
本申请另一方面提供一种标签系统数据的存储装置,用于执行上述标签系统数据的存储方法,具有相同的技术特征和技术效果本申请对此不再赘述。
本申请提供一种标签系统数据的存储装置,该装置包括:
列族文件获取模块,用于获取在标签计算任务完成时,按列格式存储在工作目录中的列族文件;所述列族文件中包括一个标识列和至少一个标签列;
归档目录存储模块,用于根据所述列族文件的列族名称,将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下。
在一种实施方式中,所述归档目录存储模块具体用于,
根据所述列族文件的时间信息,在所述归档子目录下创建与所述时间信息对应的二级归档子目录,将所述列族文件移动到所述二级归档子目录下;或者
根据所述列族文件的时间信息,修改所述列族文件的列族名称,将所述修改列族名称后的列族文件存储在在所述归档子目录下。
在一种实施方式中,存储装置还包括时间序列目录存储模块;
所述时间序列目录存储模块,用于根据预设更新周期,将所述归档目录中的所有第一列族文件备份在时间序列目录中;
其中,各所述第一列族文件的更新周期与所述预设更新周期相同,所述第一列族文件为所属的归档子目录中的最晚存入的列族文件。
在一种实施方式中,存储装置还包括目录创建模块,用于在所述归档目录中创建与所述列族名称对应的归档子目录。
在一种实施方式中,存储装置还包括更新模块,用于当所述归档子目录中的列族文件或二级归档子目录的个数等于预设数值时,根据列族文件或二级归档子目录的时间信息,在所述归档子目录中删除预设个数个列族文件或二级归档子目录。
在一种实施方式中,所述更新模块具体用于,
根据各所述第一列族文件的时间信息和所述预设更新周期,在所述时间序列目录中创建与各所述第一列族文件的时间信息对应的时间序列子目录,将各所述第一列族文件存储在对应的时间序列子目录下;或者
将各所述第一列族文件压缩得到压缩文件,根据各所述第一列族文件的时间信息确定所述压缩文件的文件名称,将所述压缩文件存储在所述时间序列目录中。
在一种实施方式中,所述归档目录存储模块具体用于,将所述列族文件的文件元数据修改为所述归档目录中与所述列族名称对应的归档子目录。
本申请实施例再一方面还提供一种标签系统数据的存储装置,该装置包括:第一存储单元和第二存储单元;
所述第一存储单元中存储有工作目录,所述工作目录用于存储标签计算任务计算得到的列族文件,所述列族文件中包括按列格式存储的一个标识列和至少一个标签列;
所述第二存储单元中存储有归档目录,所述归档目录下包括至少一个归档子目录,各所述归档子目录分别用于存储不同列族名称的列族文件。
在一种实施方式中,所述存储装置还包括第三存储单元;
所述第三存储单元中存储有时间序列目录,所述时间序列目录用于根据更新周期存储列族文件。
在一种实施方式中,所述归档子目录下还包括至少一个二级归档子目录,各所述二级归档子目录分别用于存储具有相同列族名称、不同时间信息的列族文件;或者
所述归档子目录下存储的各列族文件的列族名称中包括所述列族文件的时间信息。
在一种实施方式中,所述时间序列目录下包括至少一个时间序列子目录,各所述时间序列子目录下存储的列族文件具有相同的更新周期和时间信息;或者
所述时间序列目录下包括至少一个压缩文件,各所述压缩文件包括的列族文件具有相同的更新周期和时间信息,各所述压缩文件的文件名称根据包括的列族文件的更新周期和时间信息确定。
本申请实施例提供的标签系统数据的存储方法和装置,获取在标签计算任务完成时,按列格式存储在工作目录中的列族文件;根据列族文件的列族名称,将列族文件移动到归档目录中与列族名称对应的归档子目录下。通过将列族文件按列格式存储,提高了数据批量读写吞吐率,方便了数据更新。同时,由于标签计算任务的计算结果直接存储在HDFS中,减少了数据的移动,将数据延迟降低到了最低,降低了成本。通过存储列族文件的多个版本,也方便了对列族文件的版本管理,根据多版本的列族文件进行基于时间序列的分许。
附图说明
图1为本申请实施例一提供的标签系统数据的存储方法的流程示意图;
图2为本申请实施例提供的一种目录结构示意图;
图3为本申请实施例二提供的标签系统数据的存储方法的流程示意图;
图4为本申请实施例提供的另一种目录结构示意图;
图5为本申请实施例一提供的标签系统数据的存储装置的结构示意图;
图6为本申请实施例二提供的标签系统数据的存储装置的结构示意图。
具体实施方式
本申请实施例提供一种标签系统数据的存储方法和装置,用于解决现有大数据生态系统中,通常将数据计算结果存储在NoSQL数据库,而NoSQL数据库将数据按key存储,存在数据吞吐率较差,数据的批量读写性能差的问题。本申请实施例应用于计算机、服务器、计算机集群等。计算机集群上示例性的部署有hadoop系统,hadoop系统通常包括hdfs,yarn,spark等组件。计算机集群上也可以是直接采用基于容器技术或者是虚拟技术的hadoop云服务。
下面采用具体实施例对本申请提供的标签系统数据的存储方法进行详细说明。
图1为本申请实施例一提供的标签系统数据的存储方法的流程示意图。该方法的执行主体为标签系统数据的存储装置,该装置可以通过软件或硬件实现。如图1所示,该方法包括:
S101、获取在标签计算任务完成时,按列格式存储在工作目录中的列族文件;列族文件中包括一个标识列和至少一个标签列。
示例性的,在标签系统中,一个标签计算任务可计算出一个标签或者相关的一组标签,一个标签或一组标签以列格式存储。其中,列格式示例性的可以为hadoop生态系统中的高性能的列存储格式parquet。可选的,标签计算任务的计算结果存储在hadoop分布式文件系统(Hadoop Distributed File System,HDFS)中的一个目录下。一个标签计算任务的计算结果称为一个列族,存储为列格式的列族称为列族文件,而标签则对应列族中的列。
示例性的,表1和表2为一个列族示例。如下面表1和表2所示,列族为一个二维表的结构。列族中包括一个标识列和至少一个标签列(性别、出生年份、年收入、电话,也即用户标签)。标识列可用于将多个列族进行联合。当不同列族文件的标识列的实体主标识(姓名,也即用户)相同,则可将多个列族文件进行联合,得到用户的多个标签信息。例如,将如下的表1与表2进行联合得到表3。通过将一个用户的多个标签采用不同的标签计算任务进行计算可加快数据处理速度。示例性的,具有相同更新周期的标签可由同一标签计算任务完成。
表1
姓名 性别 出生年份
张三 1980
李四 1981
表2
姓名 年收入 电话
张三 10000 134********
李四 20000 135********
表3
姓名 性别 出生年份 年收入 电话
张三 1980 10000 134********
李四 1981 20000 135********
示例性的,各标签计算任务计算生成的临时数据存储在工作目录中,当标签计算任务完成时,得到按列存储的列族文件,并生成任务完成标识。当标签系统数据的存储装置检测到任务完成标识时,获取存储在工作目录中的列族文件。不同标签计算任务计算得到的列族文件具有不同的列族名称,同一标签计算任务计算得到的列族文件也可具有不同的列族名称。
在存储过程中,通过将列族文件按列格式存储,使得列族文件的某一列的数据连续的存储,而每一行中的不同列的值离散分布。考虑到标签计算过程中,得到的数据通常为标签对应的列数据,将数据按列格式存储,提高了数据批量读写吞吐率,方便了数据更新。
同时,由于标签计算任务的计算结果直接存储在HDFS中,使得用户可直接在HDFS上进行数据查询分析。相比将标签计算结果存储在NoSQL数据库中时,还需将数据导入到列存储数据库或搜索引擎这样适合查询的分析引擎中,本实施例不需要在不同的系统之间移动搬迁,减少了数据的移动,将数据延迟降低到了最低,降低了成本。
S102、根据列族文件的列族名称,将列族文件移动到归档目录中与列族名称对应的归档子目录下。
示例性的,在HDFS中建立归档目录,归档目录用于将标签计算任务多次计算生成的列族文件进行备份,即存储列族文件的多个版本,以便对列族文件进行版本管理。工作目录用于存储各标签计算任务计算生成的临时数据,当标签计算任务根据更新周期进行计算时,新的列族文件将覆盖旧的列族文件,将会导致旧数据的丢失,影响了基于时间的数据分析功能。
具体的,在S101中获取到列族文件时,将列族文件移动到归档目录。示例性的,归档目录中包括至少一个归档子目录。当同一标签计算任务得到的列族文件具有相同的列族名称时,一个列族名称对应一个归档子目录,可将不同版本的列族文件修改为不同的名称之后,存储在同一个归档子目录下。当同一标签计算任务得到的列族文件具有不同的列族名称时,一个标签计算任务对应一个归档子目录,可将同一标签计算任务计算得到的不同列族名称的列族文件移动至同一个归档子目录下。
图2为本申请实施例提供的一种目录结构示意图。如图2所示,工作目录中,有4个标签计算任务在执行标签计算,分别为标签计算任务1、标签计算任务2、标签计算任务3和标签计算任务4,各标签计算任务计算得到的列族文件分别记为cf1、cf2、cf3和cf4。各标签计算任务在计算得到新的列族文件后,均存储到归档目录中对应的归档子目录里。示例性的cf1对应归档子目录1,cf2对应归档子目录2,cf3对应归档子目录3,cf4对应归档子目录4。各归档子目录中各标签计算任务分别对应4个版本的列族文件。例如,对于标签计算任务1,归档子目录1中包含cf1_v1,cf1_v2,cf1_v3和cf1_v4。示例性的,还可根据各标签计算任务的不同,设置各归档子目录中包含的列族文件的版本个数。
本申请实施例提供一种标签系统数据的存储方法,包括:获取在标签计算任务完成时,按列格式存储在工作目录中的列族文件;根据列族文件的列族名称,将列族文件移动到归档目录中与列族名称对应的归档子目录下。通过将列族文件按列格式存储,提高了数据批量读写吞吐率,方便了数据更新。同时,由于标签计算任务的计算结果直接存储在HDFS中,减少了数据的移动,将数据延迟降低到了最低,降低了成本。通过存储列族文件的多个版本,也方便了对列族文件的版本管理,根据多版本的列族文件进行基于时间序列的分许。
示例性的,在图1所示实施例的基础上,根据列族文件的列族名称,将列族文件移动到归档目录中与列族名称对应的归档子目录下的方法,包括以下可能的实现方式:
一种可能的实现方式为:根据列族文件的时间信息,在归档子目录下创建与时间信息对应的二级归档子目录,将列族文件移动到二级归档子目录下。
示例性的,标签计算任务计算生成的列族文件包括对应的生成时间信息和更新周期。可以根据列族文件的生成时间信息和/或更新周期,在列族文件对应的归档子目录下创建与时间信息对应的二级归档子目录,将列族文件移动到二级归档子目录下。例如,归档子目录下包括多个以列族文件的生成时间命名的文件夹,文件夹中存储对应的列族文件。
另一种可能的实现方式为:根据列族文件的时间信息,修改列族文件的列族名称,将修改列族名称后的列族文件存储在在归档子目录下。
示例性的,在归档子目录中存储列族文件时,可直接根据列族文件的生成时间信息和/或更新周期,修改列族文件的列族名称,然后将修改列族名称后的列族文件存储在在归档子目录下。当对归档子目录下的各列族文件进行分析时,可直接根据各列族文件的名称确定各列族文件的时间信息。
进一步地,在上述任一实施例的基础上,本申请实施例还提供一种标签系统数据的存储方法。本实施例中增加了时间序列目录,将列族文件在时间序列目录也进行备份。图3为本申请实施例二提供的标签系统数据的存储方法的流程示意图。如图3所示,标签系统数据的存储方法还包括:
S301、获取在标签计算任务完成时,按列格式存储在工作目录中的列族文件;列族文件中包括一个标识列和至少一个标签列;
S302、根据列族文件的列族名称,将列族文件移动到归档目录中与列族名称对应的归档子目录下。
其中,S301和S302与图1所示实施例中的S101和S102相同,本申请不再赘述。
S303、根据预设更新周期,将归档目录中的所有第一列族文件备份在时间序列目录中。
其中,各第一列族文件的更新周期与预设更新周期相同,第一列族文件为所属的归档子目录中的最晚存入的列族文件。
具体的,本实施例中,还根据各标签计算任务计算得到的列族文件的预设更新周期,将列族文件按预设更新周期存储,即具有相同更新周期的列族文件存储在一个文件夹中。示例性的,本实施例中,除工作目录,归档目录外,在HDFS中还包括时间序列目录。在将列族文件备份在时间序列目录中时,将归档目录中的所有第一列族文件一起备份,各第一列族文件具有相同的更新周期。第一列族文件为所属的归档子目录中的最晚存入的列族文件,即第一列族文件为最新版本的列族文件。
示例性的,时间序列目录中的存储可根据更新周期的不同来存储,更新周期可以为年,月,日,周等。例如,按月的时间序列备份时,每个月的标签数据在一个文件夹中存储,或压缩为一个文件存储。示例性的,图4为本申请实施例提供的另一种目录结构示意图;。如图4所示,归档子目录1中的列族文件的更新周期为天。归档子目录3和归档子目录4中的列族文件的更新周期为月,可将归档子目录3和归档子目录4中的列族文件依据更新周期存储在时间序列目录中的一个文件夹下。
通过设置将列族文件按照时间序列进行备份的目录,可以按标签进行不同粒度周期的备份,以便对数据进行时间序列分析,也支持根据周期更新标签数据。
进一步地,在图1或图3所示实施例的基础上,在执行S102或S202中的将列族文件移动到归档目录中与列族名称对应的归档子目录下之前,标签系统数据的存储方法还包括:
在归档目录中创建与列族名称对应的归档子目录。
示例性的,可提前根据标签计算任务在归档目录中创建与列族名称对应的归档子目录。
进一步地,参照图2或图4,在上述任一实施例的基础上,将列族文件移动到归档目录中与列族名称对应的归档子目录下之前,标签系统数据的存储方法方法还包括:
当归档子目录中的列族文件或二级归档子目录的个数等于预设数值时,根据列族文件或二级归档子目录的时间信息,在归档子目录中删除预设个数个列族文件或二级归档子目录。
示例性的,在将列族文件备份至归档子目录之前,需检测对应的归档子目录中存储的列族文件的个数是否超过预设的版本个数,即预设数值。或者检测归档字目录中的二级归档子目录的个数是否大于预设数值,图2中的预设数值示例性的为4。当检测到归档子目录中存储的列族文件的个数达到4时,则需在当前子目录中一个最早版本的列族文件。通过删除较早版本的列族文件,可减少存储空间的占用。
进一步地,在上述任一实施例的基础上,根据预设更新周期,将归档目录中的所有第一列族文件备份在时间序列目录中包括以下可行的实现方式:
一种可行的实现方式:
根据各第一列族文件的时间信息和预设更新周期,在时间序列目录中创建与各第一列族文件的时间信息对应的时间序列子目录,将各第一列族文件存储在对应的时间序列子目录下。
示例性的,在时间序列目录中进行第一列族文件的备份时,可先在时间序列目录中创建时间序列子目录,时间序列子目录与各第一列族文件的时间信息相对应。示例性的,当第一列族文件的时间信息包括年月日时分秒等详细信息,而预设更新周期的更新单位为月时,可根据第一列族文件的时间信息中的年月信息创建时间序列子目录。再将各第一列族文件存储在对应的时间序列子目录下。
另一种可行的实现方式:
将各第一列族文件压缩得到压缩文件,根据各第一列族文件的时间信息确定压缩文件的文件名称,将压缩文件存储在时间序列目录中。
示例性的,还可直接将各第一列族文件压缩存储在时间序列目录中,各压缩文件的名称指示列族文件的更新周期。例如,当第一列族文件的时间信息包括年月日时分秒等详细信息,而预设更新周期的更新单位为月时,可根据第一列族文件的时间信息中的年月信息命名压缩文件的名称。
进一步地,在上述任一实施例的基础上,将列族文件移动到归档目录中与列族名称对应的归档子目录下,包括:
将列族文件的文件元数据修改为归档目录中与列族名称对应的归档子目录。
由于修改元数据的操作简单执行速度快,无需进行数据或文件的拷贝或者移动,因此速度较快,成本较低。
本申请实施例另一方面还提供一种标签系统数据的存储装置,用于执行上述标签系统数据的存储方法,具有相同的技术特征和技术效果,本申请对此不再赘述。
图5为本申请实施例一提供的标签系统数据的存储装置的结构示意图。该存储装置可以通过软件、硬件或者软硬件结合的方式实现。如图5所示,该存储装置包括:
列族文件获取模块501,用于获取在标签计算任务完成时,按列格式存储在工作目录中的列族文件;列族文件中包括一个标识列和至少一个标签列;
归档目录存储模块502,用于根据列族文件的列族名称,将列族文件移动到归档目录中与列族名称对应的归档子目录下。
可选的,归档目录存储模块502具体用于,
根据列族文件的时间信息,在归档子目录下创建与时间信息对应的二级归档子目录,将列族文件移动到二级归档子目录下;或者
根据列族文件的时间信息,修改列族文件的列族名称,将修改列族名称后的列族文件存储在在归档子目录下。
进一步地,在图5所示实施例的基础上,图6为本申请实施例二提供的标签系统数据的存储装置的结构示意图。如图6所示,存储装置还包括时间序列目录存储模块503;
时间序列目录存储模块503,用于根据预设更新周期,将归档目录中的所有第一列族文件备份在时间序列目录中;
其中,各第一列族文件的更新周期与预设更新周期相同,第一列族文件为所属的归档子目录中的最晚存入的列族文件。
进一步地,如图6所示,存储装置还包括目录创建模块504,用于在归档目录中创建与列族名称对应的归档子目录。
进一步地,如图6所示,存储装置还包括更新模块505,用于当归档子目录中的列族文件或二级归档子目录的个数等于预设数值时,根据列族文件或二级归档子目录的时间信息,在归档子目录中删除预设个数个列族文件或二级归档子目录。
可选的,更新模块505具体用于,
根据各第一列族文件的时间信息和预设更新周期,在时间序列目录中创建与各第一列族文件的时间信息对应的时间序列子目录,将各第一列族文件存储在对应的时间序列子目录下;或者
将各第一列族文件压缩得到压缩文件,根据各第一列族文件的时间信息确定压缩文件的文件名称,将压缩文件存储在时间序列目录中。
可选的,归档目录存储模块502具体用于,将列族文件的文件元数据修改为归档目录中与列族名称对应的归档子目录。
本申请实施例另一方面还提供一种标签系统数据的存储装置,该装置结构如图2和图4所示。
示例性的,参照图2和图4,存储装置包括:第一存储单元和第二存储单元;
第一存储单元中存储有工作目录,工作目录用于存储标签计算任务计算得到的列族文件,列族文件中包括按列格式存储的一个标识列和至少一个标签列;
第二存储单元中存储有归档目录,归档目录下包括至少一个归档子目录,各归档子目录分别用于存储不同列族名称的列族文件。
可选的,存储装置还包括第三存储单元;
第三存储单元中存储有时间序列目录,时间序列目录用于根据更新周期存储列族文件。
可选的,归档子目录下还包括至少一个二级归档子目录,各二级归档子目录分别用于存储具有相同列族名称、不同时间信息的列族文件;或者
归档子目录下存储的各列族文件的列族名称中包括列族文件的时间信息。
可选的,时间序列目录下包括至少一个时间序列子目录,各时间序列子目录下存储的列族文件具有相同的更新周期和时间信息;或者
时间序列目录下包括至少一个压缩文件,各压缩文件包括的列族文件具有相同的更新周期和时间信息,各压缩文件的文件名称根据包括的列族文件的更新周期和时间信息确定。
在上述任一实施例的基础上,本申请实施例再一方面提供一种标签系统数据的处理方法,该处理方法应用于上述任一标签系统数据的存储装置中。当数据处理为查询时,标签系统数据的处理方法具体包括:
S11、接收查询请求,查询请求包括至少一个标签,确定各标签所属的列族文件的列族名称。
示例性的,查询请求中的标签可以为“表1性别表2电话”,根据查询请求中所涉及到的标签,可确定各标签所述的列族文件,示例性的,所涉及到的列族文件可以为上述实施例中的表1和表2。
S12、在归档目录下的各列族名称对应的归档子目录下,获取各归档子目录下的版本编号最新的列族文件。
示例性的,在确定了列族文件后,确定最新版本的列族文件。
S13、根据各列族文件的标识列,获取融合列族文件。
示例性的,将最新版本的列族文件进行融合,得到融合列族文件。
具体的,可采用spark中的sqlcontext.read.option(“mergeSchema”,true).parquet(cf_files)将列族文件cf_files进行融合,形成如下表4所示的结构,可以看到该结构只是对表1和表2进行了融合。
表4
Figure BDA0001328390840000091
Figure BDA0001328390840000101
S14、对融合列族文件中的主标签列进行去冗余操作,得到列族总表。
示例性的,对表4中的姓名列进行一次reduceByKey操作,得到如表3所示的表格。
S15、将列族总表注册为临时表,在临时表上执行查询请求中的分析语句。
示例性的,用spark的sqlContext将该列族总表注册为临时表,该临时表就可以支持任意的sql分析以及任意的基于spark的分析方法。
可选的,在上述任一实施例的基础上,参照图4所示的时间序列目录,本申请实施例还提供基于时间序列的数据分析。例如,获取列族文件的所有版本,并融合在一个表格中,从而方便分析用户属性,例如收入随着时间的变化情况。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (15)

1.一种标签系统数据的存储方法,其特征在于,包括:
获取在标签计算任务完成时,按列格式存储在工作目录中的列族文件;所述列族文件中包括一个标识列和至少一个标签列;
根据所述列族文件的列族名称,将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下;
所述根据所述列族文件的列族名称,将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下,包括:
根据所述列族文件的时间信息,修改所述列族文件的列族名称,将修改列族名称后的列族文件存储在在所述归档子目录下;
所述根据所述列族文件的列族名称,将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下之后,所述方法还包括:
根据预设更新周期,将所述归档目录中的所有第一列族文件备份在时间序列目录中;
其中,各所述第一列族文件的更新周期与所述预设更新周期相同,所述第一列族文件为所属的归档子目录中的最晚存入的列族文件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述列族文件的列族名称,将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下,还包括:
根据所述列族文件的时间信息,在所述归档子目录下创建与所述时间信息对应的二级归档子目录,将所述列族文件移动到所述二级归档子目录下。
3.根据权利要求1至2任一项所述的方法,其特征在于,所述将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下之前,所述方法还包括:
在所述归档目录中创建与所述列族名称对应的归档子目录。
4.根据权利要求2所述的方法,其特征在于,所述将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下之前,所述方法还包括:
当所述归档子目录中的列族文件或二级归档子目录的个数等于预设数值时,根据列族文件或二级归档子目录的时间信息,在所述归档子目录中删除预设个数个列族文件或二级归档子目录。
5.根据权利要求1所述的方法,其特征在于,所述根据预设更新周期,将所述归档目录中的所有第一列族文件备份在时间序列目录中,包括:
根据各所述第一列族文件的时间信息和所述预设更新周期,在所述时间序列目录中创建与各所述第一列族文件的时间信息对应的时间序列子目录,将各所述第一列族文件存储在对应的时间序列子目录下;或者
将各所述第一列族文件压缩得到压缩文件,根据各所述第一列族文件的时间信息确定所述压缩文件的文件名称,将所述压缩文件存储在所述时间序列目录中。
6.根据权利要求1所述的方法,其特征在于,所述将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下,还包括:
将所述列族文件的文件元数据修改为所述归档目录中与所述列族名称对应的归档子目录。
7.一种标签系统数据的存储装置,其特征在于,包括:
列族文件获取模块,用于获取在标签计算任务完成时,按列格式存储在工作目录中的列族文件;所述列族文件中包括一个标识列和至少一个标签列;
归档目录存储模块,用于根据所述列族文件的列族名称,将所述列族文件移动到归档目录中与所述列族名称对应的归档子目录下;
所述归档目录存储模块具体用于,
根据所述列族文件的时间信息,修改所述列族文件的列族名称,将修改列族名称后的列族文件存储在在所述归档子目录下;
还包括时间序列目录存储模块;
所述时间序列目录存储模块,用于根据预设更新周期,将所述归档目录中的所有第一列族文件备份在时间序列目录中;
其中,各所述第一列族文件的更新周期与所述预设更新周期相同,所述第一列族文件为所属的归档子目录中的最晚存入的列族文件。
8.根据权利要求7所述的装置,其特征在于,所述归档目录存储模块还用于,
根据所述列族文件的时间信息,在所述归档子目录下创建与所述时间信息对应的二级归档子目录,将所述列族文件移动到所述二级归档子目录下。
9.根据权利要求7至8任一项所述的装置,其特征在于,还包括目录创建模块,用于在所述归档目录中创建与所述列族名称对应的归档子目录。
10.根据权利要求8所述的装置,其特征在于,还包括更新模块,用于当所述归档子目录中的列族文件或二级归档子目录的个数等于预设数值时,根据列族文件或二级归档子目录的时间信息,在所述归档子目录中删除预设个数个列族文件或二级归档子目录。
11.根据权利要求10所述的装置,其特征在于,所述更新模块具体用于,
根据各所述第一列族文件的时间信息和所述预设更新周期,在所述时间序列目录中创建与各所述第一列族文件的时间信息对应的时间序列子目录,将各所述第一列族文件存储在对应的时间序列子目录下;或者
将各所述第一列族文件压缩得到压缩文件,根据各所述第一列族文件的时间信息确定所述压缩文件的文件名称,将所述压缩文件存储在所述时间序列目录中。
12.根据权利要求7所述的装置,其特征在于,所述归档目录存储模块还用于,将所述列族文件的文件元数据修改为所述归档目录中与所述列族名称对应的归档子目录。
13.一种标签系统数据的存储装置,其特征在于,包括:第一存储单元和第二存储单元;
所述第一存储单元中存储有工作目录,所述工作目录用于存储标签计算任务计算得到的列族文件,所述列族文件中包括按列格式存储的一个标识列和至少一个标签列;
所述第二存储单元中存储有归档目录,所述归档目录下包括至少一个归档子目录,各所述归档子目录分别用于存储不同列族名称的列族文件;
所述存储装置还包括第三存储单元;
所述第三存储单元中存储有时间序列目录,所述时间序列目录用于根据更新周期存储列族文件。
14.根据权利要求13所述的存储装置,其特征在于,所述归档子目录下还包括至少一个二级归档子目录,各所述二级归档子目录分别用于存储具有相同列族名称、不同时间信息的列族文件;或者
所述归档子目录下存储的各列族文件的列族名称中包括所述列族文件的时间信息。
15.根据权利要求13至14任一项所述的存储装置,其特征在于,所述时间序列目录下包括至少一个时间序列子目录,各所述时间序列子目录下存储的列族文件具有相同的更新周期和时间信息;或者
所述时间序列目录下包括至少一个压缩文件,各所述压缩文件包括的列族文件具有相同的更新周期和时间信息,各所述压缩文件的文件名称根据包括的列族文件的更新周期和时间信息确定。
CN201710476509.7A 2017-06-21 2017-06-21 标签系统数据的存储方法和装置 Active CN107330024B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710476509.7A CN107330024B (zh) 2017-06-21 2017-06-21 标签系统数据的存储方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710476509.7A CN107330024B (zh) 2017-06-21 2017-06-21 标签系统数据的存储方法和装置

Publications (2)

Publication Number Publication Date
CN107330024A CN107330024A (zh) 2017-11-07
CN107330024B true CN107330024B (zh) 2020-10-09

Family

ID=60195640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710476509.7A Active CN107330024B (zh) 2017-06-21 2017-06-21 标签系统数据的存储方法和装置

Country Status (1)

Country Link
CN (1) CN107330024B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875077B (zh) * 2018-07-10 2021-02-09 上海达梦数据库有限公司 数据库的列存储方法、装置、服务器及存储介质
CN109189798B (zh) * 2018-09-30 2021-12-17 浙江百世技术有限公司 一种基于spark同步更新数据的方法
CN109446158A (zh) * 2018-11-01 2019-03-08 郑州云海信息技术有限公司 一种数据管理的方法、装置以及存储介质
CN112650477A (zh) * 2020-12-31 2021-04-13 深圳软牛科技有限公司 一种项目数据批量转移方法、装置及电子设备
CN114860684A (zh) * 2021-02-04 2022-08-05 华为技术有限公司 一种流数据存储系统中流数据访问方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205085A (zh) * 2014-06-30 2015-12-30 中兴通讯股份有限公司 一种海量数据的多维分析方法及装置
CN106843763A (zh) * 2017-01-19 2017-06-13 北京神州绿盟信息安全科技股份有限公司 一种基于hdfs系统的文件合并方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970158B (zh) * 2012-11-05 2017-02-08 广东睿江云计算股份有限公司 日志存储与处理的方法及日志服务器
US9477731B2 (en) * 2013-10-01 2016-10-25 Cloudera, Inc. Background format optimization for enhanced SQL-like queries in Hadoop
CN105528367B (zh) * 2014-09-30 2019-06-14 华东师范大学 基于开源大数据对时间敏感数据的存储和近实时查询方法
CN106708917B (zh) * 2016-06-30 2019-03-15 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及olap系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205085A (zh) * 2014-06-30 2015-12-30 中兴通讯股份有限公司 一种海量数据的多维分析方法及装置
CN106843763A (zh) * 2017-01-19 2017-06-13 北京神州绿盟信息安全科技股份有限公司 一种基于hdfs系统的文件合并方法及装置

Also Published As

Publication number Publication date
CN107330024A (zh) 2017-11-07

Similar Documents

Publication Publication Date Title
CN107330024B (zh) 标签系统数据的存储方法和装置
CN110799948B (zh) 针对时间点恢复数据库的数据集的系统和方法
CN104714755B (zh) 一种快照管理方法及装置
US10628270B1 (en) Point-in-time database restoration using a reduced dataset
CN107844388B (zh) 从备份系统流式恢复数据库
US10534759B1 (en) Incremental virtual machine metadata extraction
CN108694195B (zh) 一种分布式数据仓库的管理方法及系统
JP2022534215A (ja) ハイブリッド・インデックス作成方法、システム、プログラム
US20200125660A1 (en) Quick identification and retrieval of changed data rows in a data table of a database
CN108334514B (zh) 数据的索引方法以及装置
US11645161B2 (en) Catalog of files associated with snapshots
US9672113B1 (en) Data recovery from multiple data backup technologies
CN109739828B (zh) 一种数据处理方法、设备及计算机可读存储介质
US11372569B2 (en) De-duplication in master data management
US11422743B2 (en) Distributed storage orphan scan
CN111917834A (zh) 一种数据同步方法、装置、存储介质及计算机设备
US11650967B2 (en) Managing a deduplicated data index
CN108984343B (zh) 一种基于内容分析的虚拟机备份及存储管理方法
US9384068B2 (en) Publishing of an application program interface
EP3620932A1 (en) Method and system for merging data
US8484171B2 (en) Duplicate filtering in a data processing environment
CN113963763B (zh) 医疗数据存储的分区变更方法以及装置
US10242025B2 (en) Efficient differential techniques for metafiles
US10185759B2 (en) Distinguishing event type
CN116628042A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240301

Address after: 518083, Building 8-106, Jinyu Jiuyue Garden (South District), Fumin Community, Fucheng Street, Longhua District, Shenzhen City, Guangdong Province

Patentee after: Huawei Precision Manufacturing Co.,Ltd.

Country or region after: China

Address before: 523808, 2, Xincheng Road, Songshan science and Technology Industrial Park, Guangdong, Dongguan

Patentee before: Huawei Machine Co.,Ltd.

Country or region before: China