国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python畢設選題 - flink大數(shù)據(jù)淘寶用戶行為數(shù)據(jù)實時分析與可視化

這篇具有很好參考價值的文章主要介紹了python畢設選題 - flink大數(shù)據(jù)淘寶用戶行為數(shù)據(jù)實時分析與可視化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


0 前言

?? 這兩年開始畢業(yè)設計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設題目缺少創(chuàng)新和亮點,往往達不到畢業(yè)答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統(tǒng)達不到老師的要求。

為了大家能夠順利以及最少的精力通過畢設,學長分享優(yōu)質(zhì)畢業(yè)設計項目,今天要分享的是

?? flink大數(shù)據(jù)淘寶用戶行為數(shù)據(jù)實時分析與可視化

??學長這里給一個題目綜合評分(每項滿分5分)

  • 難度系數(shù):3分
  • 工作量:3分
  • 創(chuàng)新點:4分

1、環(huán)境準備

1.1 flink 下載相關 jar 包

flink-sql 連接外部系統(tǒng)時,需要依賴特定的 jar 包,所以需要事先把這些 jar 包準備好。說明與下載入口

本項目使用到了以下的 jar 包 ,下載后直接放在了 flink/lib 里面。

需要注意的是 flink-sql 執(zhí)行時,是轉(zhuǎn)化為 flink-job 提交到集群執(zhí)行的,所以 flink 集群的每一臺機器都要添加以下的 jar 包。

外部 版本 jar
kafka 4.1 flink-sql-connector-kafka_2.11-1.10.2.jar
flink-json-1.10.2-sql-jar.jar
elasticsearch 7.6 flink-sql-connector-elasticsearch7_2.11-1.10.2.jar
mysql 5.7 flink-jdbc_2.11-1.10.2.jar
mysql-connector-java-8.0.11.jar

1.2 生成 kafka 數(shù)據(jù)

用戶行為數(shù)據(jù)來源: 阿里云天池公開數(shù)據(jù)集

網(wǎng)盤:https://pan.baidu.com/s/1wDVQpRV7giIlLJJgRZAInQ 提取碼:gja5

商品類目緯度數(shù)據(jù)來源: category.sql

數(shù)據(jù)生成器:datagen.py

有了數(shù)據(jù)文件之后,使用 python 讀取文件數(shù)據(jù),然后并發(fā)寫入到 kafka。

修改生成器中的 kafka 地址配置,然后運行 以下命令,開始不斷往 kafka 寫數(shù)據(jù)

# 5000 并發(fā)
nohup python3 datagen.py 5000 &                  

1.3 開發(fā)前的三個小 tip

  • 生成器往 kafka 寫數(shù)據(jù),會自動創(chuàng)建主題,無需事先創(chuàng)建

  • flink 往 elasticsearch 寫數(shù)據(jù),會自動創(chuàng)建索引,無需事先創(chuàng)建

  • Kibana 使用索引模式從 Elasticsearch 索引中檢索數(shù)據(jù),以實現(xiàn)諸如可視化等功能。

使用的邏輯為:創(chuàng)建索引模式 》Discover (發(fā)現(xiàn)) 查看索引數(shù)據(jù) 》visualize(可視化)創(chuàng)建可視化圖表》dashboards(儀表板)創(chuàng)建大屏,即匯總多個可視化的圖表

2、flink-sql 客戶端編寫運行 sql

# 進入 flink-sql 客戶端, 需要指定剛剛下載的 jar 包目錄
./bin/sql-client.sh embedded -l lib

2.1 創(chuàng)建 kafka 數(shù)據(jù)源表

-- 創(chuàng)建 kafka 表, 讀取 kafka 數(shù)據(jù)
CREATE TABLE user_behavior (
    user_id BIGINT,
    item_id BIGINT,
    category_id BIGINT,
    behavior STRING,
    ts TIMESTAMP(3),
    proctime as PROCTIME(),
    WATERMARK FOR ts as ts - INTERVAL '5' SECOND  
) WITH (
    'connector.type' = 'kafka', 
    'connector.version' = 'universal',  
    'connector.topic' = 'user_behavior',  
    'connector.startup-mode' = 'earliest-offset', 
    'connector.properties.zookeeper.connect' = '172.16.122.24:2181', 
    'connector.properties.bootstrap.servers' = '172.16.122.17:9092', 
    'format.type' = 'json'  
);
SELECT * FROM user_behavior;

2.2 指標統(tǒng)計:每小時成交量

2.2.1 創(chuàng)建 es 結(jié)果表, 存放每小時的成交量

CREATE TABLE buy_cnt_per_hour (
    hour_of_day BIGINT,
    buy_cnt BIGINT
) WITH (
    'connector.type' = 'elasticsearch', 
    'connector.version' = '7',  
    'connector.hosts' = 'http://172.16.122.13:9200',  
    'connector.index' = 'buy_cnt_per_hour',
    'connector.document-type' = 'user_behavior',
    'connector.bulk-flush.max-actions' = '1',
    'update-mode' = 'append',
    'format.type' = 'json'
);

2.2.2 執(zhí)行 sql ,統(tǒng)計每小時的成交量

INSERT INTO buy_cnt_per_hour
SELECT HOUR(TUMBLE_START(ts, INTERVAL '1' HOUR)), COUNT(*)
FROM user_behavior
WHERE behavior = 'buy'
GROUP BY TUMBLE(ts, INTERVAL '1' HOUR);

2.3 指標統(tǒng)計:每10分鐘累計獨立用戶數(shù)

2.3.1 創(chuàng)建 es 結(jié)果表,存放每10分鐘累計獨立用戶數(shù)

CREATE TABLE cumulative_uv (
    time_str STRING,
    uv BIGINT
) WITH (
    'connector.type' = 'elasticsearch', 
    'connector.version' = '7',  
    'connector.hosts' = 'http://172.16.122.13:9200',  
    'connector.index' = 'cumulative_uv',
    'connector.document-type' = 'user_behavior',    
    'update-mode' = 'upsert',
    'format.type' = 'json'
);

2.3.2 創(chuàng)建視圖

CREATE VIEW uv_per_10min AS
SELECT
  MAX(SUBSTR(DATE_FORMAT(ts, 'HH:mm'),1,4) || '0') OVER w AS time_str,
  COUNT(DISTINCT user_id) OVER w AS uv
FROM user_behavior
WINDOW w AS (ORDER BY proctime ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW);

2.3.3 執(zhí)行 sql ,統(tǒng)計每10分鐘的累計獨立用戶數(shù)

INSERT INTO cumulative_uv
SELECT time_str, MAX(uv)
FROM uv_per_10min
GROUP BY time_str;

2.4 指標統(tǒng)計:商品類目銷量排行

2.4.1 創(chuàng)建商品類目維表

先在 mysql 創(chuàng)建一張商品類目的維表,然后配置 flink 讀取 mysql。

CREATE TABLE category_dim (
    sub_category_id BIGINT,
    parent_category_name STRING
) WITH (
    'connector.type' = 'jdbc',
    'connector.url' = 'jdbc:mysql://172.16.122.25:3306/flink',
    'connector.table' = 'category',
    'connector.driver' = 'com.mysql.jdbc.Driver',
    'connector.username' = 'root',
    'connector.password' = 'root',
    'connector.lookup.cache.max-rows' = '5000',
    'connector.lookup.cache.ttl' = '10min'
);

2.4.1 創(chuàng)建 es 結(jié)果表,存放商品類目排行表

CREATE TABLE top_category  (
    category_name  STRING,
    buy_cnt  BIGINT
) WITH (
    'connector.type' = 'elasticsearch', 
    'connector.version' = '7',  
    'connector.hosts' = 'http://172.16.122.13:9200',  
    'connector.index' = 'top_category',
    'connector.document-type' = 'user_behavior',
    'update-mode' = 'upsert',
    'format.type' = 'json'
);

2.4.2 創(chuàng)建視圖

CREATE VIEW rich_user_behavior AS
SELECT U.user_id, U.item_id, U.behavior, C.parent_category_name as category_name
FROM user_behavior AS U LEFT JOIN category_dim FOR SYSTEM_TIME AS OF U.proctime AS C
ON U.category_id = C.sub_category_id;

2.4.3 執(zhí)行 sql , 統(tǒng)計商品類目銷量排行

INSERT INTO top_category
SELECT category_name, COUNT(*) buy_cnt
FROM rich_user_behavior
WHERE behavior = 'buy'
GROUP BY category_name;

3、最終效果與體驗心得

3.1 最終效果

整個開發(fā)過程,只用到了 flink-sql ,無需寫 java 或者其它代碼,就完成了這樣一個實時報表。

python畢設選題 - flink大數(shù)據(jù)淘寶用戶行為數(shù)據(jù)實時分析與可視化,畢業(yè)設計,python,畢設

3.2 體驗心得

3.2.1 執(zhí)行

  • flink-sql 的 ddl 語句不會觸發(fā) flink-job , 同時創(chuàng)建的表、視圖僅在會話級別有效。

  • 對于連接表的 insert、select 等操作,則會觸發(fā)相應的流 job, 并自動提交到 flink 集群,無限地運行下去,直到主動取消或者 job 報錯。

  • flink-sql 客戶端關閉后,對于已經(jīng)提交到 flink 集群的 job 不會有任何影響。

本次開發(fā),執(zhí)行了 3 個 insert , 因此打開 flink 集群面板,可以看到有 3 個無限的流 job 。即使 kafka 數(shù)據(jù)全部寫入完畢,關閉 flink-sql 客戶端,這個 3 個 job 都不會停止。
python畢設選題 - flink大數(shù)據(jù)淘寶用戶行為數(shù)據(jù)實時分析與可視化,畢業(yè)設計,python,畢設

3.2.2 存儲

  • flnik 本身不存儲業(yè)務數(shù)據(jù),只作為流批一體的引擎存在,所以主要的用法為讀取外部系統(tǒng)的數(shù)據(jù),處理后,再寫到外部系統(tǒng)。

  • flink 本身的元數(shù)據(jù),包括表、函數(shù)等,默認情況下只是存放在內(nèi)存里面,所以僅會話級別有效。但是,似乎可以存儲到 Hive Metastore 中,關于這一點就留到以后再實踐。文章來源地址http://www.zghlxwxcb.cn/news/detail-790209.html

4 最后

到了這里,關于python畢設選題 - flink大數(shù)據(jù)淘寶用戶行為數(shù)據(jù)實時分析與可視化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 大數(shù)據(jù)實戰(zhàn) --- 淘寶用戶行為數(shù)據(jù)分析

    大數(shù)據(jù)實戰(zhàn) --- 淘寶用戶行為數(shù)據(jù)分析

    目錄 開發(fā)環(huán)境? 數(shù)據(jù)描述 功能需求 數(shù)據(jù)準備 數(shù)據(jù)清洗 用戶行為分析 找出有價值的用戶 Hadoop+Hive+Spark+HBase 啟動Hadoop :start-all.sh 啟動zookeeper :zkServer.sh start 啟動Hive : nohup hiveserver2 1/dev/null 21 beeline -u jdbc:hive2://192.168.152.192:10000 啟動Hbase : start-hbase.sh hbase shell 啟動Spark :s

    2023年04月22日
    瀏覽(34)
  • 天池賽:淘寶用戶購物行為數(shù)據(jù)可視化分析

    天池賽:淘寶用戶購物行為數(shù)據(jù)可視化分析

    目錄 前言 一、賽題介紹 二、數(shù)據(jù)清洗、特征構(gòu)建、特征可視化 1.數(shù)據(jù)缺失值及重復值處理 2.日期分離,PV及UV構(gòu)建 3.PV及UV可視化 4.用戶行為可視化 4.1 各個行為的面積圖(以UV為例) 4.2 各個行為的熱力圖 5.轉(zhuǎn)化率可視化 三、RFM模型 1.構(gòu)建R、F、M 2.RFM的數(shù)據(jù)統(tǒng)計分布 3.計算

    2024年01月22日
    瀏覽(27)
  • 【TIANCHI】天池大數(shù)據(jù)競賽(學習賽)--- 淘寶用戶購物行為數(shù)據(jù)可視化分析

    【TIANCHI】天池大數(shù)據(jù)競賽(學習賽)--- 淘寶用戶購物行為數(shù)據(jù)可視化分析

    目錄 前言 一、數(shù)據(jù)集的來源和各個字段的意義 二、數(shù)據(jù)分析 1.引入庫 2.讀入數(shù)據(jù) 3.查看數(shù)據(jù)數(shù)量級 4.PV(Page View)/UV訪問量 5.漏斗模型 6.用戶購買商品的頻次分析。 7.ARPPU(average revenue per paying user) ?計算 ARPPU ?ARPPU出圖 8.復購情況分析 計算用戶購買頻次 復購周期分析 總結(jié)

    2024年02月09日
    瀏覽(22)
  • 基于Python的淘寶行為數(shù)據(jù)可視化分析

    基于Python的淘寶行為數(shù)據(jù)可視化分析

    完成如下商業(yè)分析任務,通過數(shù)據(jù)分析和可視化展示,充分挖掘數(shù)據(jù)的價值,讓數(shù)據(jù)更好地為業(yè)務服務: 流量分析 :PV/UV是多少,通過分析PV/UV能發(fā)現(xiàn)什么規(guī)律? 漏斗分析 :用戶“瀏覽-收藏-加購-購買”的轉(zhuǎn)化率是怎樣的? 用戶價值分析 :對電商平臺什么樣的用戶是有價值

    2024年02月10日
    瀏覽(34)
  • 大數(shù)據(jù)python畢設選題合集

    大數(shù)據(jù)python畢設選題合集

    大家好!大四的同學們,畢業(yè)設計的時間即將到來,你們準備好了嗎?為了幫助大家更好地開始畢設,我作為學長給大家整理了最新的計算機大數(shù)據(jù)專業(yè)的畢設選題。如果在開題選題的過程中有任何疑問,都可以隨時向我提問,我會根據(jù)你們的情況提供幫助。 對于大數(shù)據(jù)專業(yè)

    2024年02月04日
    瀏覽(19)
  • python大數(shù)據(jù)畢設選題

    python大數(shù)據(jù)畢設選題

    大家好!大四的同學們,畢業(yè)設計的時間即將到來,你們準備好了嗎?為了幫助大家更好地開始畢設,我作為學長給大家整理了最新的計算機大數(shù)據(jù)專業(yè)的畢設選題。如果在開題選題的過程中有任何疑問,都可以隨時向我提問,我會根據(jù)你們的情況提供幫助。 對于大數(shù)據(jù)專業(yè)

    2024年02月03日
    瀏覽(13)
  • python畢設選題 - 大數(shù)據(jù)商城人流數(shù)據(jù)分析與可視化 - python 大數(shù)據(jù)分析

    python畢設選題 - 大數(shù)據(jù)商城人流數(shù)據(jù)分析與可視化 - python 大數(shù)據(jù)分析

    ?? 這兩年開始畢業(yè)設計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設題目缺少創(chuàng)新和亮點,往往達不到畢業(yè)答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統(tǒng)達不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設,學長分享優(yōu)質(zhì)畢業(yè)設計項目,今天

    2024年02月19日
    瀏覽(27)
  • 【大數(shù)據(jù)畢設選題】opencv python 深度學習垃圾圖像分類系統(tǒng)

    【大數(shù)據(jù)畢設選題】opencv python 深度學習垃圾圖像分類系統(tǒng)

    ?? 這兩年開始畢業(yè)設計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設題目缺少創(chuàng)新和亮點,往往達不到畢業(yè)答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統(tǒng)達不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設,學長分享優(yōu)質(zhì)畢業(yè)設計項目,今天

    2024年02月03日
    瀏覽(28)
  • 基于Canal與Flink實現(xiàn)數(shù)據(jù)實時增量同步(一),計算機畢設源碼要提交嗎

    基于Canal與Flink實現(xiàn)數(shù)據(jù)實時增量同步(一),計算機畢設源碼要提交嗎

    配置修改 修改conf/example/instance.properties,修改內(nèi)容如下: canal.instance.mysql.slaveId = 1234 #position info,需要改成自己的數(shù)據(jù)庫信息 canal.instance.master.address = kms-1.apache.com:3306 #username/password,需要改成自己的數(shù)據(jù)庫信息 canal.instance.dbUsername = canal canal.instance.dbPassword = canal canal.mq.topic

    2024年04月12日
    瀏覽(38)
  • 大數(shù)據(jù)畢設選題 - 深度學習火焰識別檢測系統(tǒng)(python YOLO)

    大數(shù)據(jù)畢設選題 - 深度學習火焰識別檢測系統(tǒng)(python YOLO)

    ?? Hi,大家好,這里是丹成學長的畢設系列文章! ?? 對畢設有任何疑問都可以問學長哦! 這兩年開始,各個學校對畢設的要求越來越高,難度也越來越大… 畢業(yè)設計耗費時間,耗費精力,甚至有些題目即使是專業(yè)的老師或者碩士生也需要很長時間,所以一旦發(fā)現(xiàn)問題,一定

    2023年04月11日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包