CN111444249A - 基于热数据的用户画像生成方法、装置、设备及存储介质 - Google Patents
基于热数据的用户画像生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111444249A CN111444249A CN202010138637.2A CN202010138637A CN111444249A CN 111444249 A CN111444249 A CN 111444249A CN 202010138637 A CN202010138637 A CN 202010138637A CN 111444249 A CN111444249 A CN 111444249A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- data stream
- thermal
- stream
- 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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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/2291—User-Defined Types; Storage 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/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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及大数据技术领域,公开了一种基于热数据的用户画像生成方法,包括以下步骤:通过实时流框架StructuredStreaming将所述用户行为数据以数据帧的格式转化为第一数据流;对第一数据流重新分区,得到第二数据流,所述第二数据流包括用户编号;计算所述第二数据流中的用户编号长度,判断用户编号长度是否满足预置长度;若是,则判断第二数据流的参数是否非空;若是,则基于所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔将数据分为冷热数据;基于热数据生成用户画像。本发明还提供了一种基于热数据的用户画像生成装置、设备及存储介质,本发明提供的基于热数据的用户画像生成方法提高了用户画像的时效性。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种基于热数据的用户画像生成方法、装置、设备及存储介质。
背景技术
随着移动互联网的发展,各种网站、手机应用软件对于个性化的需求逐渐提高。个性化的给用户提供服务更能精准的触达用户的需求。现行的用户画像系统主要采用离线处理的方式进行手机用户的基础信息(如:年龄、性别等)或者通过模型分析出用户的消费能力。
发明人意识到离线的用户画像系统不具备实时性,并且其采用传统的服务器方式开发部署,扩展性、容错性较差。一些实时的用户画像系统也没有基于目前领先的大数据处理技术,导致其不能支持逐渐增大的海量数据,也不能有效的与其他系统耦合。近期基于批处理框架SparkStreaming的实时日志处理、用户画像系统属于mini batch(迷你批处理)的批处理方式,有一定的延时,并且代码结构复杂,相当于开发人员亲自重复了目前标准的数据框(dataframe)处理方式,使得离线与实时不能共用一套代码,造成二次开发的问题。
此外,SparkStreaming是基于Spark 1.6版本开发,版本较低与一些近期更新的组件并不能很好的兼容。例如,SparkStreaming是基于JAVA7版本,而StructuredStreaming则基于JAVA8版本,使得一些高性能的接口不能使用,因此会造成用户画像时效性低。
发明内容
本发明的主要目的在于提供一种基于热数据的用户画像生成方法、装置、设备及存储介质,旨在解决现有的用户画像时效性低的技术问题。
通过日志接收工具Flume接收用户行为数据;
通过实时流框架StructuredStreaming将所述用户行为数据以数据帧的格式转化为第一数据流;
对所述第一数据流重新分区,得到第二数据流,所述第二数据流包括用户编号;
计算所述第二数据流中的用户编号长度,判断所述用户编号长度是否满足预置长度;
若所述用户编号长度满足预置长度,则判断所述第二数据流的参数是否非空;
若所述第二数据流的参数非空,则记录所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,并基于所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,按照预设规则将所述数据所缓存至分布式开源数据库HBase的的存储单元hfile中,其中,所述存储单元hfile用于存储热数据和冷数据;
从所述存储单元hfile中获取热数据,并根据所述热数据计算实时用户兴趣得分;
根据所述实时用户兴趣得分获取用户兴趣标签,基于所述用户兴趣标签生成用户画像。
可选的,所述通过实时流框架StructuredStreaming将所述用户行为数据以数据帧的格式转化为第一数据流,包括以下步骤:
通过实时流框架StructuredStreaming接收所述用户行为数据;
通过实时流框架StructuredStreaming中的流处理模块将所述用户行为数据由字符串格式的数据转化为数据帧dataframe格式的第一数据流。
可选的,所述若所述第二数据流的参数非空,则记录所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,并基于所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,按照预设规则将所述数据所缓存至分布式开源数据库HBase的的存储单元hfile中,其中,所述存储单元hfile用于存储热数据和冷数据,包括以下步骤:
判断将第二数据流缓存进分布式开源数据库HBase的时间点是否在预设时间段内;
若将第二数据流缓存进分布式开源数据库HBase的时间点在预设时间段内,则通过轮询的方式统计所述第二数据流的每个数据在所述HBase中的历史出现频率,其中,所述历史出现频率包括:在存储热数据的存储单元hfile中出现的第一频率和在存储冷数据的存储单元hfile中出现的第二频率;
判断所述第一频率是否大于或等于所述第二频率;
若所述第一频率大于或等于所述第二频率,则将所述第二数据流缓存到存储单元HBase的用于存储热数据的存储单元hfile中;
若所述第一频率小于所述第二频率,则将所述第二数据流缓存到HBase的用于存储冷数据的存储单元hfile中。
可选的,所述从所述存储单元存储单元hfile中获取热数据,并根据所述热数据计算实时用户兴趣得分,包括以下步骤:
从存储热数据的存储单元hfile中拉取热数据;
通过以下公式计算实时用户兴趣得分:
可选的,在所述通过日志接收工具Flume接收用户行为数据之前,还包括以下步骤:
在实时流框架StructuredStreaming的驱动节点拉取在实时流框架StructuredStreaming的驱动节点拉取存储在分布式文件系统HDFS上的相关配置文件,其中,所述驱动节点部署有广播变量;
通过广播变量将所述配置文件的信息广播到各个执行节点的内存。
可选的,在所述在实时流框架StructuredStreaming的驱动节点拉取在实时流框架StructuredStreaming的驱动节点拉取存储在分布式文件系统HDFS上的相关配置文件,其中,所述驱动节点部署有广播变量之前,还包括以下步骤:
通过实时流框架StructuredStreaming创建SparkSession实例,配置根据背压机制,并通过任务调度器反馈的作业的执行信息,以及动态调整接收端Receiver的数据接收率;
通过序列化库将弹性分布式数据集以序列化格式进行保存。
可选的,所述对所述第一数据流重新分区,得到第二数据流,所述第二数据流包括用户编号,包括以下步骤:
调用分区器HashPartitioner,对预先分布于弹性分布式数据集的第一划分区域的第一数据流进行重新划分区域,得到分布于第二划分区域的第一数据流,并记录所述第二划分区域的数量;
判断所述第二划分区域的数量是否大于所述第一划分区域的数量;
若所述第二划分区域的数量大于所述第一划分区域的数量,则得到第二数据流,所述第二数据流包括用户编号。
进一步地,为实现上述目的,本发明还提供一种基于热数据的用户画像生成装置,所述基于热数据的用户画像生成装置包括:
接收模块,用于通过日志接收工具Flume接收用户行为数据;
用户行为数据转化模块,用于通过实时流框架StructuredStreaming将所述用户行为数据以数据帧的格式转化为第一数据流;
第一数据流分区模块,用于对所述第一数据流重新分区,得到第二数据流,所述第二数据流包括用户编号;
用户编号长度计算模块,用于计算所述第二数据流中的用户编号长度,判断所述用户编号长度是否满足预置长度;
参数判断模块,用于若所述用户编号长度满足预置长度,则判断所述第二数据流的参数是否非空;
存储模块,用于若所述第二数据流的参数非空,则记录所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,并基于所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,按照预设规则将所述数据所缓存至分布式开源数据库HBase的的存储单元hfile中,其中,所述存储单元hfile用于存储热数据和冷数据;
用户兴趣得分计算模块,用于从所述存储单元hfile中获取热数据,并根据所述热数据计算实时用户兴趣得分;
用户画像生成模块,用于根据所述实时用户兴趣得分获取用户兴趣标签,基于所述用户兴趣标签生成用户画像。
可选的,所述用户行为数据转化模块包括:
接收单元,用于通过实时流框架StructuredStreaming接收所述用户行为数据;
用户行为数据转化单元,用于通过实时流框架StructuredStreaming中的流处理模块将所述用户行为数据由字符串格式的数据转化为数据帧dataframe格式的第一数据流。
可选的,所述存储模块包括以下:
预设时间判断单元,用于判断将第二数据流缓存进分布式开源数据库HBase的时间点是否在预设时间段内;
历史出现频率统计单元,用于若将第二数据流缓存进分布式开源数据库HBase的时间点在预设时间段内,则通过轮询的方式统计所述第二数据流的每个数据在所述存储单元HBase中的历史出现频率,其中,所述历史出现频率包括:在存储热数据的存储单元hfile中出现的第一频率和在存储冷数据的存储单元hfile中出现的第二频率;
第一频率判断单元,用于判断所述第一频率是否大于或等于所述第二频率;
热数据存储单元,用于若所述第一频率大于或等于所述第二频率,则将所述第二数据流缓存到存储单元HBase的用于存储热数据的存储单元hfile中,若所述第一频率小于所述第二频率,则将所述第二数据流缓存到存储单元HBase的用于存储冷数据的存储单元hfile中。
可选的,所述用户兴趣得分计算模块包括:
热数据拉取单元,用于从存储热数据的存储单元hfile中拉取热数据;
用户兴趣得分计算单元,用于通过以下公式计算实时用户兴趣得分:
可选的,基于热数据的用户画像生成装置,还包括:
配置文件拉取模块,用于在实时流框架StructuredStreaming的驱动节点拉取在实时流框架StructuredStreaming的驱动节点拉取存储在分布式文件系统HDFS上的相关配置文件,其中,所述驱动节点部署有广播变量;
信息广播模块,用于通过广播变量将所述配置文件的信息广播到各个执行节点的内存。
可选的,基于热数据的用户画像生成装置,还包括:
创建模块,用于通过实时流框架StructuredStreaming创建SparkSession实例,配置根据背压机制,并通过任务调度器反馈的作业的执行信息,以及动态调整接收端Receiver的数据接收率;
保存模块,用于通过序列化库将弹性分布式数据集以序列化格式进行保存。
可选的,所述第一数据流分区模块包括:
调用单元,用于调用分区器HashPartitioner,对预先分布于弹性分布式数据集的第一划分区域的第一数据流进行重新划分区域,得到分布于第二划分区域的第一数据流,并记录所述第二划分区域的数量;
第二划分区域数量判断单元,用于判断所述第二划分区域的数量是否大于所述第一划分区域的数量;
第二数据流获取单元,用于若所述第二划分区域的数量大于所述第一划分区域的数量,则得到第二数据流,所述第二数据流包括用户编号。
进一步地,为实现上述目的,本发明还提供一种基于热数据的用户画像生成设备,所述基于热数据的用户画像生成设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的基于热数据的用户画像生成程序,所述基于热数据的用户画像生成程序被所述处理器执行时实现如上述任一项所述的基于热数据的用户画像生成方法的步骤。
进一步地,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有基于热数据的用户画像生成程序,所述基于热数据的用户画像生成程序被处理器执行时实现如上述任一项所述的基于热数据的用户画像生成方法的步骤。
本发明通过实时流框架StructuredStreaming接收用户行为数据,并将用户行为数据存储了HBase的不同区域,以实现冷热数据的隔离,再通过热数据生成用户画像,通过这种方式可以提高用户画像的时效性,进而可以提高用户画像的准确度。
附图说明
图1为本发明实施例方案涉及的基于热数据的用户画像生成设备运行环境的结构示意图;
图2为本发明基于热数据的用户画像生成方法的第一个实施例的流程示意图;
图3为图2中步骤S20的一个实施例的细化流程示意图;
图4为图2中步骤S60的一个实施例的细化流程示意图;
图5为图2中步骤S70的一个实施例的细化流程示意图;
图6为本发明基于热数据的用户画像生成方法的第二实施例的流程示意图;
图7为本发明基于热数据的用户画像生成方法的第三实施例的流程示意图;
图8为图2中步骤S30的细化流程示意图;
图9为本发明基于热数据的用户画像生成装置的一个实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例涉及的基于热数据的用户画像生成方法主要应用于基于热数据的用户画像生成设备,该基于热数据的用户画像生成设备可以是PC、便携计算机、移动终端等具有显示和处理功能的设备。
参照图1,图1为本发明实施例方案中涉及的基于热数据的用户画像生成设备的硬件结构示意图。本发明实施例中,基于热数据的用户画像生成设备可以包括处理器1001(例如CPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口);存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的硬件结构并不构成对基于热数据的用户画像生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种存储介质的存储器1005可以包括操作系统、网络通信模块以及基于热数据的用户画像生成程序。
在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的基于热数据的用户画像生成程序,并执行本发明实施例提供的基于热数据的用户画像生成方法。
本发明实施例提供了一种基于热数据的用户画像生成方法。
参照图2,图2为本发明基于热数据的用户画像生成方法的第一实施例的流程示意图。本实施例中,基于热数据的用户画像生成方法包括以下步骤:
步骤S10,通过日志接收工具Flume接收用户行为数据;
本实施例中,Flume为接收用户行为数据的工具,Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据,因此通过Flume采集用户行为数据,以便于根据用户行为数据获取用于兴趣标签。
步骤S20,通过实时流框架StructuredStreaming将用户行为数据以数据帧的格式转化为第一数据流;
本实施例中,用户行为数据包括日志数据,数据帧,即dataframe,数据帧二维数据结构,即数据以行和列的表格方式排列。通过实时流框架StructuredStreaming将用户行为数据进行流处理,流处理是无边界数据集的抽象说法,随着时间的推移,新数据会不断地到来,因此可实现实时处理用户行为数据的目的。
步骤S30,对第一数据流重新分区,得到第二数据流,所述第二数据流包括用户编号;
本实施例中,分区操作即repartition操作,通过分区操作可将数据划分的更加均匀。可通过调用分区器HashPartitioner对第一数据流进行重新分区,从而得到数据分布更加均匀的的第二数据流。
步骤S40,计算第二数据流中的用户编号长度,判断用户编号长度是否满足预置长度;
本实施例中,可通过遍历的方式依次遍历用户编号,每个用户都有唯一确定的编号,例如以用户的手机号为用户编号,则用户编号长度为11位,当遍历到的用户编号是11位的,则说明用户编号满足预置长度。
步骤S50,若用户编号长度满足预置长度,则判断第二数据流的参数是否非空;
本实施例中,每个用户编号都与不同的用户行为数据相关联,当用户编号满足预置长度的时候,仅能说明存在这样有个唯一确定的用户,但是该用户可能仅在指定平台注册了账号,但为进行其他操作,因此第二数据流的参数为空,只有在参数非空的情况下,才说明用户进行了操作,才生成了用户行为数据,只有在存在用户行为数据的时候,才能根据用户行为数据生成用户兴趣标签。
步骤S60,若第二数据流的参数非空,则记录第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,并基于第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,按照预设规则将数据所缓存至分布式开源数据库HBase的的存储单元hfile中,其中,存储单元hfile用于存储热数据和冷数据;
本实施例中,hfile为存储空间HBase的最小存储单位,冷数据指的是距用户当前行为数据时间较为久远且出现频率比较低的数据,而热数据是距离现在时间较短,且出现频率较高的数据。可预先设置冷数据和热数据的判断规则,例如一个月内的数据为热数据,超过一个月的数据为冷数据。HBase的数据最终是以HFile的形式存储在分布式文件系统HDFS中的,通过配置可实现不同的hfile存储不同的数据,这样既可以将冷、热数据隔离,又可以随时调用热数据。现有技术中,一般都是使用没有做过任何数据区分的数据生成用户画像,因此用户画像存在一定的不准确性。
步骤S70,从存储单元hfile中获取热数据,并根据热数据计算实时用户兴趣得分;
步骤S80,根据实时用户兴趣得分获取用户兴趣标签,基于用户兴趣标签生成用户画像。
本实施例中,若存在用户画像生成请求,则需要基于热数据生成用户画像,这样就可以以距当前用户行为数据时间较近、且出现频率较高的数据为生成用户画像的依据,因此可提高用户画像的准确度。
通过实时流框架StructuredStreaming接收用户行为数据,并将用户行为数据存储了HBase的不同区域,以实现冷热数据的隔离。本方案有两个创新点,1.采用实时流框架StructuredStreaming,避免了由批处理StructuredStreaming框架来带的延时,因此,可以实时生成用户画像;2.根据用户行为数据出现的频率及数据距用户动作的时间间隔,将不同的数据分类于HBase的不同区域,再通过热数据生成用户画像,通过这种方式可以提高用户画像的准确度。
参照图3,图3为图2中步骤S20的一个实施例的细化流程示意图。本实施例中,步骤S20通过实时流框架StructuredStreaming将用户行为数据以数据帧的格式转化为第一数据流,包括以下步骤:
步骤S201,通过实时流框架StructuredStreaming接收用户行为数据;
本实施例中,StructuredStreaming是一个可缩放、容错的流逝处理引擎,基于Spark SQL引擎构建。当在处理流计算时,可以像处理静态数据批计算一样。Spark SQL引擎负责不断地连续运行它,并随着流数据持续到达而更新最终结果。
步骤S202,通过实时流框架StructuredStreaming中的流处理模块将用户行为数据由字符串格式的数据转化为数据帧dataframe格式的第一数据流。
本实施例中,由于实时流框架StructuredStreaming支持流处理,因此,不具有延时性。流处理模块即processStream,通过实时流框架StructuredStreaming中的流处理模块将用户行为数据由字符串格式的数据转化为数据帧dataframe格式的第一数据流。
参照图4,图4为图2中步骤S60的一个实施例的细化流程示意图。本实施例中,步骤S60,若第二数据流的参数非空,则根据第二数据流出现的频率和时间间隔将第二数据流缓存到HBase的用于存储热数据和冷数据的hfile中,包括以下步骤:
步骤S601,判断将第二数据流缓存进分布式开源数据库HBase的时间点是否在预设时间段内;
本实施例中,可通过计时器对缓存进分布式开源数据库HBase的第二数据流进行计时,为了通过不同的时间间隔将不同的数据进行区分,例如,一天内的数据为热数据,一年以内的数据为冷数据。
步骤S602,若将第二数据流缓存进分布式开源数据库HBase的时间点在预设时间段内,则通过轮询的方式统计第二数据流在HBase中的历史出现频率,其中,历史出现频率包括:在存储热数据的hfile中出现的第一频率和在存储冷数据的hfile中出现的第二频率;
本实施例中,数据是存储在HBase的hfile中的,hfile指的是HBase的存储单元,为了对冷、热数据进行区分,因此,通过轮询的方式统计进入hfile中的数据的频率,可预先根据数据进入hfile中的时间的不同,将不同的数据存储于不同的hfile中。例如,将a数据在存储热数据的hfile中出现的次数与a数据出现的总次数的比值作为第一频率,将a数据在存储冷数据的hfile中出现的次数与a数据出现的总次数的比值作为第二频率。
步骤S603,判断第一频率是否大于或等于第二频率;
本实施例中,通过轮询的方式统计进入hfile中的数据的频率,并判断数据在用于存储热数据的hfile中出现的频率是否大于在用于存储冷数据的hfile中出现的频率。
步骤S604,若第一频率大于或等于第二频率,则将第二数据流缓存到HBase的用于存储热数据的hfile中;
步骤S605,若第一频率小于第二频率,则将第二数据流缓存到HBase的用于存储冷数据的hfile中。
本实施例中,若第一频率大于或等于第二频率,则将第二数据流缓存到HBase的用于存储热数据的hfile中,反之,将第二数据流缓存到HBase的用于存储冷数据的hfile中,其目的是,将冷、热数据存储于不同的hfile。
参照图5,图5为图2中步骤S70的一个实施例的细化流程示意图。本实施例中,步骤S70,从存储单元hfile中获取热数据,并根据热数据计算实时用户兴趣得分,包括以下步骤:
步骤S701,从存储热数据的hfile中拉取热数据;
本实施例中,若存在生成用户画像的请求,则从存储热数据的hfile中拉取热数据,因为热数据是出现频率较高且距离当前用户行为数据较近的数据,因此可提高用户画像的准确度。
步骤S702,通过以下公式计算实时用户兴趣得分:
本实施例中,热数据是出现频率较高且距离当前用户行为数据时间较近的数据,而非采用距当前用户行为数据时间较远冷数据,因此可提高用户画像的准确度;可预先为不同类型的热数据设置权重,例如,有些热数据占的权重高,而另外一些热数据占的权重低,有些占权重较低的热数据,在计算实时用户兴趣得分时占的比重较小,由于用户兴趣得分决定了用户兴趣标签,例如“跑步”的得分大于“吃饭”的得分,则可以得到“跑步”这一用户兴趣标签,每个用户兴趣得分都对应着一个用户兴趣标签,优先选择用户兴趣得分高的用户兴趣标签,然后将所有的用户兴趣标签组合在一起,生成用户画像,由于用户兴趣得分是根据实时的热数据实时计算得到的,因此用户兴趣得分所对应的用户兴趣标签也是实时生成的,因此生成的用户画像也是实时的,因此可以提高用户画像的准确度。
通过实时流框架StructuredStreaming接收用户行为数据,并将用户行为数据存储了HBase的不同区域,以实现冷热数据的隔离,再通过热数据生成用户画像,可提高用户画像的准确度。
参照图6,图6为本发明基于热数据的用户画像生成方法的第二实施例的流程示意图。本实施例中,在图2的步骤S10,通过日志接收工具Flume接收用户行为数据之前,还包括以下步骤:
步骤S90,在实时流框架StructuredStreaming的驱动节点拉取在实时流框架StructuredStreaming的驱动节点拉取存储在分布式文件系统HDFS上的相关配置文件,其中,驱动节点部署有广播变量;
本实施例中,Driver即驱动节点,在实时流框架StructuredStreaming的驱动节点拉取在实时流框架StructuredStreaming的驱动节点拉取存储在分布式文件系统HDFS上的相关配置文件。广播变量可以让程序高效地向所有执行节点发送一个较大的只读值,以供一个或多个StructuredStreaming操作使用。
步骤S100,通过广播变量将配置文件的信息广播到各个执行节点的内存。
本实施例中,执行节点即executor,通过广播变量,将配置文件的信息广播到各个执行节点的内存。
参照图7,图7为本发明基于热数据的用户画像生成方法的第三实施例的流程示意图。本实施例中,在图6的步骤S90,在实时流框架StructuredStreaming的驱动节点拉取在实时流框架StructuredStreaming的驱动节点拉取存储在分布式文件系统HDFS上的相关配置文件,其中,驱动节点部署有广播变量之前,还包括以下步骤:
步骤S110,通过实时流框架StructuredStreaming创建SparkSession实例,配置根据背压机制,并通过任务调度器反馈的作业的执行信息,以及动态调整接收端Receiver的数据接收率;
本实施例中,通过实例SparkSession为用户提供了一个统一的切入点来使用Spark的各项功能。首先启动StructuredStreaming程序创建SparkSession实例,配置根据背压机制通过任务调度器JobScheduler反馈作业的执行信息,根据JobScheduler反馈作业的执行信息来动态调整Receiver数据接收率,背压机制即spark.streaming.backpressure.enabled。
步骤S120,通过序列化库将弹性分布式数据集以序列化格式进行保存。
本实施例中,现有技术中,默认使用Java序列化库,本方案采用的是Kryo序列化库,可减少占用的内存空间。序列化库即Kryo Serializer。
弹性分布式数据集,即RDD,是一种特殊集合,支持多种来源,有容错机制,可以被缓存,支持并行操作,一个RDD代表一个分区里的数据集。
参照图8,图8为图2中步骤S30的细化流程示意图。本实施例中,步骤S30,对第一数据流重新分区,得到第二数据流,所述第二数据流包括用户编号,包括以下步骤:
步骤S301,调用分区器HashPartitioner,对预先分布于弹性分布式数据集的第一划分区域的第一数据流进行重新划分区域,得到分布于第二划分区域的第一数据流,并记录第二划分区域的数量;
步骤S302,判断第二划分区域的数量是否大于第一划分区域的数量;
步骤S303,若第二划分区域的数量大于第一划分区域的数量,则得到第二数据流,所述第二数据流包括用户编号。
本实施例中,采用重新分区操作repartition是为了对数据进行重新分区,这里使用的分区器HashPartitioner。将数据重新分区后,一些区域的数量会存在增多的现象。为了使数据分布得更加均匀,因此希望多个划分区域的数量大于原不同区域的数量,这样经过重新分区后,会得到数据分布更均匀的区域。
参照图9,图9为本发明基于热数据的用户画像生成装置的一个实施例的功能模块示意图。本实施例中,基于热数据的用户画像生成装置包括:
接收模块10,用于通过日志接收工具Flume接收用户行为数据;
用户行为数据转化模块20,用于通过实时流框架StructuredStreaming将所述用户行为数据以数据帧的格式转化为第一数据流;
第一数据流分区模块30,用于对所述第一数据流重新分区,得到第二数据流,所述第二数据流包括用户编号;
用户编号长度计算模块40,用于计算所述第二数据流中的用户编号长度,判断所述用户编号长度是否满足预置长度;
参数判断模块50,用于若所述用户编号长度满足预置长度,则判断所述第二数据流的参数是否非空;
存储模块60,用于若所述第二数据流的参数非空,则记录所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,并基于所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,按照预设规则将所述数据所缓存至分布式开源数据库HBase的的存储单元hfile中,其中,所述存储单元hfile用于存储热数据和冷数据;
用户兴趣得分计算模块70,用于从所述存储单元hfile中获取热数据,并根据所述热数据计算实时用户兴趣得分;
用户画像生成模块80,用于根据所述实时用户兴趣得分获取用户兴趣标签,基于所述用户兴趣标签生成用户画像。
本发明还提供一种存储介质。
本实施例中,所述存储介质上存储有基于热数据的用户画像生成程序,所述基于热数据的用户画像生成程序被处理器执行时实现如上述任一项实施例中所述的基于热数据的用户画像生成方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。
Claims (10)
1.一种基于热数据的用户画像生成方法,其特征在于,所述基于热数据的用户画像生成方法包括:
通过日志接收工具Flume接收用户行为数据;
通过实时流框架StructuredStreaming将所述用户行为数据以数据帧的格式转化为第一数据流;
对所述第一数据流重新分区,得到第二数据流,所述第二数据流包括用户编号;
计算所述第二数据流中的用户编号长度,判断所述用户编号长度是否满足预置长度;
若所述用户编号长度满足预置长度,则判断所述第二数据流的参数是否非空;
若所述第二数据流的参数非空,则记录所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,并基于所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,按照预设规则将所述数据缓存至分布式开源数据库HBase的存储单元hfile中,其中,所述存储单元hfile用于存储热数据和冷数据;
从所述存储单元hfile中获取热数据,并根据所述热数据计算实时用户兴趣得分;
根据所述实时用户兴趣得分获取用户兴趣标签,基于所述用户兴趣标签生成用户画像。
2.如权利要求1所述的基于热数据的用户画像生成方法,其特征在于,所述通过实时流框架StructuredStreaming将所述用户行为数据以数据帧的格式转化为第一数据流,包括:
通过实时流框架StructuredStreaming接收所述用户行为数据;
通过实时流框架StructuredStreaming中的流处理模块将所述用户行为数据由字符串格式的数据转化为数据帧dataframe格式的第一数据流。
3.如权利要求1所述的基于热数据的用户画像生成方法,其特征在于,若所述第二数据流的参数非空,则记录所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,并基于所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,按照预设规则将所述数据所缓存至分布式开源数据库HBase的的存储单元hfile中,其中,所述存储单元hfile用于存储热数据和冷数据,包括:
判断将第二数据流缓存进分布式开源数据库HBase的时间点是否在预设时间段内;
若将第二数据流缓存进分布式开源数据库HBase的时间点在预设时间段内,则通过轮询的方式统计所述第二数据流的每个数据在所述HBase中的历史出现频率,其中,所述历史出现频率包括:在存储热数据的存储单元hfile中出现的第一频率和在存储冷数据的存储单元hfile中出现的第二频率;
判断所述第一频率是否大于或等于所述第二频率;
若所述第一频率大于或等于所述第二频率,则将所述第二数据流缓存到HBase的用于存储热数据的存储单元hfile中;
若所述第一频率小于所述第二频率,则将所述第二数据流缓存到HBase的用于存储冷数据的存储单元hfile中。
5.如权利要求1所述的基于热数据的用户画像生成方法,其特征在于,在所述通过日志接收工具Flume接收用户行为数据之前,还包括:
在实时流框架StructuredStreaming的驱动节点拉取存储在分布式文件系统HDFS上的相关配置文件,其中,所述驱动节点部署有广播变量;
通过广播变量将所述配置文件的信息广播到各个执行节点的内存。
6.如权利要求5所述的基于热数据的用户画像生成方法,其特征在于,在所述在实时流框架StructuredStreaming的驱动节点拉取在实时流框架StructuredStreaming的驱动节点拉取存储在分布式文件系统HDFS上的相关配置文件,其中,所述驱动节点部署有广播变量之前,还包括:
通过实时流框架StructuredStreaming创建SparkSession实例,配置根据背压机制,并通过任务调度器反馈的作业的执行信息,以及动态调整接收端Receiver的数据接收率;
通过序列化库将弹性分布式数据集以序列化格式进行保存。
7.如权利要求1-6中任一项所述的基于热数据的用户画像生成方法,其特征在于,所述对所述第一数据流重新分区,得到第二数据流,所述第二数据流包括用户编号,包括:
调用分区器HashPartitioner,对预先分布于弹性分布式数据集的第一划分区域的第一数据流进行重新划分区域,得到分布于第二划分区域的第一数据流,并记录所述第二划分区域的数量;
判断所述第二划分区域的数量是否大于所述第一划分区域的数量;
若所述第二划分区域的数量大于所述第一划分区域的数量,则得到第二数据流,所述第二数据流包括用户编号。
8.一种基于热数据的用户画像生成装置,其特征在于,所述基于热数据的用户画像生成装置包括以下模块:
接收模块,用于通过日志接收工具Flume接收用户行为数据;
用户行为数据转化模块,用于通过实时流框架StructuredStreaming将所述用户行为数据以数据帧的格式转化为第一数据流;
第一数据流分区模块,用于对所述第一数据流重新分区,得到第二数据流,所述第二数据流包括用户编号;
用户编号长度计算模块,用于计算所述第二数据流中的用户编号长度,判断所述用户编号长度是否满足预置长度;
参数判断模块,用于若所述用户编号长度满足预置长度,则判断所述第二数据流的参数是否非空;
存储模块,用于若所述第二数据流的参数非空,则记录所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,并基于所述第二数据流中每个数据出现的频率和每个数据两次出现间的时间间隔,按照预设规则将所述数据所缓存至分布式开源数据库HBase的的存储单元hfile中,其中,所述存储单元hfile用于存储热数据和冷数据;
用户兴趣得分计算模块,用于从所述存储单元hfile中获取热数据,并根据所述热数据计算实时用户兴趣得分;
用户画像生成模块,用于根据所述实时用户兴趣得分获取用户兴趣标签,基于所述用户兴趣标签生成用户画像。
9.一种基于热数据的用户画像生成设备,其特征在于,所述基于热数据的用户画像生成设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的基于热数据的用户画像生成程序,所述基于热数据的用户画像生成程序被所述处理器执行时实现如权利要求1-7中任一项所述的基于热数据的用户画像生成方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有基于热数据的用户画像生成程序,所述基于热数据的用户画像生成程序被处理器执行时实现如权利要求1-7中任一项所述的基于热数据的用户画像生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010138637.2A CN111444249A (zh) | 2020-03-03 | 2020-03-03 | 基于热数据的用户画像生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010138637.2A CN111444249A (zh) | 2020-03-03 | 2020-03-03 | 基于热数据的用户画像生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111444249A true CN111444249A (zh) | 2020-07-24 |
Family
ID=71627263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010138637.2A Pending CN111444249A (zh) | 2020-03-03 | 2020-03-03 | 基于热数据的用户画像生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444249A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115169A (zh) * | 2020-09-17 | 2020-12-22 | 北京奇艺世纪科技有限公司 | 用户画像生成、对象分发、内容推荐方法、装置及介质 |
CN113505048A (zh) * | 2021-07-09 | 2021-10-15 | 浪潮云信息技术股份公司 | 基于应用系统画像的统一监控平台及实现方法 |
CN115640370A (zh) * | 2022-12-08 | 2023-01-24 | 深圳市智多兴投控科技有限公司 | 一种数据分析方法及相关设备 |
-
2020
- 2020-03-03 CN CN202010138637.2A patent/CN111444249A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115169A (zh) * | 2020-09-17 | 2020-12-22 | 北京奇艺世纪科技有限公司 | 用户画像生成、对象分发、内容推荐方法、装置及介质 |
CN112115169B (zh) * | 2020-09-17 | 2023-09-08 | 北京奇艺世纪科技有限公司 | 用户画像生成、对象分发、内容推荐方法、装置及介质 |
CN113505048A (zh) * | 2021-07-09 | 2021-10-15 | 浪潮云信息技术股份公司 | 基于应用系统画像的统一监控平台及实现方法 |
CN115640370A (zh) * | 2022-12-08 | 2023-01-24 | 深圳市智多兴投控科技有限公司 | 一种数据分析方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7801891B2 (en) | System and method for collecting user interest data | |
WO2020258290A1 (zh) | 日志数据收集方法、日志数据收集装置、存储介质和日志数据收集系统 | |
CN111444249A (zh) | 基于热数据的用户画像生成方法、装置、设备及存储介质 | |
CN102193929B (zh) | 利用词信息熵的搜索方法及其设备 | |
CN106155817B (zh) | 业务信息处理方法、服务器及系统 | |
CN112527848B (zh) | 基于多数据源的报表数据查询方法、装置、系统及存储介质 | |
EP2564318A1 (en) | Data center operation | |
CN107341033A (zh) | 一种数据统计方法、装置、电子设备和存储介质 | |
CN108595483B (zh) | 数据处理方法及相关装置 | |
CN110147470B (zh) | 一种跨机房数据比对系统及方法 | |
CN113268403B (zh) | 时间序列的分析预测方法、装置、设备及存储介质 | |
CN111311014B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
US7254389B2 (en) | Wireless link simulation with generic caching | |
CN111352951A (zh) | 一种数据导出方法、装置及系统 | |
CN111666344A (zh) | 异构数据同步方法及装置 | |
CN110888672B (zh) | 一种基于元数据架构的表达式引擎实现方法及系统 | |
CN116932906A (zh) | 一种搜索词推送方法、装置、设备及存储介质 | |
CN113687825B (zh) | 一种软件模块的构建方法、装置、设备及存储介质 | |
CN110741365A (zh) | 用于管理多媒体内容中的加载时间的数据结构查询 | |
CN114840565A (zh) | 抽样查询方法、装置、电子设备及计算机可读存储介质 | |
JP4575064B2 (ja) | 情報検索装置 | |
CN114637499B (zh) | 可视化组件处理方法、装置、设备及介质 | |
CN115617845A (zh) | 数据共享方法、设备及存储介质 | |
CN113051126B (zh) | 画像构建方法、装置、设备及存储介质 | |
CN113342614A (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 |