spark用戶訪問session分析


 基礎數據結構

  • user_visit_action 點擊流數據 (hive表)
    date  //日期:代表用戶點擊行為是在哪一天發生 采用時間戳好比較
    user_id  //代表這個點擊行為是哪一個用戶執行的
    session_id //唯一標識了某個用戶的一個訪問session
    page_id //頁面的id,點擊品類,進入某個頁面
    action_time//這個點擊行為發生的時間點
    search_keyword //搜索的關鍵詞
    click_category_id //網站首頁點擊了某個品類
    click_product_id //網站列表頁點擊了某個商品
    order_category_ids //代表了將某些商品加入了購物車,然后一次性的對商品下了單,某次下單行為中,有哪些商品品類
    order_product_ids //某次下單行為中,有哪些商品
    pay_category_ids //一次支付行為中對應了哪些品類
    pay_product_ids  //支付行為中,對應了哪些具體的商品
    
  • user_info 用戶信息表(hive表)
    user_id //用戶的唯一標識
    username //用戶的登錄名
    name //用戶名
    age //年齡
    professinal //職業
    city //城市
    
  • task表(mysql表)

    task_id   //主鍵
    task_name //任務名稱
    create_time //創建時間
    start_time //開始運行的時間
    finish_time //結束運行的時間
    task_type //任務類型
    task_status //任務狀態,對應spark作業運行的狀態
    task_param //用來使用json的格式來封裝用戶提交的任務的特殊篩選參數
    
  • 交互流程     

               1.j2ee平台的使用者,向平台提交任務(包含任務參數),並將任務插入到mysql表中的task表

               2.Runtime,Process等API去執行一個封裝了spark-submit命令的linux的shell腳本

               3.然后編寫jar提交spark集群中運行

需求分析

  • 按條件篩選session

         1.搜索過某些關鍵詞的用戶

        2.訪問時間在某個時間段內的用戶

        3.年齡在某個范圍內的用戶

        4.職業在某個范圍內的用戶

        5.某個城市發起的session

        功能作用:對感興趣的用戶群體進行業務分析

  • 統計出符合條件的session,訪問時長在1s~3s,4s~6s,7s~9s,10s~30s,30s~60s,1m~3m,3m~10m,10m~30m  

        ,30m以上的各范圍的session占比,訪問步長(訪問時長除於點擊的頁面)在1~3,4~6,7~9,10~30,30~60,60以上的各范圍內的session占比

         功能作用:從全局的角度,符合某些條件的用戶群體,使用我們的產品的一些習慣

  • 在符合條件的session中,按照時間比例隨機抽取1000個session

        功能作用:對於符合條件的session,按照時間比例采樣,具體觀察每個session的點擊流行為

  • 在符合條件的session中,獲取點擊,下單和支付數量排名前10的品類
  • 對於排名前10的品類,分別獲取其點擊次數排名前10的session

 

技術架構設計

      數據表結構設計(MySQL面向結果)

  •       session_aggr_stat 存儲session聚合統計的結果
    CREATE TABLE `session_aggr_stat`(
    `task_id` int(11) NOT NULL,
    `session_count` int(11) DEFAULT NULL,
    `1s_3s` double DEFAULT NULL,
    `4s_6s` double DEFAULT NULL,
    `7s_9s` double DEFAULT NULL,
    `10s_30s` double DEFAULT NULL,
    `30s_60s` double DEFAULT NULL,
    `1m_3m` double DEFAULT NULL,
    `3m_10m` double DEFAULT NULL,
    `10m_30m` double DEFAULT NULL,
    `30m` double DEFAULT NULL,
    `1_3` double DEFAULT NULL,
    `4_6` double DEFAULT NULL,
    `7_9` double DEFAULT NULL,
    `10_30` double DEFAULT NULL,
    `30_60` double DEFAULT NULL,
    `60` double DEFAULT NULL,
    PRIMARY KEY (`task_id`)
    )ENGINE=InnoDB 
    

     

  • session_random_extract 存儲按時間比例隨機抽取出來的1000的session
    CREATE TABLE `session_random_extract`(
    `task_id` int(11) NOT NULL,
    `session_id` varchar(255) DEFAULT NULL,
    `start_time` varchar(50) DEFAULT NULL,
    `end_time` varchar(50) DEFAULT NULL,
    `search_keywords` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`task_id`)
    )
    

     

  • top10_category  存儲按點擊,下單,支付的品類數據
    CREATE TABLE `top10_category`(
    `task_id` int(11) NOT NULL,
    `category_id` int(11) DEFAULT NULL,
    `click_count` int(11) DEFAULT NULL,
    `order_count` int(11) DEFAULT NULL,
    `pay_count` int(11) DEFAULT NULL,
    PRIMARY KEY (`task_id`)
    )

     

  • top10_category_session 存儲top10品類的點擊top10session
    CREATE TABLE `top10_category_session`(
    `task_id` int(11) NOT NULL,
    `category_id` int(11) DEFAULT NULL,
    `click_count` int(11) DEFAULT NULL,
    `session_id` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`task_id`)
    )
    

     

  • session_detail 存儲隨機抽取出來的session的明細數據,top10品類的session明細數據
    CREATE TABLE `session_detail`(
    `task_id` int(11) NOT NULL,
    `user_id` int(11) DEFAULT NULL,
    `session_id` varchar(255) DEFAULT NULL,
    `page_id`  int(11) DEFAULT NULL,
    `page_name` varchar(255) DEFAULT NULL,
    `action_name` varchar(255) DEFAULT NULL,
    `search_keywords` varchar(255) DEFAULT NULL,
    `click_category_id` int(11) DEFAULT NULL,
    `click_product_id` int(11) DEFAULT NULL,
    `order_category_ids` varchar(255) DEFAULT NULL,
    `order_product_ids` varchar(255) DEFAULT NULL,
    `pay_category_ids` varchar(255) DEFAULT NULL,
    `pay_product_ids` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`task_id`)
    )
    

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM