当前位置: 首页 > news >正文

【大数据】用户画像

企业数字化运营的用户数据资产管理平台
打通多源数据
统一用户识别

项目概述

用户画像:UserProfile、UserPersonal
给每个用户打上标签,本体论。
用户基本数据和用户行为数据。

第一类:用户基本信息数据,构建标签还原画像称为User Personal;
第二类:用户业务数据,使用APP产出数据,构建标签还原画像被称为User Profile;

描述一个人:
张三、女性、28岁,高级白领、旅游达人、水瓶座
将用户数据标签化
构建用户画像基础:
数据仓库 → 构建标签 → 构建用户画像 → 营销、推荐、报表
用户画像的应用场景

电商平台用户画像系统设计与开发

项目背景

本项目基于电商平台进行设计开发,旨在通过对注册会员的偏好、行为习惯及人员属性进行深度分析,实现用户画像的还原。该画像体系服务于营销平台和个性化推荐系统,以提升营销精准度,并为每个用户提供快速、准确的商品推荐。


核心业务数据来源

  1. 订单数据

    • 包括购买记录、交易金额、支付方式、收货地址等。
  2. 访问日志数据

    • 用户浏览轨迹、页面停留时间、点击行为、搜索关键词等。
  3. 会员注册基本信息

    • 年龄、性别、地区、注册时间、会员等级等静态信息。

用户画像标签存储架构

存储类型用途说明
HBase 表存储每个用户的个体画像(细粒度标签),支持高并发读写与海量数据存储。
ElasticSearch / Solr 索引支持多维度标签组合查询,用于快速筛选符合特定条件的用户群体,服务于运营圈人、精准营销等场景。

项目平台架构

第一部分:标签管理平台

一、功能模块
  • 基础标签管理
  • 组合标签构建
  • 画像模块
    • 微观画像(单个用户)
    • 群体画像(用户群特征分析)
  • 标签查询系统
二、基础标签分类体系
1. 按数据来源划分
分类描述
人员属性如性别、年龄、职业、教育程度、婚姻状况等。
商业属性如消费频次、客单价、品类偏好、品牌偏好等。
行为属性如登录频率、页面浏览路径、加购行为、收藏行为、搜索行为等。
用户价值基于RFM模型或其他价值评估模型划分的高/中/低价值用户。
2. 按实现方式划分
类型描述
规则匹配标签基于明确业务规则生成,如“近7天有下单”、“浏览过手机类目”。
统计类型标签通过聚合计算得出,如“月均消费金额”、“访问频次”。
挖掘类型标签利用机器学习或数据挖掘算法生成,如“潜在流失用户”、“价格敏感型用户”。
3. 标签等级划分
层级名称示例
一级标签主分类标签用户属性、行为特征、消费能力
二级标签主分类标签人口属性、浏览行为、购买行为
三级标签主分类标签性别、年龄段、设备类型
四级标签业务标签“女性用户”、“25-30岁用户”、“iOS设备用户”
五级标签属性标签具体值标签,如 gender=femaleage=28

说明:层级越高,抽象程度越高;层级越低,越具体可执行。


第二部分:标签模型应用开发

开发模式
  • 一个标签对应一个模型
    每个标签由独立的数据处理逻辑生成。

  • 一个模型即一个 Spark 程序
    使用 Apache Spark 进行大规模离线/准实时计算。
    支持批处理(T+1)与流式处理(近实时更新)两种模式。
    输出结果写入 HBase 和 ES/Solr。

示例:标签模型流程
[原始数据] ↓ (ETL清洗)
[Spark Job] → 计算"近30天购买频次"↓ (输出)
[HBase] → 存储用户ID + 频次值
[ES/Solr] → 构建索引,支持按“购买频次 > 5”查询人群

项目背景

概述

基于电商平台进行设计界开发,是面向注册会员的偏好、行为习惯和人员属性的画像还原。帮助提升营销平台提升营销的精准度,也方便个性化推荐系统,快速准确的为每个用户推荐相关的商品。

  1. 业务数据
    订单数据、访问日志数据、会员注册基本信息。
  2. 画像标签存储
    • HBase表:每个用户的个体画像
    • ElasticSearch、Solr索引:方便依据不同标签条件组成查询出相应用户群体。
  3. 项目平台:
    • 第一部分:标签管理平台
    • 第一块:基础标签、组合标签、画像模块(微观画像、群体画像)、标签查询
      针对基础标签:分类和等级划分
      从不同角度来说,标签划分不同类别
      从数据源:人员属性、商业属性、行为属性和用户价值
      从实现程度:规则匹配标签、统计类型标签、挖掘类型标签
      标签划分等级
      主分类标签:一级、二级、三级标签
      业务标签:四级标签
      属性标签:五级标签
      第二部分:标签模型应用开发
      一个标签对应一个模型,一个模型就是一个spark程序;
      第三部分:

数据化运营

为什么使用Hbase数据库?因为对于用户的标签可能会增加,使用MySQL并不能很好的管理标签。
用户基础数据存储在Hbase中

元数据管理:管理标签
针对用户画像标签系统来说,需要管理整个系统中有多少类型标签,每个标签的对应值有哪些?
存储在MySQL中

画像数据

涉及的数据有两类:

  • 第一类数据:标签数据(元数据MetaData) MySQL
    • 存储标签的基本信息数据,每个标签名称、标签的值、标签的级别(类型)等。
  • 第二类数据:用户画像标签
    • 存储HBase表中,tbl_prifile
      ROW_KEY:userId
      列簇 ColumnFamily:
      • 用户标签列簇:user
      • 商品标签列簇:item
      • 列值:每个标签 tagName -> tagValue
      • 在HBase Shell命令行中创建用户标签表
        create 'tbl_profile', 'user', 'item'
    • 存储ElasticSearch索引:tags_index
      • 替换CDH 产品的 solr

架构

tag-web模块:标签管理平台
tag-model模块:给所有用户打上某个标签的值
tag-web模块依赖tag-model模块,tag-web平台执行tag-model模块中的一些应用,所以model模块先编译安装。

  1. 安装install
    在这里插入图片描述
  2. 查看安装后的模块
    [INFO] Installing D:\project\profile-tags\tags-model\target\tags-model_2.11-1.0.0.jar to D:\BigdataUser\m2-3.3.9\repository\cn\itcast\tags\tags-model_2.11\1.0.0\tags-model_2.11-1.0.0.jar
    [INFO] Installing D:\project\profile-tags\tags-model\pom.xml to D:\BigdataUser\m2-3.3.9\repository\cn\itcast\tags\tags-model_2.11\1.0.0\tags-model_2.11-1.0.0.pom
    不需要再配置Tomcat,直接使用SpringBoot。

画像技术架构图

  1. 数据源层
  • MySQL数据库表、日志文件
  1. 数据存储层
  • 采集工具:sqoop、flume、Cannal
  1. 数据分析层
  • 主要使用SparkSQL、SparkMlib构建用户标签
  • 标签数据存储:HBase、Solr/Elastcisearch
  1. 标签元数据
  • 主要管理整个用户画像平台中哪些标签,标签的基本信息
  • 存储在MySQL表中
  1. 每个标签开发完成后,每隔一段时间运行应用程序,给用户打上标签值
  • 使用Oozie中Coordinator调度器。

技术架构图

技术架构图

功能架构图

用户画像:将用户数据进行标签化,给用户打标签。

在这里插入图片描述
HBase通过协处理器可以监控表中是否有数据变化。

用户画像标签开发中,按照标签开发难易程度划分:

  1. 规则匹配类型标签,可以理解为 if_else
  2. 统计类型标签,使用聚合函数统计
  3. 挖掘类型标签,设计机器学习算法

标签系统概述

基础标签

标签分类

在用户画像项目中,将标签按照级别进行划分,总共氛围5个级别标签。

  • 1,2,3 主分类标签
  • 4级 业务标签 性别标签
  • 5级 属性标签 男女属性

    为什么主分类是三级?是根据具体的电商场景为例。
    以淘宝为例来说,淘宝网的子行业
    天猫超市、苏宁易购等等
    然后是用户。

一个标签(四级标签、业务标签)对应一个模型,每个模型对应一个spark应用。
1、标签表:tbl_basic_tag
2、模型表:tbl_model

标签规则:
当对所有用户计算该标签值时使用数据源信息。
用户基本信息表数据所在的数据源,以及对应的字段。
例如:从HBase表加载数据:
需要 ZooKeeper的地址信息:zkHosts、zkPort、zkNodePath、表的名称(table)、列簇(famliy)、字段(columns);

程序入口:对应的Spark应用运行主类
算法名称:挖掘类型、统计类型
算法引擎:jar包
模型参数:spark运行的资源参数

标签体系:
基础标签、组合标签
画像体系:
微观画像、标签查询

微观画像:从HBase表查询 tpl_profile 画像标签表,直接依据UserID查询即可。
标签查询:从搜索引擎Solr/ElasticSearch中进行查询。

大数据环境

企业的实际项目中:
大数据管理Web界面,方便安装部署和监控大数据框架组件:
CLouderManager:CM
Ambari:开源 /etc/

大数据平台基础环境

项目启动

ZooKeeper启动

cd /export/servers/zookeeper
./bin/zkServer.sh start

Hadoop启动

#启动Hadoop 的 namenode
hadoop-daemon.sh start namenode
#启动Hadoop的datanode
hadoop-daemon.sh start datanode

historyserver启动

 mr-jobhistory-daemon.sh start historyserver/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/sbin/start-history-server.sh

yarn

 yarn-daemon.sh start resourcemanageryarn-daemon.sh start nodemanager

[root@bigdata-cdh01 scripts]# cd ~
[root@bigdata-cdh01 ~]# clear
[root@bigdata-cdh01 ~]# ll
total 12
-rwxr–r-- 1 root root 2468 Nov 20 2019 env-bd.sh
-rw-r–r-- 1 root root 5710 Oct 8 21:57 zookeeper.out
env-bd.sh

hue启动

HUE_HOME=/export/servers/hue
HUE_LOG=${HUE_HOME}/hue-${DATE_STR}.log
/usr/bin/nohup ${HUE_HOME}/build/env/bin/supervisor > ${HUE_LOG} 2>&1 &

运行命令

#!/bin/bash# 设置 Spark 家目录
SPARK_HOME="/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0"# 提交 Spark 应用到 YARN 集群(集群模式)
${SPARK_HOME}/bin/spark-submit \--master yarn \--deploy-mode cluster \--class org.apache.spark.examples.SparkPi \--driver-memory 512m \--driver-cores 1 \--executor-memory 512m \--executor-cores 1 \--num-executors 2 \--queue default \hdfs://bigdata-cdh01.itcast.cn:8020/spark/spark-examples_2.11-2.2.0.jar \10

业务数据调研以及ETL

业务数据:原始存储在MySQL中
业务数据:大数据存储在HBase中

那么如何将原始存储的数据导入到HBase中?
将MySQL表数据导入到HDFS/Hive中,将数据存储为HFile文件,直接加载至HBase表(MR,Spark)。

将MySQL表数据同步都爱HBase表,方案如下:

  • Sqoop导入,增量或者全量
    • MySQL 到 HBase
  • Sqoop导入HDFS
    • MySQL 到 HDFS
    • HDFS到HBase中
      1.使用MapReduce程序
      2.使用Spark程序
      3.ImportTsv工具类,底层也是MapReduce程序

启动HBase数据库

切换到

cd /export/scripts/

然后运行脚本:
启动 HiveMetastore 服务和 HiveServer2 服务

 sh metastore-start.shsh hiverserver2-start.sh

使用 beeline 命令行连接

/export/servers/hive/bin/beeline!connect jdbc:hive2://bigdata-cdh01.itcast.cn:10000
#查看是否有10000端口的监听
netstat -anp | grep :10000
#输入用户名及密码
Enter username for jdbc:hive2://bigdata-cdh01.itcast.cn:10000: root
Enter password for jdbc:hive2://bigdata-cdh01.itcast.cn:10000: ****

创建表

创建数据库

CREATE DATABASE tags_dat;
USE tags_dat;

使用 Sqoop 创建 Hive 表
用户信息表:tbl_users

/export/servers/sqoop/bin/sqoop create-hive-table \
--connect jdbc:mysql://bigdata-cdh01.itcast.cn:3306/tags_dat \
--table tbl_users \
--username root \
--password 123456 \
--hive-table tags_dat.tbl_users \
--fields-terminated-by '\t' \
--lines-terminated-by '\n'

订单数据表:tbl_orders

/export/servers/sqoop/bin/sqoop create-hive-table \
--connect jdbc:mysql://bigdata-cdh01.itcast.cn:3306/tags_dat \
--table tbl_orders \
--username root \
--password 123456 \
--hive-table tags_dat.tbl_orders \
--fields-terminated-by '\t' \
--lines-terminated-by '\n'

商品表:tbl_goods

/export/servers/sqoop/bin/sqoop create-hive-table \
--connect jdbc:mysql://bigdata-cdh01.itcast.cn:3306/tags_dat \
--table tbl_goods \
--username root \
--password 123456 \
--hive-table tags_dat.tbl_goods \
--fields-terminated-by '\t' \
--lines-terminated-by '\n'

行为日志表:tbl_logs

/export/servers/sqoop/bin/sqoop create-hive-table \
--connect jdbc:mysql://bigdata-cdh01.itcast.cn:3306/tags_dat \
--table tbl_logs \
--username root \
--password 123456 \
--hive-table tags_dat.tbl_logs \
--fields-terminated-by '\t' \
--lines-terminated-by '\n'

导入数据到Hive表中

通过Sqoop工具导入到Hive表中;

用户信息表:tbl_users

/export/servers/sqoop/bin/sqoop import \
--connect jdbc:mysql://bigdata-cdh01.itcast.cn:3306/tags_dat \
--username root \
--password 123456 \
--table tbl_users \
--direct \
--hive-overwrite \
--delete-target-dir \
--fields-terminated-by '\t' \
--lines-terminated-by '\n' \
--hive-table tags_dat.tbl_users \
--hive-import \
--num-mappers 1

订单数据表:tbl_orders

/export/servers/sqoop/bin/sqoop import \
--connect jdbc:mysql://bigdata-cdh01.itcast.cn:3306/tags_dat \
--username root \
--password 123456 \
--table tbl_orders \
--direct \
--hive-overwrite \
--delete-target-dir \
--fields-terminated-by '\t' \
--lines-terminated-by '\n' \
--hive-table tags_dat.tbl_orders \
--hive-import \
--num-mappers 10

商品表:tbl_goods

/export/servers/sqoop/bin/sqoop import \
--connect jdbc:mysql://bigdata-cdh01.itcast.cn:3306/tags_dat \
--username root \
--password 123456 \
--table tbl_goods \
--direct \
--hive-overwrite \
--delete-target-dir \
--fields-terminated-by '\t' \
--lines-terminated-by '\n' \
--hive-table tags_dat.tbl_goods \
--hive-import \
--num-mappers 5

行为日志表:tbl_logs

/export/servers/sqoop/bin/sqoop import \
--connect jdbc:mysql://bigdata-cdh01.itcast.cn:3306/tags_dat \
--username root \
--password 123456 \
--table tbl_logs \
--direct \
--hive-overwrite \
--delete-target-dir \
--fields-terminated-by '\t' \
--lines-terminated-by '\n' \
--hive-table tags_dat.tbl_logs \
--hive-import \
--num-mappers 1

数据迁移ETL

如何将业务数据从MySQL迁移(ETL)到HBase表中,不同方案。
涉及到编写程序:MR程序、Spark程序

数据导入
  1. Sqoop导入
    • 直接将MySQL数据库表的数据同步导入至HBase表,底层运行MapReduce程序。
  2. MapReduce导入
  3. Spark RDD导入
    • 编写程序,读取HDFS上文件数据,导入到HBase表中,需要将MySQL表的数据导入到HDFS、Hive中。
    • 针对MapReduce导入,直接使HBase提供工具类ImportTsv,自己编写MapReduce导入。
启动HBase
hbase-daemon.sh start master
hbase-daemon.sh start regionserver
HBase创建表
#进入HBase中
hbase shell
#列出所有的表
list
#创建四张表 tbl_logs tbl_orders tbl_users tbl_goods
create 'tbl_users', 'detail'
create 'tbl_orders', 'detail'
create 'tbl_goods', 'detail'
create 'tbl_logs', 'detail', SPLITS => ['189394']
数据迁移 - Sqoop导入

可以使用 Sqoop 将 MySQL 表的数据导入到 HBase 表中,需指定表的名称、列簇及 RowKey。示例如下:

/export/servers/sqoop/bin/sqoop import \
-D sqoop.hbase.add.row.key=true \
--connect jdbc:mysql://bigdata-cdh01.itcast.cn:3306/tags_dat \
--username root \
--password 123456 \
--table tbl_users \
--hbase-create-table \
--hbase-table tbl_users \
--column-family detail \
--hbase-row-key id \
--num-mappers 2

使用 Sqoop 从MySQL导入到HBase,有一个限制:组合字段主键。
需要指定 RDBMs 表中的某个字段作为HBase表的RowKey,如果HBase表的RowKey为多个字段组合,就无法指定,那么这种方式就无法使用。

数据迁移 - HBase ImportTSV工具导入

ImportTSV 是 HBase 提供的一个工具,用于将 TSV(Tab-Separated Values)格式的文本数据导入到 HBase 表中。TSV 文件也可以是 CSV 格式,每行数据中各个字段使用分隔符分隔。
支持两种导入方式:

  1. 使用 Put 方式逐条加载导入。
  2. 使用 BulkLoad 方式进行批量加载导入。

查看 HBase 官方自带工具的使用说明,执行以下命令:

HADOOP_HOME=/export/servers/hadoop
HBASE_HOME=/export/servers/hbase
HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp`:${HBASE_HOME}/conf ${HADOOP_HOME}/bin/yarn jar ${HBASE_HOME}/lib/hbase-server-1.2.0-cdh5.14.0.jar

importtsv

Usage: importtsv -Dimporttsv.columns=a,b,c <tablename> <inputdir>

标签模型调度

每个标签对应一个模型,每个模型就是一个Spark应用程序,使用Oozie调度。

  • 方式1:编写配置文件,使用命令行运行Oozie Job;
  • 方式2:Oozie继承Hue,编写Oozie Job并调度执行;
  • 方式3:Oozie Java Client API创建Oozie Job并执行;

标签存储与计算和用户画像开发时模块

  • 理解标签数据存储与计算
  • 开发整个用户画像时,模块组合及准备环境
    • 工具类模块
    • Web平台模块
    • 标签模型开发模块
http://www.dtcms.com/a/475314.html

相关文章:

  • 网站建设风险管理计划永久免费网站空间
  • 网站维护的工作内容微信公众号怎么推广
  • 外贸企业网站网站支付方案的设计
  • 网站建设完成确认书网站建设公司 lnmp
  • 做外贸网站用什么空间成都抢先看新钱新闻全搜索
  • 【自记】MaxCompute 补数据与生产环境数据初始化完整说明
  • java监听邮箱并读取邮箱、邮箱内附件内容
  • 乐平市网站建设网站建设板块
  • 新网站怎样做外链wordpress 文章发布时间
  • 视觉语言模型(如 CLIP 或 BLIP) 和 向量数据库 来构建一个智能审核系统 思路
  • 洛谷P5838 [USACO19DEC] Milk Visits G
  • 南京做网站优化的企业做宣传册的公司
  • 消失模铸造数字化转型-数字化智能制造平台在消失模铸造全过程可追溯的深化案例
  • 淄博学校网站建设方案wordpress子主题安全
  • 网站开发的技术难点专业网站建设常州
  • 网站投票页面怎么做低价网站建设推广优化
  • 宁波网站推广宣传wordpress会员导出
  • 湖南网站推广优化电子商务网站建设运营
  • 城乡建设杂志官方网站seo网站推广优化
  • 兼职做网站挣钱么网站的做用
  • 管理软件开发公司网站内容优化的重要性
  • 对网站策划的看法推动高质量发展发言材料
  • Ubuntu CUDA Toolkit安装失败
  • 取消网站备案号个人网页制作设计模板
  • 宣城市网站建设wordpress支持MySQL5.5
  • 高校后勤网站建设龙口建网站
  • 审计实务网站建设论文简述网站推广的方法
  • 国通快速免费建站国外做宠物产品的网站
  • 成都广告公司网站建设2008 做网站
  • 计算机毕业设计选题推荐:基于SpringBoot和Vue的快递物流仓库管理系统【源码+文档+调试】