CN114969043A - 标签存储方法、装置、设备及存储介质 - Google Patents
标签存储方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114969043A CN114969043A CN202210601741.XA CN202210601741A CN114969043A CN 114969043 A CN114969043 A CN 114969043A CN 202210601741 A CN202210601741 A CN 202210601741A CN 114969043 A CN114969043 A CN 114969043A
- Authority
- CN
- China
- Prior art keywords
- label
- bitmap
- tag
- query
- compressed
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及人工智能技术,揭露了一种标签存储方法,包括:利用基础数据构建标签模型表;将每个标签模型表存储到预设的空白的位图中,获取每个标签模型表在位图中的位置信息,拼接多个标签模型表,得到汇总标签模型表,根据汇总标签模型表及位置信息生成标签位图,并将标签位图进行行列转置,生成转换标签位图;将标签位图进行压缩,得到压缩标签位图,及将转换标签位图进行压缩,得到压缩转换标签位图,将压缩标签位图存储到缓存中,以及将压缩转换标签位图存储到数据库中。此外,本发明还涉及区块链技术,标签模型表可存储于区块链的节点。本发明还提出一种标签存储装置、电子设备存储介质。本发明可以减少标签存储压力。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种标签存储方法、装置、电子设备及计算机可读存储介质。
背景技术
随着经济社会的发展,针对不同的用户群体进行精准营销,可以提高企业竞争力,降低用户的购买成本,提高用户的购物体验。
标签系统是进行精准营销的基础,目前,用户群体一般都是通过不同的用户标签进行划分的,比如按照学历,将用户划分为专科、本科、研究生、博士等;按照性别将用户划分为男或女等。
这种方案在数据量大且标签数量比较多的时候,会造成存储膨胀。此外,当标签数量到达几万个时,容易造成存储的输入输出过高,存储压力过大,进而造成查询超时或服务不可用。进一步,由于查询时有缓存机制,每次加入缓存的标签数量很多,使缓存的压力也比较大,很容易导致慢查询。
综上所述,目前标签存储压力大。
发明内容
本发明提供一种标签存储方法、装置及计算机可读存储介质,其主要目的在于解决标签存储压力大的问题。
为实现上述目的,本发明提供的一种标签存储方法,包括:
获取用户的基础数据,将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表;
将每个所述标签模型表存储到预设的空白的位图中,获取每个所述标签模型表在所述位图中的位置信息,拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,并将所述标签位图进行行列转置,生成转换标签位图;
将所述标签位图进行压缩,得到压缩标签位图,及将所述转换标签位图进行压缩,得到压缩转换标签位图,将所述压缩标签位图存储到预设的缓存中,以及将所述压缩转换标签位图存储到预设的数据库中。
可选地,所述将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表,包括:
从所述用户的基础数据中提取标签、标签值;
统计所述标签的数量得到列数量;
根据所述列数量构建空白标签数据表;
对所述标签值执行统一化处理,并将所述统一化处理后的标签值填充到所述空白标签数据表,得到所述用户对应的多个标签模型表。
可选地,所述将每个所述标签模型表存储到预设的空白的位图中之前,所述方法还包括:
利用预设的编号转换规则,在所述标签模型表中将所述基础数据中的用户名转化为用户编号;
统计所述标签模型表中标签及用户编号的数量,根据所述标签及所述用户编号的数量构建空白的位图;
构建所述空白的位图中位图位置与所述用户编号之间的映射关系分配机制,其中,所述映射关系分配机制为所述用户编号与所述位图位置的对应关系,用于查询时回填所述标签。。
可选地,所述拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,包括:
利用左连接命令将所述多个标签模型表进行拼接,得到汇总标签模型表;
利用所述汇总标签模型表及所述位置信息,生成hivesql查询语句;
将所述hivesql查询语句转换为MapReduce任务,并执行所述MapReduce任务,生成标签位图。
可选地,所述将所述标签位图进行压缩,得到压缩标签位图,包括:
利用自定义udf函数,将所述标签位图中二进制字符串每八位转换成一个字节,得到字节数组;
将所述字节数组通过base64编码规则转化为压缩标签位图。
可选地,所述将所述压缩转换标签位图存储到预设的数据库中之后,所述方法还包括:
在接收到标签查询请求时,提取所述标签查询请求中的查询用户名、多个查询标签以及所述多个查询标签相互之间的逻辑关系;
利用预设的编号转换规则将所述查询用户名转换为查询用户编号;
判断预设的缓存中是否存在与所述查询用户编号对应的压缩标签位图;
当所述缓存中存在与所述查询用户编号对应的压缩标签位图,根据所述查询用户编号对应的压缩标签位图输出查询结果;
当所述缓存中不存在与所述查询用户编号对应的压缩标签位图,利用所述查询标签从所述预设数据库中查询对应的压缩转换标签位图,得到查询标签数据;
利用所述多个查询标签相互之间的逻辑关系对所述查询标签数据进行运算,得到查询结果。
可选地,所述利用所述多个查询标签相互之间的逻辑关系对所述查询标签数据进行运算,得到查询结果,包括:
将所述查询标签进行分类得到对应的标签类别,将相同标签类别的查询标签之间用预设的第一逻辑运算符连接,得到查询标签模块;
将所有所述查询标签模块之间用预设的第二逻辑运算符连接,得到查询逻辑公式;
利用所述查询逻辑公式对所述查询标签数据进行运算,得到初始查询结果;
对所述初始查询结果进行二进制还原,得到查询结果。
为了解决上述问题,本发明还提供一种标签存储装置,所述装置包括:
标签模型表创建模块,用于获取用户的基础数据,将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表;
位图生成模块,用于将每个所述标签模型表存储到预设的空白的位图中,获取每个所述标签模型表在所述位图中的位置信息,拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,并将所述标签位图进行行列转置,生成转换标签位图;
位图压缩模块,用于将所述标签位图进行压缩,得到压缩标签位图,及将所述转换标签位图进行压缩,得到压缩转换标签位图,将所述压缩标签位图存储到预设的缓存中,以及将所述压缩转换标签位图存储到预设的数据库中。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述所述的标签存储方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的标签存储方法。
本发明实施例将用户的标签值标准化为二进制格式后,根据所述基础数据构建所述用户的标签模型表,将所述标签模型表进行拼接并转化为标签位图,并将所述标签位图进行行列转置,生成转换标签位图;对所述标签位图及转换标签位图进行压缩,得到压缩标签位图及压缩转换标签位图,降低了数据表的大小,从而降低数据表的存储压力,将所述压缩标签位图存储到预设的缓存中,以及将所述压缩转换标签位图存储到预设的数据库中,当缓存中存在对应的压缩标签位图时,可以直接从缓存中获取数据,减少查询的速度。因此本发明提出的标签存储方法、装置、电子设备及计算机可读存储介质,可以解决解决标签存储压力大的问题。
附图说明
图1为本发明一实施例提供的标签存储方法的流程示意图;
图2及图3为本发明一实施例提供的标签模型表的示意图;
图4为图1所示标签存储方法中其中一个步骤的详细实施流程示意图;
图5为本发明一实施例提供的标签位图的示意图;
图6为本发明一实施例提供的压缩标签位图的示意图;
图7为本发明一实施例提供的标签存储装置的功能模块图;
图8为本发明一实施例提供的实现所述标签存储方法的电子设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例提供一种标签存储方法。所述标签存储方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述标签存储方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
参照图1所示,为本发明一实施例提供的标签存储方法的流程示意图。
在本实施例中,所述标签存储方法包括:
S1、获取用户的基础数据,将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表;
本发明实施例中,所述基础数据可以为用户群体中每个用户的所有相关数据,包含:用户名,标签,标签值等,所述标签是一种内容组织方式,用于表征数据的某一特征,以帮助人们描述和分类内容,比如,常见的标签有性别、学历、职业等。可选地,所述标签是人为规定的。本发明其中一个实施例中,所述标签可以包括枚举类标签,布尔类标签等不同类型。所述枚举类标签是指包括多个枚举值的标签,比如:学历包括专科、本科、研究生、博士等,又比如性别包括男或女;而所述布尔类标签只用于表示是否具备该标签,只有是否两种值,比如:是否有房、是否是程序员、是否有过犯罪记录等。所述布尔类标签值可以用0/1,Y/N来标记。
详细地,所述将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表,包括:
从所述用户的基础数据中提取标签、标签值;
统计所述标签的数量得到列数量;
根据所述列数量构建空白标签数据表;
对所述标签值执行统一化处理,并将所述统一化处理后的标签值填充到所述空白标签数据表,得到所述用户对应的多个标签模型表。
本发明其中一个实施例中,所述标签模型表包括:用户编号、对应的标签及标签值。本发明实施例中所述对所述标签值执行统一化处理是将所述基础数据中的标签值统一为二进制格式,如0及1的格式。例如,基础数据为:用户A是80后男性程序员,则对应的标签为:80后、男性、程序员,则将所述基础数据进行统一化处理,构建如图2所示的标签模型表,又如基础数据为:用户B是90后男性程序员,则对应的标签为:80后、男性、程序员,将所述基础数据进行统一化处理,构建如图3所示的标签模型表。
本发明实施例将每一个用户的基础数据标准化二进制格式,得到每个用户对应的标签模型表可以提高数据的运算速度。
S2、将每个所述标签模型表存储到预设的空白的位图中,获取每个所述标签模型表在所述位图中的位置信息,拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,并将所述标签位图进行行列转置,生成转换标签位图。
本发明其中一个实施例中,所述将每个所述标签模型表存储到预设的空白的位图中之前,所述方法还可以包括:
利用预设的编号转换规则,在所述标签模型表中将所述基础数据中的用户名转化为用户编号;
统计所述标签模型表中标签及用户编号的数量,根据所述标签及所述用户编号的数量构建空白的位图;
构建所述空白的位图中位图位置与所述用户编号之间的映射关系分配机制,其中,所述映射关系分配机制为所述用户编号与所述位图位置的对应关系,用于查询时回填所述标签。
本发明实施例,利用预设的编号转换规则将所述用户名转化为用户编号,例如用户A、用户B、用户C转化为用户编号0001、用户编号0010及用户编号0101。
具体地,参阅图4所示,所述拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,包括:
S21、利用左连接命令将所述多个标签模型表进行拼接,得到汇总标签模型表;
S22、利用所述汇总标签模型表及所述位置信息,生成hivesql查询语句;
S23、将所述hivesql查询语句转换为MapReduce任务,并执行所述MapReduce任务,生成标签位图。
本发明实施例中,所述MapReduce任务使用映射(map)和归约(reduce)结构,将任务分解为较小的任务块,提升数据处理速度。
参阅图5所示,本发明其中一个示例中,所述标签位图包括:索引列、用户编号列、90后标签列、80后标签列、女性标签列、程序员标签列。其中,图5所述标签位图中的列数量代表标签数量,包括90后、80后、女性、程序员四种标签,行数量代表用户的数量,包括用户编号;所述用户编号对应的索引1,2,3,4;每个用户编号对应的标签值。
进一步地,为了方便后续数据查询计算,防止标签的类别过多,无法利用二进制进行存储计算,本发明实施例将所述标签位图进行行列转置,生成转换标签位图,例如,得到列数据为用户编号及对应的索引行数据为90后、80后、女性、程序员四种标签。
S3、将所述标签位图进行压缩,得到压缩标签位图,及将所述转换标签位图进行压缩,得到压缩转换标签位图,将所述压缩标签位图存储到预设的缓存中,以及将所述压缩转换标签位图存储到预设的数据库中。
本发明其中一个实施例中,可以利用自定义函数,如udf函数将所述标签位图及转换标签位图进行压缩。所述udf函数可以将所述标签位图及所述转换标签位图中的二进制字符串字段压缩为base64编码中对应的字符。
本发明实施例中,所述base64编码是一种基于64个可打印字符来表示二进制数据的方法,转换后的可打印字符占用内存小,降低了资源服务器的消耗。采用Base64编码具有不可读性,需要解码后才能阅读。
可选地,本发明实施例中所述压缩标签位图及所述压缩转换标签位图可以存储在区块链节点中,利用区块链高吞吐的特性,提高查询标签的取用效率。
详细地,本发明实施例采用下述方法将所述标签位图进行压缩,得到压缩标签位图,包括:
利用自定义udf函数,将所述标签位图中二进制字符串每八位转换成一个字节,得到字节数组;
将所述字节数组通过base64编码规则转化为压缩标签位图。
本发明实施例利用udf函数,对所述标签位图及转换标签位图中的二进制字符串进行压缩,得到对应的压缩标签位图及压缩转换标签位图,进一步减少标签数据的存储压力。
参阅图6所示,本发明其中一个实施例中,所述压缩标签位图包括:索引列、用户编号列、lableall列。其中所述lableall列是将所述图4中对应用户编号所有的列标签值进行编码后的可打印字符。例如用户编号0001在所述图4中对应的列标签值为0101,利用base64编码规则进行编码后得到可打印字符为UA==。
本发明实施例中,所述将所述压缩转换标签位图存储到预设的数据库中之后,所述方法还包括:
步骤A、在接收到标签查询请求时,提取所述标签查询请求中的查询用户名、多个查询标签以及所述多个查询标签相互之间的逻辑关系。
本发明实施例中,所述标签查询请求包含查询用户名及多个查询标签,以及所述多个查询标签相互之间的逻辑关系。
其中,所述查询用户名是查询请求中对应的用户名;所述查询标签是查询请求中的标签信息,例如“80后”、“男性”、“程序员”等标签;以及所述查询标签之间的逻辑关系为所述查询标签之间依赖关系,例如:“80后或90后”的所述查询标签“80后”、“90后”、“男性”、“程序员”之间的逻辑关系为or、and、and、and。。
步骤B、利用预设的编号转换规则将所述查询用户名转换为查询用户编号。
为了实现快速查询,本发明实施例利用预设的编号转换规则将所述查询用户名转换为查询用户编号,例如将查询用户名为:用户D,转化查询用户编号:0110,为有利于提升查询速度。
步骤C、判断预设的缓存中是否存在与所述查询用户编号对应的压缩标签位图。
本发明实施例中,所述预设的缓存可以为redis缓存,通过判断redis缓存中是否存在与所述查询用户编号对应的标签位图,可以直接从缓存中获取数据,减少查询的速度。
当所述缓存中存在与所述查询用户编号对应的压缩标签位图时,执行步骤D、根据所述查询用户编号对应的压缩标签位图输出查询结果。
本发明其中一个实施中,当所述缓存中存在与所述查询用户编号对应的压缩标签位图时,例如所述redis缓存中的压缩标签位图中存在为0110的用户编号时,调用所述redis缓存的bitfield方法,查询所述压缩述标签位图,从所述压缩述标签位图中解码得到查询结果。
详细地,所述根据所述查询用户编号对应的压缩标签位图输出查询结果,包括:
根据所述查询用户编号查询所述压缩标签位图,得到查询标签数据;
将所述查询标签数据进行解码为byte组;
将所述byte数组转换为二进制字符串,并根据所述映射关系分配机制对所述二进制字符串进行还原,得到查询结果。
当所述缓存中不存在与所述查询用户编号对应的压缩标签位图时,执行步骤E、利用所述查询标签从所述预设数据库中查询对应的压缩转换标签位图,得到查询标签数据。
本发明实施例,例如,所述查询标签共有“90后”、“80后”、“程序员”三个查询标签,在所述压缩转换标签位图中,查找所述查询标签对应的标签值,得到查询标签数据。例如:“90后”查询标签对应的查询标签数据为rb,“80后”查询标签对应的查询标签数据为p2,“程序员”查询标签对应的查询标签数据为rp。
步骤F、利用所述多个查询标签相互之间的逻辑关系对所述查询标签数据进行运算,得到查询结果。
本发明实施例中,为了更快进行查询,需要了解标签查询请求中的所有查询标签之间的逻辑关系。可选地,本发明实施例中所述逻辑关系包括:与、或、异或、非等逻辑运算关系。
可选地,所述利用所述多个查询标签相互之间的逻辑关系对所述查询标签数据进行运算,得到查询结果,包括:
将所述查询标签进行分类得到对应的标签类别,将相同标签类别的查询标签之间用预设的第一逻辑运算符连接,得到查询标签模块;
将所有所述查询标签模块之间用预设的第二逻辑运算符连接,得到查询逻辑公式;
利用所述查询逻辑公式对所述查询标签数据进行运算,得到初始查询结果;
对所述初始查询结果进行二进制还原,得到查询结果。
可选地,本发明实施例中所述第一逻辑运算符为“或”,所述第二逻辑运算符为“与”。可选地,本发明实施例中利用预设的标签类别映射表对所述查询标签进行分类,所述标签类别映射表为包含不同的标签对应的标签类别的数据表,如:“90后”标签与“80后”标签对应的标签类别均为年龄。例如:共有“90后”、“80后”、“程序员”三个查询标签,“90后”标签与“80后”标签都为年龄标签,所以将“90后”标签与“80后”标签用运算符or连接,得到查询标签模块,“程序员”对应的标签类别为工作类别,没有相同标签类别,因此,单独作为一个查询标签模块“程序员”,将查询标签模块“90后”or“80后”与查询标签模块“程序员”用and运算符进行连接,得到的查询逻辑公式为(“90后”or“80后”)and“程序员”。
进一步地,利用所述查询逻辑公式对所述行标签的查询标签数据进行运算,得到初始查询结果。例如:所述查询逻辑公式为(“90后”or“80后”)and“程序员”,“90后”查询标签对应的查询标签数据为rb,“80后”查询标签对应的查询标签数据为p2,“程序员”查询标签对应的查询标签数据为rp。
进一步地,将所述查询标签数据解码为二进制数据,“90后”查询标签对应的查询标签数据为rb,还原为101011011011;“80后”查询标签对应的查询标签数据为p2,还原为101001110110,“程序员”查询标签对应的查询标签数据为rp,还原为101011101001。
进一步地,由于逻辑运算符和位运算符的表现形式不同,为了对替换后的查询逻辑公式进行位运算,本发明实施例将替换后的所述查询逻辑公式中包含的逻辑运算符转换为对应的位运算符,得到位运算公式,例如:替换过替换后的查询逻辑公式为(101011011011or101001110110)and101011101001,and对应的位运算符为&,or对应的位运算符为|,因此,所述位运算公式为(101|010)&110。
进一步地,本发明实施例对所述位运算公式执行位运算,得到所述初始查询结果。例如:所述位运算公式为(101011011011|101001110110)&101011101001,对所述位运算公式执行位运算得到的初始查询结果为101011101001。
进一步地,本发明其中一个实施,可利用预设的索引映射表,对所述初始查询结果进行二进制还原为查询结果,可选地,本发明实施例中所述索引映射表为包含不同用户的信息及其对应的索引的数据表,其中,用户名和索引的对应关系与所述转换标签表中相同。如:所述转换标签表中用户A对应的索引为1,那么所述索引映射表中用户A的信息对应的索引也为1。
详细地,本发明实施例中利用预设的索引映射表对所述初始查询结果进行信息还原,得到查询结果,包括:查询所述初始查询结果中预设比特值对应的符号位,得到目标符号位;将所述目标符号位确定为查询索引,利用所述查询索引查询所述索引映射表中相同索引对应的用户信息,得到所述查询结果。可选地,本发明实施例中,所述预设的比特值为1。例如:所述初始查询结果为101011101001,预设的比特值为1,因此,所述目标符号位为1、3、5、6、7、9、12,进一步地,将1、3、5、6、7、9、12作为查询索引。查询所述索引映射表中对应的索引为1、3、5、6、7、9、12的用户信息,得到目标查询结果。
本发明实施例将用户的标签值标准化为二进制格式后,根据所述基础数据构建所述用户的标签模型表,将所述标签模型表进行拼接并转化为标签位图,并将所述标签位图进行行列转置,生成转换标签位图;对所述标签位图及转换标签位图进行压缩,得到压缩标签位图及压缩转换标签位图,降低了数据表的大小,从而降低数据表的存储压力,将所述压缩标签位图存储到预设的缓存中,以及将所述压缩转换标签位图存储到预设的数据库中,当缓存中存在对应的压缩标签位图时,可以直接从缓存中获取数据,减少查询的速度。因此本发明提出的标签存储方法,可以解决解决标签存储压力大的问题。
如图7所示,是本发明一实施例提供的标签存储装置的功能模块图。
本发明所述标签存储装置100可以安装于电子设备中。根据实现的功能,所述标签存储装置100可以包括标签模型表创建模块101、位图生成模块102及位图压缩模块103。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述标签模型表创建模块101,用于获取用户的基础数据,将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表;
所述位图生成模块102,用于将每个所述标签模型表存储到预设的空白的位图中,获取每个所述标签模型表在所述位图中的位置信息,拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,并将所述标签位图进行行列转置,生成转换标签位图。
所述位图压缩模块103,用于将所述标签位图进行压缩,得到压缩标签位图,及将所述转换标签位图进行压缩,得到压缩转换标签位图,将所述压缩标签位图存储到预设的缓存中,以及将所述压缩转换标签位图存储到预设的数据库中。
详细地,本发明实施例中所述标签存储装置100中所述的各模块在使用时采用与上述图1至图6中所述的标签存储方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。
如图8所示,是本发明一实施例提供的实现标签存储方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11、通信总线12以及通信接口13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如标签存储程序。
其中,所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行标签存储程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。
所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如标签存储程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述通信总线12可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
所述通信接口13用于上述电子设备与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
图8仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图8示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的标签存储程序是多个指令的组合,在所述处理器10中运行时,可以实现:
获取用户的基础数据,将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表;
将每个所述标签模型表存储到预设的空白的位图中,获取每个所述标签模型表在所述位图中的位置信息,拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,并将所述标签位图进行行列转置,生成转换标签位图;
将所述标签位图进行压缩,得到压缩标签位图,及将所述转换标签位图进行压缩,得到压缩转换标签位图,将所述压缩标签位图存储到预设的缓存中,以及将所述压缩转换标签位图存储到预设的数据库中。
具体地,所述处理器10对上述指令的具体实现方法可参考附图对应实施例中相关步骤的描述,在此不赘述。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
获取用户的基础数据,将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表;
将每个所述标签模型表存储到预设的空白的位图中,获取每个所述标签模型表在所述位图中的位置信息,拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,并将所述标签位图进行行列转置,生成转换标签位图;
将所述标签位图进行压缩,得到压缩标签位图,及将所述转换标签位图进行压缩,得到压缩转换标签位图,将所述压缩标签位图存储到预设的缓存中,以及将所述压缩转换标签位图存储到预设的数据库中。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种标签存储方法,其特征在于,所述方法包括:
获取用户的基础数据,将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表;
将每个所述标签模型表存储到预设的空白的位图中,获取每个所述标签模型表在所述位图中的位置信息,拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,并将所述标签位图进行行列转置,生成转换标签位图;
将所述标签位图进行压缩,得到压缩标签位图,及将所述转换标签位图进行压缩,得到压缩转换标签位图,将所述压缩标签位图存储到预设的缓存中,以及将所述压缩转换标签位图存储到预设的数据库中。
2.如权利要求1所述的标签存储方法,其特征在于,所述将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表,包括:
从所述用户的基础数据中提取标签、标签值;
统计所述标签的数量得到列数量;
根据所述列数量构建空白标签数据表;
对所述标签值执行统一化处理,并将所述统一化处理后的标签值填充到所述空白标签数据表,得到所述用户对应的多个标签模型表。
3.如权利要求2所述的标签存储方法,其特征在于,所述将每个所述标签模型表存储到预设的空白的位图中之前,所述方法还包括:
利用预设的编号转换规则,在所述标签模型表中将所述基础数据中的用户名转化为用户编号;
统计所述标签模型表中标签及用户编号的数量,根据所述标签及所述用户编号的数量构建空白的位图;
构建所述空白的位图中位图位置与所述用户编号之间的映射关系分配机制,其中,所述映射关系分配机制为所述用户编号与所述位图位置的对应关系,用于查询时回填所述标签。
4.如权利要求1所述的标签存储方法,其特征在于,所述拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,包括:
利用左连接命令将所述多个标签模型表进行拼接,得到汇总标签模型表;
利用所述汇总标签模型表及所述位置信息,生成hivesql查询语句;
将所述hivesql查询语句转换为MapReduce任务,并执行所述MapReduce任务,生成标签位图。
5.如权利要求1所述的标签存储方法,其特征在于,所述将所述标签位图进行压缩,得到压缩标签位图,包括:
利用自定义udf函数,将所述标签位图中二进制字符串每八位转换成一个字节,得到字节数组;
将所述字节数组通过base64编码规则转化为压缩标签位图。
6.如权利要求1所述的标签存储方法,其特征在于,所述将所述压缩转换标签位图存储到预设的数据库中之后,所述方法还包括:
在接收到标签查询请求时,提取所述标签查询请求中的查询用户名、多个查询标签以及所述多个查询标签相互之间的逻辑关系;
利用预设的编号转换规则将所述查询用户名转换为查询用户编号;
判断预设的缓存中是否存在与所述查询用户编号对应的压缩标签位图;
当所述缓存中存在与所述查询用户编号对应的压缩标签位图,根据所述查询用户编号对应的压缩标签位图输出查询结果;
当所述缓存中不存在与所述查询用户编号对应的压缩标签位图,利用所述查询标签从所述预设数据库中查询对应的压缩转换标签位图,得到查询标签数据;
利用所述多个查询标签相互之间的逻辑关系对所述查询标签数据进行运算,得到查询结果。
7.如权利要求6中所述的标签存储方法,其特征在于,所述利用所述多个查询标签相互之间的逻辑关系对所述查询标签数据进行运算,得到查询结果,包括:
将所述查询标签进行分类得到对应的标签类别,将相同标签类别的查询标签之间用预设的第一逻辑运算符连接,得到查询标签模块;
将所有所述查询标签模块之间用预设的第二逻辑运算符连接,得到查询逻辑公式;
利用所述查询逻辑公式对所述查询标签数据进行运算,得到初始查询结果;
对所述初始查询结果进行二进制还原,得到查询结果。
8.一种标签存储装置,其特征在于,所述装置包括:
标签模型表创建模块,用于获取用户的基础数据,将所述基础数据中的标签值转换为二进制格式后,根据所述基础数据构建所述用户的多个标签模型表;
位图生成模块,用于将每个所述标签模型表存储到预设的空白的位图中,获取每个所述标签模型表在所述位图中的位置信息,拼接所述多个标签模型表,得到汇总标签模型表,根据所述汇总标签模型表及所述位置信息生成标签位图,并将所述标签位图进行行列转置,生成转换标签位图;
位图压缩模块,用于将所述标签位图进行压缩,得到压缩标签位图,及将所述转换标签位图进行压缩,得到压缩转换标签位图,将所述压缩标签位图存储到预设的缓存中,以及将所述压缩转换标签位图存储到预设的数据库中。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任意一项所述的标签存储方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的标签存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210601741.XA CN114969043A (zh) | 2022-05-30 | 2022-05-30 | 标签存储方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210601741.XA CN114969043A (zh) | 2022-05-30 | 2022-05-30 | 标签存储方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114969043A true CN114969043A (zh) | 2022-08-30 |
Family
ID=82956899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210601741.XA Pending CN114969043A (zh) | 2022-05-30 | 2022-05-30 | 标签存储方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114969043A (zh) |
-
2022
- 2022-05-30 CN CN202210601741.XA patent/CN114969043A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813963B (zh) | 知识图谱构建方法、装置、电子设备及存储介质 | |
CN112052370A (zh) | 报文生成方法、装置、电子设备及计算机可读存储介质 | |
CN112528616B (zh) | 业务表单生成方法、装置、电子设备及计算机存储介质 | |
CN112418798A (zh) | 信息审核方法、装置、电子设备及存储介质 | |
CN111897831A (zh) | 业务报文的生成方法、装置、电子设备及存储介质 | |
CN114979120B (zh) | 数据上传方法、装置、设备及存储介质 | |
CN113157927A (zh) | 文本分类方法、装置、电子设备及可读存储介质 | |
CN114491047A (zh) | 多标签文本分类方法、装置、电子设备及存储介质 | |
CN113868528A (zh) | 资讯推荐方法、装置、电子设备及可读存储介质 | |
CN114185895A (zh) | 数据导入导出方法、装置、电子设备及存储介质 | |
CN111897856A (zh) | 监管报文生成方法、装置、电子设备及可读存储介质 | |
CN112949278A (zh) | 数据核对方法、装置、电子设备及可读存储介质 | |
CN113722533B (zh) | 信息推送方法、装置、电子设备及可读存储介质 | |
CN113468175B (zh) | 数据压缩方法、装置、电子设备及存储介质 | |
CN112464619B (zh) | 大数据处理方法、装置、设备及计算机可读存储介质 | |
CN115496166A (zh) | 多任务处理方法、装置、电子设备及存储介质 | |
CN115982454A (zh) | 基于用户画像的问卷推送方法、装置、设备及存储介质 | |
CN113687827B (zh) | 基于微件的数据列表生成方法、装置、设备及存储介质 | |
CN115174555A (zh) | 文件传输方法、装置、电子设备及存储介质 | |
CN114840388A (zh) | 数据监控方法、装置、电子设备及存储介质 | |
CN115033605A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN114911479A (zh) | 基于配置化的界面生成方法、装置、设备及存储介质 | |
CN114969043A (zh) | 标签存储方法、装置、设备及存储介质 | |
CN113590856B (zh) | 标签查询方法、装置、电子设备及可读存储介质 | |
CN113434365B (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 |