用户画像标签数据的处理方法技术

技术编号:34626708 阅读:44 留言:0更新日期:2022-08-20 09:35
一种用户画像标签数据的处理方法,包括:生成用于存储用户画像标签的数据库,其中所述用于存储用户画像标签的数据库至少包括:用于存储原始数据的原始数据实时表、用于存储用户数据的用户字典表、用于存储用户以及对应的用户画像标签的用户标签表;其中所述原始数据实时表用于供应用服务写入新产生的用户id和用户画像标签id;且所述原始数据实时表还用于将原始数据增量聚合到用户标签表;其中所述用户字典表用于存储用户id;其中所述用户标签表以标签tag_id为维度,用于标识出每一用户对应的用户画像标签;其中该用户标签表用于为系统提供检索服务。供检索服务。供检索服务。

【技术实现步骤摘要】
用户画像标签数据的处理方法


[0001]本专利技术提出了一种数据处理方法,特别是指用户画像标签数据的处理方法。

技术介绍

[0002]用户画像目标是在更细致的维度上,通过属性标签对用户或商户的偏好、需求、倾向进行数字化勾勒的技术。用户画像可以进一步发掘用户需求,分析用户偏好,从而提供给用户更具有针对性的信息推送和提高用户的使用体验。用于描述用户画像的属性标签,是依据用户的注册数据、操作行为数据、交易数据等作为数据来源,并通过可自学习自进化的算法进行开放的归属和归入,通过数据在分类归属中的分布规律作为标签属性。
[0003]用户画像的基础为构建标签库,利用现有关系型数据库构建的用户标签库主要基于宽表结构和数组结构等数据类型;但是现有的关系型数据库对于用户画像的标签存储具有明显的优势和劣势:
[0004](1)宽表结构数据类型实现的优点是大多数数据库都支持,但宽表列宽受限于数据块的页大小。以PostGreSQL数据库8kb数据库块为例,该数据库包含:主键、用户id、创建时间、修改时间等必要字段外,仅能存储约不超过2000个标签tag字段;当条件组合查询时效率会出现大幅度下降;
[0005](2)数组结构数据类型实现标签可支持更高的tag标签位,但不支持not语法索引查询,且占用存储空间较高。

技术实现思路

[0006]针对现有的针对用户画像的标签进行数据处理的数据库存在着效率低的问题,本专利技术实施例的目的是提出一种用户画像标签数据的处理方法,能够更为快捷的对用户画像标签数据局进行处理。
[0007]为了达到上述目的,本专利技术实施例提出了一种用户画像标签数据处理方法,包括:
[0008]生成用于存储用户画像标签的数据库,其中所述用于存储用户画像标签的数据库至少包括:用于存储原始数据的原始数据实时表、用于存储用户数据的用户字典表、用于存储用户以及对应的用户画像标签的用户标签表;
[0009]其中所述原始数据实时表用于供应用服务写入新产生的用户id和用户画像标签id;且所述原始数据实时表还用于将原始数据增量聚合到用户标签表;其中所述原始数据实时表至少包括:
[0010]字段主键id、组织机构id、用户id、标签tag_id;其中字段主键id采用自增int8类型,其中标签tag_id采用int类型;且所述原始数据实时表还包括两个布尔型标志位:标识是否删除,是否合并用户字典表;
[0011]其中所述用户字典表至少包括以下字段:
[0012]用户的唯一标识user_id字段,其中所述user_id字段为int类型,每一user_id字段占8字节空间;
[0013]用户组织机构唯一标识org_id字段,用于表示用户所属单位;其中所述org_id字段为int类型,每一org_id字段占8字节空间;当可用于数据表超过100GB后按组织机构分表,行号row_id为int类型,占8字节空间;
[0014]其中所述用户标签表以标签tag_id为维度,用于标识出每一用户对应的用户画像标签;其中该用户标签表用于为系统提供圈人推送等服务;
[0015]其中该用户标签表包括以下字段:自增整数主键id,标签唯一标识,组织机构唯一标识、用户唯一标识聚合列user_ids;其中可变字串数据类型的用户唯一标识聚合列user_ids采用varbit类型,存储用户字典表中按照rowid顺位的比特字串。
[0016]在一种可能的实现方式中,所述方法还包括:将原始数据实时表中的用户原始数据,合并到用户标签表中;具体包括:
[0017]获取用户实时数据表中的未更新的原始数据,根据未更新的原始数据更新用户字典表中的用户的唯一标识user_id字段,然后再将数据增量聚合到用户标签表。
[0018]在一种可能的实现方式中,其中所述将原始数据实时表中的用户原始数据合并到用户标签表中的步骤,采用一个事务中完成;即单独标签为一个进程并发执行。
[0019]在一种可能的实现方式中,其中所述将原始数据实时表中的用户原始数据合并到用户标签表中的步骤,包括:
[0020]获取用户实时的原始数据;
[0021]获取该原始数据中的用户画像标签,判断该用户画像标签是否存在用户标签表中;如果不存在则在该用户标签表中增加一列新的用户画像标签。
[0022]在一种可能的实现方式中,所述方法还包括:
[0023]当查询方式为:选择了一个tag,需要列出所有具有该tag的用户;则输入为tagid,输出为用户id;此时需要对用户字典表和用户标签表联合进行查询:
[0024]首先使用set_bit_array自订函数,对用户标签表对所需tag进行对齐,即获取最大的标签tag的用户rowid字串长度;如果用户没有此标签时,则将该用户rowid字串中的末尾补0;然后对所选tag取出的用户id在字典表中的行号取并集,得到符合所选tag组的全部为1的rowid的数组,然后关联用户字典表取得用户id。
[0025]在一种可能的实现方式中,所述方法还包括:当查询方式为:列出一个用户的所有tag,则通过get_bit函数,取得所述所有tag中该用户对应字串中的该用户rowid位为1的标签。
[0026]在一种可能的实现方式中,所述用于存储用户画像标签的数据库为以用户画像标签为基本维度生成的基于PostGreSQL的数据库,所述数据库为通过变长位串来存储用户ID,且所述数据库中存储有每一个用户ID对应的标签tag;其中所述数据库中存储有每一用户ID对应的用户画像标签tag。
[0027]在一种可能的实现方式中,所述方法还包括:创建用于辅助读写存储用户ID的可变长位串的函数,其中所述函数包括:
[0028]函数get_bit(varbit,int,int)returns varbit;用于从指定位置开始获取N个BIT位,返回varbit;
[0029]函数set_bit_array(varbit,int,int,int[])returns varbit;用于将指定位置的BIT设置为0|1,超出原始长度的部分填充0|1;
[0030]函数bit_count(varbit,int,int,int)returns int;用于从第n位开始,统计N个BIT位中有多少个0或1,如果N超出长度,则只计算已经存在的;
[0031]函数bit_count(varbit,int)returns int;用于统计出整个比特串bit string中1|0的个数;
[0032]函数bit_fill(int,int)returns varbit;用于在比特串bit string中填充指定长度的0或1;
[0033]函数bit_rand(int,int,float)returns varbit;用于在比特串bit string中填充指定长度的随机bit,并指定1或0的随机比例;
[0034]函数bit_posite(varbit,in本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用户画像标签数据的处理方法,包括:生成用于存储用户画像标签的数据库,其中所述用于存储用户画像标签的数据库至少包括:用于存储原始数据的原始数据实时表、用于存储用户数据的用户字典表、用于存储用户以及对应的用户画像标签的用户标签表;其中所述原始数据实时表用于供应用服务写入新产生的用户id和用户画像标签id;且所述原始数据实时表还用于将原始数据增量聚合到用户标签表;其中所述原始数据实时表至少包括:字段主键id、组织机构id、用户id、标签tag_id;其中字段主键id采用自增int8类型,其中标签tag_id采用int类型;且所述原始数据实时表还包括两个布尔型标志位:标识是否删除,是否合并用户字典表;其中所述用户字典表至少包括以下字段:用户的唯一标识user_id字段,其中所述user_id字段为int类型,每一user_id字段占8字节空间;用户组织机构唯一标识org_id字段,用于表示用户所属单位;其中所述org_id字段为int类型,每一org_id字段占8字节空间;当可用于数据表超过100GB后按组织机构分表,行号row_id为int类型,占8字节空间;其中所述用户标签表以标签tag_id为维度,用于标识出每一用户对应的用户画像标签;其中该用户标签表用于为系统提供检索服务;其中该用户标签表包括以下字段:自增整数主键id,标签唯一标识,组织机构唯一标识、用户唯一标识聚合列user_ids;其中可变字串数据类型的用户唯一标识聚合列user_ids采用varbit类型,存储用户字典表中按照rowid顺位的比特字串。2.根据权利要求1所述的用户画像标签数据的处理方法,其特征在于,所述方法还包括:将原始数据实时表中的用户原始数据,合并到用户标签表中;具体包括:获取用户实时数据表中的未更新的原始数据,根据未更新的原始数据更新用户字典表中的用户的唯一标识user_id字段,然后再将数据增量聚合到用户标签表。3.根据权利要求2所述的用户画像标签数据的处理方法,其特征在于,其中所述将原始数据实时表中的用户原始数据合并到用户标签表中的步骤,采用一个事务中完成;即单独标签为一个进程并发执行。4.根据权利要求3所述的用户画像标签数据的处理方法,其特征在于,其中所述将原始数据实时表中的用户原始数据合并到用户标签表中的步骤,包括:获取用户实时的原始数据;获取该原始数据中的用户画像标签,判断该用户画像标签是否存在用户标签表中;如果不存在则在该用户标签表中增加一列新的用户画像标签。5.根据权利要求1所述的用户画像标签数据的处理方法,其特征在于,所述方法还包括:当查询方式为:选择了一个tag,需要列出所有具有该tag的用户;则输入为tagid,输出为用户id;此时需要对用户字典表和用户标签表联合进行查询:首先使用set_bit_array自订函数,对用户标签表对所需t...

【专利技术属性】
技术研发人员:佘家驹马胜奎刘超肖龙靳京李昕吴泽成
申请(专利权)人:国网综合能源服务集团有限公司国家电网有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1