本发明专利技术公开了一种存储数据的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:将用户标识进行拆分,得到第一标识和第二标识;将所述第一标识存储至主键,将所述第二标识存储至字段;将所述用户标识对应的标签数据转换为位数组,将所述位数组存储至主键值。该实施方式能够解决数据查询效率低的技术问题。
A method and device for storing data
【技术实现步骤摘要】
一种存储数据的方法和装置
本专利技术涉及计算机
,尤其涉及一种存储数据的方法和装置。
技术介绍
在大数据存储匹配查询场景中,通过布隆过滤器对数据进行存储,以此来对数据进行匹配查询。比如广告投放的场景中,将选择好的标签数据通过在数据库(如hive等)中进行数据筛选,然后将投放人群存储于布隆过滤器当中,以此来达到投放效果的实时性。在算法模型构建中,经常会使用hive或者spark对数据进行存储和使用,来提取模型的特征数据,然后以提取出的特征数据进行模型的匹配。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:在广告投放的场景中,如果投放标签变动,需要重新计算投放的人群,然后将投放人群存储于布隆过滤器中,这样会严重地影响时效性。而且在多个广告主同时投放时,如果投放广告主过多,需要多次访问布隆过滤器,如果存在请求响应延时,会导致投放效率大大降低,并且在投放时如果在选择标签后立刻需要投放,布隆过滤器无法支撑。而在构建算法模型时,如果利用hive或者spark进行特征提取,则会在数据查询阶段浪费许多的时间,而且不能将模型利用在实时计算的场景。
技术实现思路
有鉴于此,本专利技术实施例提供一种存储数据的方法和装置,以解决数据查询效率低的技术问题。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种存储数据的方法,包括:将用户标识进行拆分,得到第一标识和第二标识;将所述第一标识存储至主键,将所述第二标识存储至字段;将所述用户标识对应的标签数据转换为位数组,将所述位数组存储至主键值。可选地,将所述第一标识存储至主键,将所述第二标识存储至字段,包括:采用信息摘要算法计算所述第一标识的第一摘要值,将所述第一摘要值存储至主键;采用信息摘要算法计算所述第二标识的第二摘要值,将所述第二摘要值存储至字段。可选地,所述信息摘要算法为MD5信息摘要算法。可选地,所述用户标识为m+n位数据,所述第一标识为所述用户标识中连续的前m位数据,所述第二标识为所述用户标识中连续的后n位数据。可选地,将所述用户标识对应的标签数据转换为位数组,包括:所述用户标识对应的标签数据中的每一个特征占用位数组中的一个比特位;其中,所述比特位的值表示所述比特位对应的特征是否存在。可选地,所述用户标识为用户设备号、用户手机号或者用户账号。可选地,将所述位数组存储至主键值之后,还包括:对各个主键及其对应的字段进行压缩,得到压缩列表。另外,根据本专利技术实施例的另一个方面,提供了一种存储数据的装置,包括:拆分模块,用于将用户标识进行拆分,得到第一标识和第二标识;第一存储模块,用于将所述第一标识存储至主键,将所述第二标识存储至字段;第二存储模块,用于将所述用户标识对应的标签数据转换为位数组,将所述位数组存储至主键值。可选地,所述第一存储模块还用于:采用信息摘要算法计算所述第一标识的第一摘要值,将所述第一摘要值存储至主键;采用信息摘要算法计算所述第二标识的第二摘要值,将所述第二摘要值存储至字段。可选地,所述信息摘要算法为MD5信息摘要算法。可选地,所述用户标识为m+n位数据,所述第一标识为所述用户标识中连续的前m位数据,所述第二标识为所述用户标识中连续的后n位数据。可选地,所述第二存储模块还用于:所述用户标识对应的标签数据中的每一个特征占用位数组中的一个比特位;其中,所述比特位的值表示所述比特位对应的特征是否存在。可选地,所述用户标识为用户设备号、用户手机号或者用户账号。可选地,所述第二存储模块还用于:将所述位数组存储至主键值之后,对各个主键及其对应的字段进行压缩,得到压缩列表。根据本专利技术实施例的另一个方面,还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。根据本专利技术实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用将用户标识进行拆分为第一标识和第二标识,将第一标识存储至主键,将第二标识存储至字段,将标签数据转换为位数组后存储至主键值的技术手段,所以克服了现有技术中数据查询效率低的技术问题。本专利技术实施例将bitMap与Redis的HashMap存储结合,不但可以提高数据以主键进行查询时的查询效率,以达到毫秒级反馈速度,还可以显著提高数据的存储效率。本专利技术实施例尤其适用于大数据存储匹配查询场景,需要标签化处理的大存储量数据,并且需要支持高并发查询请求,要求限制在毫秒级查询数据请求的需求等场景。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的存储数据的方法的主要流程的示意图;图2是根据本专利技术实施例的bitMap数据结构的示意图;图3是根据本专利技术实施例的Hash表链表的示意图;图4是根据本专利技术一个可参考实施例的存储数据的方法的主要流程的示意图;图5是根据本专利技术另一个可参考实施例的存储数据的方法的主要流程的示意图;图6是根据本专利技术实施例的存储数据的装置的主要模块的示意图;图7是本专利技术实施例可以应用于其中的示例性系统架构图;图8是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。为了解决现有技术中存在的技术问题,本专利技术实施例提供了一种存储数据的方法,该方法将bitMap与Redis的HashMap存储结合,不但能够提高查询效率,还可以解决存储效率低下的问题。图1是根据本专利技术实施例的存储数据的方法的主要流程的示意图。作为本专利技术的一个实施例,如图1所示,所述存储数据的方法可以包括:步骤101,将用户标识进行拆分,得到第一标识和第二标识。在该步骤中,首先将用户标识拆分为第一标识和第二标识,可以减少主键的数量,从而提高存储效率。可选地,所述用户标识为用户设备号、用户手机号或者用户账号。可选地,所述用户标识为m+n位数据,所述第一标识为所述用户标识中连续的前m位数据,所述第二标识为所述用户标识中连续的后n位数据。如果用户标识为32位,则可以将该32位的用户标识拆分为包含前本文档来自技高网...
【技术保护点】
1.一种存储数据的方法,其特征在于,包括:/n将用户标识进行拆分,得到第一标识和第二标识;/n将所述第一标识存储至主键,将所述第二标识存储至字段;/n将所述用户标识对应的标签数据转换为位数组,将所述位数组存储至主键值。/n
【技术特征摘要】
1.一种存储数据的方法,其特征在于,包括:
将用户标识进行拆分,得到第一标识和第二标识;
将所述第一标识存储至主键,将所述第二标识存储至字段;
将所述用户标识对应的标签数据转换为位数组,将所述位数组存储至主键值。
2.根据权利要求1所述的方法,其特征在于,将所述第一标识存储至主键,将所述第二标识存储至字段,包括:
采用信息摘要算法计算所述第一标识的第一摘要值,将所述第一摘要值存储至主键;
采用信息摘要算法计算所述第二标识的第二摘要值,将所述第二摘要值存储至字段。
3.根据权利要求2所述的方法,其特征在于,所述信息摘要算法为MD5信息摘要算法。
4.根据权利要求1所述的方法,其特征在于,所述用户标识为m+n位数据,所述第一标识为所述用户标识中连续的前m位数据,所述第二标识为所述用户标识中连续的后n位数据。
5.根据权利要求1所述的方法,其特征在于,将所述用户标识对应的标签数据转换为位数组,包括:
所述用户标识对应的标签数据中的每一个特征占用位数组中的一个比特位;
其中,所述...
【专利技术属性】
技术研发人员:刘洋,
申请(专利权)人:京东数字科技控股有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。