寫在前面: 博主是一名軟件工程系大數據應用開發專業大二的學生,暱稱來源於《愛麗絲夢遊仙境》中的Alice和自己的暱稱。作爲一名互聯網小白,
寫博客一方面是爲了記錄自己的學習歷程,一方面是希望能夠幫助到很多和自己一樣處於起步階段的萌新
。由於水平有限,博客中難免會有一些錯誤,有紕漏之處懇請各位大佬不吝賜教!個人小站:http://alices.ibilibili.xyz/ , 博客主頁:https://alice.blog.csdn.net/
儘管當前水平可能不及各位大佬,但我還是希望自己能夠做得更好,因爲一天的生活就是一生的縮影
。我希望在最美的年華,做最好的自己
!
在前面幾篇博客中,博主已經爲大家帶來了什麼是用戶畫像,以及項目的一個基礎介紹。用戶畫像的核心就是打標籤,本篇博客,我們來聊聊關於這個項目的標籤系統。
文章目錄
1. 標籤系統
1.1 基礎標籤
1.1.1、概覽:基礎標籤
啓動WEB 項目後,瀏覽器登錄,默認賬號與密碼,點擊【登錄】即可,下圖所示:
進入系統後,直接顯示【基礎標籤】頁面,重要功能如下所示:
上述所表述的5個按鈕,主要構建標籤、查看標籤和編輯標籤,具體說明如下:
1、基礎標籤 Tag頁
2、基礎標籤 分類
按照標籤體系劃分標籤爲4級、5級標籤
- 4級標籤:業務標籤
- 5級標籤:業務標籤對應的值(屬性標籤)
3、新建主分類標籤
1級、2級、3級分類標籤
4、創建業務標籤
具體業務標籤,其中有很多相關設置,關於標籤如何構建(讀取數據源、運行Spark程序及調度策略)
5、針對業務標籤操作
- 啓動:業務標籤運行程序生成標籤
- 編輯:修改業務標籤屬性
- 刪除:將業務標籤刪除
1.1.2、新建:主分類標籤
用戶畫像構建時,標籤按照等級劃分,大致如下所示:
在WEB界面上,點擊左下角【新建主分類標籤】按鈕,即可新建1級、2級和3級標籤:
但是如果要刪除1級、2級和3級標籤,必須到後臺數據庫刪除。
1.1.3、新建:業務標籤
新建某個業務標籤(實際開發標籤,編寫Spark 應用程序),截圖選項如下:
具體參數說明如下(以新建【年齡段】業務標籤爲例):
1、標籤名稱:年齡段
2、標籤分類:商城-某商城-人口屬性
業務標籤屬於4級標籤,所以分類時指定所屬3級標籤
3、更新週期:每天#2019-08-01 01:00#2029-08-01 01:00
多久執行一次Spark任務
4、業務含義:註冊用戶的生日所屬年齡段
業務標籤含義說明
5、標籤規則:Key=Value形式,按照換行符分割
inType=hbase
zkHosts=192.168.10.20
zkPort=2181
hbaseTable=tbl_users
family=info
selectFieldNames=id,gender
6、程序入口:cn.itcast.tag.commons.models.pub.business.AgeRangeModel
Spark Application程序的全名稱
7、算法名稱:Statistics
業務標籤計算模型類型:統計-Statistics、規則匹配-Match、挖掘-具體算法-DecisionTree、KMeans
8、算法引擎:/apps/tags/models/tag_9/lib/tags-20190703231621.jar
Spark應用程序JAR包,通過頁面選擇jar包,上傳到HDFs目錄中
9、模型參數:Spark 應用程序執行資源參數設置
--deploy-mode cluster --driver-memory 2G --executor-memory 4G --num-executors 5 --executor-cores 2
1.1.4、存儲:標籤數據
上述新建的標籤數據存儲MySQL數據庫中,對應兩張表存儲數據,分別爲標籤表:tbl_basic_tag和模型表:tbl_model,具體說明如下:
- 標籤表:tbl_basic_tag,存儲標籤的基本信息,屬於基礎標籤
CREATE TABLE `tbl_basic_tag` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '標籤ID',
`name` varchar(50) DEFAULT NULL COMMENT '標籤名稱',
`industry` varchar(30) DEFAULT NULL COMMENT '行業、子行業、業務類型、標籤、屬性',
`rule` varchar(300) DEFAULT NULL COMMENT '標籤規則',
`business` varchar(100) DEFAULT NULL COMMENT '業務描述',
`level` int(11) DEFAULT NULL COMMENT '標籤等級',
`pid` bigint(20) DEFAULT NULL COMMENT '父標籤ID',
`ctime` datetime DEFAULT NULL COMMENT '創建時間',
`utime` datetime DEFAULT NULL COMMENT '修改時間',
`state` int(11) DEFAULT NULL COMMENT '狀態:1申請中、2開發中、3開發完成、4已上線、5已下線、6已禁用',
`remark` varchar(100) DEFAULT NULL COMMENT '備註',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=233 DEFAULT CHARSET=utf8 COMMENT='基礎標籤表';
- 模型表:tbl_model,存儲每個4級標籤具體Spark 應用程序相關信息,對應與基礎標籤
CREATE TABLE `tbl_model` (
`id` bigint(20) DEFAULT NULL,
`tag_id` bigint(20) DEFAULT NULL COMMENT '標籤ID',
`type` int(11) DEFAULT NULL COMMENT '算法類型:統計-Statistics、規則匹配-Match、挖掘-具體算法-DecisionTree',
`model_name` varchar(200) DEFAULT NULL COMMENT '模型名稱',
`model_main` varchar(200) DEFAULT NULL COMMENT '模型運行主類名稱',
`model_path` varchar(200) DEFAULT NULL COMMENT '模型JAR包HDFS路徑',
`sche_time` varchar(200) DEFAULT NULL COMMENT '模型調度時間',
`ctime` datetime DEFAULT NULL COMMENT '創建模型時間戳',
`utime` datetime DEFAULT NULL COMMENT '更新模型時間戳',
`state` int(11) DEFAULT NULL COMMENT '模型狀態,1:運行;0:停止',
`remark` varchar(100) DEFAULT NULL,
`operator` varchar(100) DEFAULT NULL,
`operation` varchar(100) DEFAULT NULL,
`args` varchar(100) DEFAULT NULL COMMENT '模型運行應用配置參數,如資源配置參數'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
依據上述兩張表可以通過關聯查詢可以獲取WEB 頁面上表的基本信息,SQL如下(傳遞標籤ID):
USE tags ;
SELECT
tb.id AS tagId, tb.`name` AS tagName, tb.business, tb.industry,
tb.`level`, tb.rule, tb.model_main AS modelMain, tb.model_name AS modelName,
tb.model_path AS modelPath, tb.sche_time AS schetime, tb.args
FROM (
SELECT
tb1.id, tb1.`name`, tb1.business, tb1.industry,
tb1.`level`, tb1.pid, tb1.state, tb2.model_main,
tb2.model_name, tb2.model_path, tb2.sche_time,
tb3.rule, tb2.args
FROM
tbl_basic_tag tb1
INNER JOIN
tbl_model tb2
ON
tb1.id = tb2.tag_id
INNER JOIN
tbl_rule tb3 ON tb1.id = tb3.tag_id
) tb
WHERE
1 = 1 AND tb.state != -1 AND tb.id = 8 ;
1.1.5、新建:5級標籤
每個業務標籤(4級標籤)對應值稱之爲5級標籤,所以在新建業務標籤(4級標籤)以後,需要在其下面新建具體的值(5級標籤),如下圖所示:
字段具體說明:
1、標籤名稱:50後
2、業務含義:註冊會員出生日期爲1950年-1959年區間的
3、標籤規則:19500101-19591231
新建【年齡段】業務標籤:4級標籤後,新建值標籤:5級標籤爲例,截圖如下:
1.1.6、總述:新建標籤
依據上述分析,如果要開發一個標籤,業務需求整理完成以後,需在平臺上新建標籤,統一管理調度執行,以新建:【人口屬性】-【性別標籤】爲例:
- 新建業務標籤(4級標籤)
- 新建業務標籤值標籤(5級標籤、屬性標籤):性別標籤有兩個值-男和女
□ 標籤值:男
□ 標籤值:女
1.2、組合標籤
基於已經存在的【基礎標籤】進行邏輯組合,形成特定業務標籤,如下列舉4個組合標籤:
WEB 系統展示如下:
新建【組合標籤】,具體操作如下圖步驟:
選擇【業務標籤】,再選取對應的值,點擊【添加】按鈕,所有標籤選擇完成後,單擊【下一步】。
組合標籤名稱、含義及用途等信息,最後保存並提交申請。
1.3、微觀畫像
依據用戶:身份證號、手機號、QQ及Email,檢索查詢用戶所有標籤信息,構建展示用戶畫像信息。
使用官方提供的身份證號【110115199402265244】查詢檢索,展示結果如下:
1.4、標籤查詢
依據標籤篩選(各種標籤組合)查詢對應用戶信息,底層使用solr完成。
小結
本篇博客主要爲大家介紹了【企業級用戶畫像】項目的標籤系統,包含不同標籤的細緻分類以及效果展示。後續博主會爲大家帶來如何針對不同的標籤進行開發,敬請期待😎
如果以上過程中出現了任何的紕漏錯誤,煩請大佬們指正😅
受益的朋友或對大數據技術感興趣的夥伴記得點贊關注支持一波🙏