数据存储、查询方法和装置的制造方法

文档序号:8259947阅读:211来源:国知局
数据存储、查询方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及计算机技术,尤其涉及一种数据存储、查询方法和装置。
【背景技术】
[0002]在营销管理系统中,一般会提供基于海量客户属性提取客户群,作为营销目标客户。客户属性的存储和查找方式,影响了提取客户群和分析客户群特征的效率。
[0003]在现有技术中,每个属性集存储于一列中,所有客户的每个属性分别用一个空间存储,作为一列,称为列式存储。通过行号记录行关系。类似如下:给每个时期的每个客户分配一个序号,每个属性有一个表格保存属性值及对应的序号。提取客户群或分析特征时,扫描条件列,根据指定的条件过滤。两个以上的条件时,取多列行号的交集或并集等,得到符合条件的客户。而在另一种行式存储为,每个时期每个客户的所有属性分配一个空间存储,作为一行。类似于每个客户,有一个相同格式的表格,分时期记录了客户数据的不同属性,例如语音用量、流量用量、短信用量等属性。在行式存储方式下进行数据查找时,首先需要选择一个时期,在该时期的每个客户的存储空间内逐个扫描,直到找到需要的属性取值。为避免属性较多时,顺序读行扫描太多与查询条件无关的属性,有时系统会将一个客户的属性分到多个空间存储,经常同时用的放在一起。考虑到可能增加的增加表关联风险,不会分太多组。类似把300个属性,分成3组,可从属性所在组的开头查找,直到找到需要的属性值。提取客户群时,根据条件,扫描指定的一个或几个时期分区,根据指定的条件过滤,得到符合条件的客户。
[0004]然而在现有技术中,列式存储的方式中,数据的存储是按照属性进行存储的,数据存储较为庞杂,在需要查找某个时间段的数据时需要对该属性的存储列进行逐行扫描,在扫描过程中会出现大量无关时段数据的扫描,增加了数据输入输出(Input/Output,简称10)的时间。行式存储的方式中,数据的存储是按照时期进行存储的,在需要查找某一属性数据时,会扫描大量无关属性,增加1时间。

【发明内容】

[0005]本发明实施例提供一种数据存储、查询方法和装置,以解决现有技术中数据存储较为庞杂,以致在扫描过程中会出现大量无关列、无关时段数据的扫描,增加了数据1的时间的问题。
[0006]第一方面,本发明实施例提供一种数据存储方法,其特征在于,包括:
[0007]将多个用户的身份信息存储于用户身份信息属性列文件,所述用户身份信息属性列文件中每一行存储一个用户的身份信息;
[0008]按照时间周期将所述多个用户的使用数据分别存储于不同的数据分区的使用数据属性列文件中,所述使用数据属性列文件中每一行存储一个所述用户的一个属性的使用数据;
[0009]其中,所述数据分区中包括至少一个使用数据属性列文件,各使用数据属性列文件的每一行的存储空间为一固定长度,每一用户的不同属性的使用数据分别存储于所述数据分区中不同的使用数据属性列文件中,所述使用数据属性列文件的使用数据的存储顺序与所述用户身份信息属性列文件中用户的身份信息的存储顺序相同。
[0010]结合第一方面,在第一方面的第一种可能的实现方式中,所述使用数据属性列文件的使用数据的存储顺序与所述用户身份信息属性列文件中用户的身份信息的存储顺序相同具体包括:
[0011]存储所述用户的使用数据的行对应的偏移单元格数量和存储所述用户的身份信息的行对应的偏移单元格数量相同。
[0012]结合第一方面,在第一方面的第二种可能的实现方式中,若所述多个用户的至少一个属性的使用数据包括多个不同偏好类别的使用数据,所述方法还包括:
[0013]将各用户的所述多个不同偏好类别的使用数据依次存储于所述属性的偏好使用数据属性列文件中,所述属性的偏好使用数据属性列文件中每一行存储一个所述用户的一个偏好类别的使用数据;
[0014]将各用户的所述多个不同偏好类别的使用数据对应的偏好类别标识依次存储于偏好类别标识属性列文件中,并将所述多个不同偏好类别的使用数据的用户的身份信息存储于多维数据用户身份属性列文件中;
[0015]其中,所述偏好使用数据属性列文件中偏好类别的使用数据的存储顺序与所述偏好类别标识属性列文件中偏好类别标识的存储顺序相同,且与所述多维数据用户身份属性列文件中用户的身份信息的存储顺序相同;
[0016]根据各用户的所述多个不同偏好类别的使用数据的个数获取所述用户的所述多个不同偏好类别的使用数据的存储结束位置信息,将各用户的存储结束位置信息存储于存储结束位置信息属性列文件中,所述存储结束位置信息属性列文件中每一行存储一个所述用户的一个存储结束位置信息;
[0017]其中,所述存储结束位置信息属性列文件中存储结束位置信息的存储顺序与所述用户身份信息属性列文件中用户的身份信息的存储顺序相同。
[0018]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述存储结束位置信息属性列文件中存储结束位置信息的存储顺序与所述用户身份信息属性列文件中用户的身份信息的存储顺序相同具体包括:
[0019]存储所述用户的存储结束位置信息的行对应的偏移单元格数量和存储所述用户的身份信息的行对应的偏移单元格数量相同。
[0020]结合第一方面、第一方面的第一种至第三种任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:
[0021]将所述多个用户的新增使用数据按时间周期存储于新增数据分区中,所述新增数据分区中包括至少一个新增使用数据属性列文件,将所述新增使用数据的不同属性数据分别存储于各新增使用数据属性列文件中,所述新增使用数据属性列文件中每一行存储一个所述用户的一个属性的新增使用数据;
[0022]其中,各新增使用数据属性列文件的每一行的存储空间为一固定长度,所述新增数据分区中新增使用数据属性列文件的新增使用数据的存储顺序与所述用户身份信息属性列文件中用户的身份信息的存储顺序相同。
[0023]结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,若在所述新增数据分区所属的时间周期内存在新增用户的使用数据,所述方法还包括:
[0024]将新增用户的身份信息存储于所述用户身份信息属性列文件的尾部,获取新用户身份信息属性列文件;
[0025]将所述新增用户的使用数据存储于所述新增数据分区中,所述新增用户的使用数据的不同属性数据分别存储于所述新增使用数据属性列文件中;
[0026]其中,所述新增使用数据属性列文件的新增使用数据的存储顺序与所述新用户身份信息属性列文件中用户的身份信息存储顺序相同,所述新增使用数据包括所述多个用户的新增使用数据和所述新增用户的新增使用数据。
[0027]结合第一方面,在第一方面的第六种可能的实现方式中,所述方法还包括:
[0028]根据所述用户身份信息属性列文件中的多个用户的身份信息建立所述用户的用户索引,各用户索引与所述用户身份信息属性列文件中的各用户的身份信息一一对应;
[0029]获取新增用户的身份信息,根据所述各用户的用户索引判断所述新增用户的身份信息是否存在于所述用户身份信息属性列文件中;
[0030]若否,则将所述新增用户的身份信息存储于所述用户身份信息属性列文件的尾部,将所述新增用户的新增使用数据存储于新增数据分区中。
[0031]第二方面,本发明实施例提供一种利用第一方面、第一方面的第一种至第六种任一种可能的实现方式实现数据查询的方法,包括:
[0032]获取查询条件,所述查询条件包括至少一个属性条件和至少一个时间条件;
[0033]根据所述至少一个时间条件查找与各时间条件对应的数据分区,在各数据分区中根据所述至少一个属性条件获取与各属性条件对应的数据属性列文件,所述数据属性列文件包括使用数据属性列文件和偏好使用数据属性列文件;
[0034]依次遍历所述与各属性条件对应的数据属性列文件的相同所有行,查找符合所述查询条件的用户的使用数据。
[0035]结合第二方面,在第二方面的第一种可能的实现方式中,若所述与各属性条件对应的数据属性列文件均为使用数据属性列文件,所述依次遍历所述与各属性条件对应的数据属性列文件的相同所有行,查找符合所述查询条件的用户的使用数据,具体包括:
[0036]分别将各数据分区的与各属性条件对应的使用数据属性列文件中的相同行作为虚拟行,获取各虚拟行中的用户的使用数据,判断所述各虚拟行中的用户的使用数据是否符合所述查询条件;
[0037]若是,则记录符合所述查询条件的虚拟行中的用户的使用数据对应的身份信息,获取查询结果用户群。
[0038]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述记录符合所述查询条件的虚拟行中的用户的使用数据对应的身份信息,获取查询结果用户群,包括:
[0039]获取符合所述查询条件的虚拟行中的用户的使用数据在所述使用数据属性列文件中的第一位置,在所述用户身份信息属性中获取所述第一位置处的用户的身份信息,记录所述用户的身份信息,获取查询结果用户群。
[0040]结合第二方面,在第二方面的第三种可能的实现方式中,若所述与各属性条件对应的数据属性列文件均为偏好使用数据属性列文件,所述依次遍历所述与各属性条件对应的数据属性列文件的相同所有行,查找符合所述查询条件的用户的使用数据,具体包括:
[0041]分别将各数据分区的与各属性条件对应的偏好使用数据属性列文件中的相同行作为虚拟行,获取各虚拟行中的用户的使用数据,判断所述各虚拟行中的用户的使用数据是否符合所述查询条件;
[0042]若是,则记录符合所述查询条件的虚拟行中的用户的使用数据对应的身份信息,获取查询结果用户群。
[0043]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述记录符合所述查询条件的虚拟行中的用户的使用数据对应的身份信息,获取查询结果用户群,包括:
[0044]获取符合所述查询条件的虚拟行中的用户的使用数据在所述偏好使用数据属性列文件中的第二位置,在所述多维数据用户身份属性列文件中获取所述第二位置处的用户的身份信息,记录所述用户的身份信息,获取查询结果用户群。
[0045]结合第二方面,在第二方面的第五种可能的实现方式中,若所述与各属性条件对应的数据属性列文件包括使用数据属性列文件和偏好使用数据属性列文件,所述依次遍历所述与各属性条件对应的数据属性列文件的相同所有行,查找符合所述查询条件的用户的使用数据,具体包括:
[0046]分别将各数据分区的与属性条件对应的使用数据属性列文件中的相同行作为第一子虚拟行,分别将各数据分区中的与属性条件对应的偏好使用数据属性列文件中的相同行作为第二子虚拟行;
[0047]若所述第一子虚拟行对应的用户的身份信息与所述第二子虚拟行对应的用户的身份信息相同,则将所述第一子虚拟行和所述第二子虚拟行作为虚拟行;
[0048]获取各虚拟行中的用户的使用数据,判断所述各虚拟行中的用户的使用数据是否符合所述查询条件;
[0049]若是,则记录符合所述查询条件的虚拟行中的用户的使用数据对应的身份信息,获取查询结果用户群。
[0050]结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述若所述第一子虚拟行对应的用户的身份信息与所述第二子虚拟行对应的用户的身份信息相同,则将所述第一子虚拟行和所述第二子虚拟行作为虚拟行,之前还包括:
[0051]在所述用户身份信息属性列文件中获取所述第一子虚拟行对应的用户的身份信息,在所述多维数据用户身份属性列文件中获取所述第二子虚拟行对应的用户的身份信息;
[0052]判断所述第一子虚拟行对应的用户的身份信息与所述第二子虚拟行对应的用户的身份信息是否相同。
[0053]结合第二方面的第二种或第四种可能的实现方式,在第二方面的第七种可能的实现方式中,所述第一位置或所述第二位置为偏移单元格数量。
[0054]结合第二方面、第二方面的第一种至第六种任一种可能的实现方式,在第二方面的第八种可能的实现方式中,所述方法还包括:
[0055]获取所述查询结果用户群的属性分析请求,所述属性分析请求包括至少一个属性信息;
[0056]根据所述属性分析请求中的属性信息获取所述属性对应的数据属性列文件,在所述数据属性列文件中获取所述查询结果用户群中各用户的身份信息对应的使用数据,对所述使用数据进行统计分析获取用户属性分析结果。
[0057]第三方面,本发明实施例提供一种数据存储装置,包括:
[0058]身份信息存储模块,用于将多个用户的身份信息存储于用户身份信息属性列文件,所述用户身份信息属性列文件中每一行存储一个用户的身份信息;
[0059]数据存储模块,用于按照时间周期将多个用户的使用数据分别存储于不同的数据分区的使用数据属性列文件中,所述使用数据属性列文件中每一行存储一个所述用户的一个属性的使用数据;
[0060]其中,所述数据分区中包括至少一个使用数据属性列文件,各使用数据属性列文件的每一行的存储空间为一固定长度,每一用户的不同属性的使用数据分别存储于所述数据分区中不同的使用数据属性列文件中,所述使用数据属性列文件的使用数据的存储顺序与所述用户身份信息属性列文件中用户的身份信息的存储顺序相同。
[0061]结合第三方面,在第三方面的第一种可能的实现方式中,所述使用数据属性列文件的使用数据的存储顺序与所述用户身份信息属性列文件中用户的身份信息的存储顺序相同具体包括:
[0062]存储所述用户的使用数据的行对应的偏移单元格数量和存储所述用户的身份信息的行对应的偏移单元格数量相同。
[0063]结合第三方面,在第三方面的第二种可能的实现方式中,若所述多个用户的至少一个属性的使用数据包括多个不同偏好类别的使用数据,所述数据存储模块还用于:
[0064]将各用户的所述多个不同偏好类别的使用数据依次存储于所述属性的偏好使用数据属性列文件中,所述属性的偏好使用数据属性列文件中每一行存储一个所述用户的一个偏好类别的使用数据;
[0065]将各用户的所述多个不同偏好类别的使用数据对应的偏好类别标识依次存储于偏好类别标识属性列文件中,并将所述多个不同偏好类别的使用数据的用户的身份信息存储于多维数据用户身份属性列文件中;
[0066]其中,所述偏好使用数据属性列文件中偏好类别的使用数据的存储顺序与所述偏好类别标识属性列文件中偏好类别标识的存储顺序相同,且与所述多维数据用户身份属性列文件中用户的身份信息的存储顺序相同;
[0067]根据各用户的所述多个不同偏好类别的使用数据的个数获取所述用户的所述多个不同偏好类别的使用数据的存储结束位置信息,将各用户的存储结束位置信息存储于存储结束位置信息属性列文件中,所述存储结束位置信息属性列文
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1