标签系统数据的存储方法和装置
技术领域
本申请涉及数据处理领域,尤其涉及一种标签系统数据的存储方法和装置。
背景技术
在大数据时代,为方便数据分析和信息挖掘,数据越来越多的以标签系统的形式存储。用户标签系统是一种常见的标签系统应用,用户标签可用于对用户进行精准快速的分析和画像。
标签系统中的数据存储和分析多采用大数据生态系统(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
S14、对融合列族文件中的主标签列进行去冗余操作,得到列族总表。
示例性的,对表4中的姓名列进行一次reduceByKey操作,得到如表3所示的表格。
S15、将列族总表注册为临时表,在临时表上执行查询请求中的分析语句。
示例性的,用spark的sqlContext将该列族总表注册为临时表,该临时表就可以支持任意的sql分析以及任意的基于spark的分析方法。
可选的,在上述任一实施例的基础上,参照图4所示的时间序列目录,本申请实施例还提供基于时间序列的数据分析。例如,获取列族文件的所有版本,并融合在一个表格中,从而方便分析用户属性,例如收入随着时间的变化情况。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。