久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Hadoop+Spark+Hive+Django實(shí)戰(zhàn):廚具銷售數(shù)據(jù)分析與可視化大屏全鏈路

Hadoop+Spark+Hive+Django實(shí)戰(zhàn):廚具銷售數(shù)據(jù)分析與可視化大屏全鏈路 做大數(shù)據(jù)方向的項(xiàng)目很多人第一反應(yīng)是先把 Hadoop、Spark 裝好然后發(fā)現(xiàn)真正難的從來不是安裝而是把從數(shù)據(jù)到展示的整條鏈路跑通。最近我在整理一套電商平臺(tái)廚具類目的銷售數(shù)據(jù)分析系統(tǒng)技術(shù)棧是 Hadoop Spark Hive Django最后用可視化大屏把結(jié)果呈現(xiàn)出來。這個(gè)組合在很多教學(xué)項(xiàng)目和實(shí)際業(yè)務(wù)里都很典型但網(wǎng)上能搜到的基本都是單點(diǎn)教程——單獨(dú)講 Spark 優(yōu)化、單獨(dú)講 Django 接口、單獨(dú)講大屏模板很少有人把 Hive 表怎么建、Spark 任務(wù)怎么跑、Django 接口怎么給大屏供數(shù)這條鏈路完整串起來也沒有人講調(diào)試時(shí)最容易在哪個(gè)環(huán)節(jié)浪費(fèi)半天。這篇文章會(huì)把整個(gè)項(xiàng)目的實(shí)現(xiàn)邏輯和我在調(diào)試中踩過的坑完整整理出來適合準(zhǔn)備做大數(shù)據(jù)課程設(shè)計(jì)、以及剛接觸數(shù)據(jù)倉庫和可視化開發(fā)的人參考。我會(huì)從選型理由講起再按數(shù)據(jù)準(zhǔn)備、分析計(jì)算、接口對(duì)接、調(diào)試排障、項(xiàng)目交付的順序往下走最后給一些擴(kuò)展建議。內(nèi)容不求面面俱到但每個(gè)環(huán)節(jié)都會(huì)給出能直接落地的細(xì)節(jié)。1. 為什么這套組合值得做HadoopSparkHiveDjango 的分工與適用邊界1.1 廚具類目數(shù)據(jù)量不大為什么還要上 Hadoop我自己也糾結(jié)過這個(gè)問題一個(gè)廚具品類的訂單明細(xì)撐死一年也就幾百萬到兩千萬行單獨(dú)拿 Pandas 也能跑分析為什么還要引入 Hadoop 這一套原因有兩個(gè)。第一個(gè)是數(shù)據(jù)形態(tài)不只是訂單明細(xì)還有商品維表、品牌維表、區(qū)域維表、評(píng)價(jià)流水join 起來以后中間結(jié)果會(huì)膨脹第二個(gè)是當(dāng)你要做的不是一次性報(bào)表而是可重復(fù)運(yùn)行的“分析系統(tǒng)”就必須有統(tǒng)一的存儲(chǔ)、統(tǒng)一的調(diào)度入口和穩(wěn)定的數(shù)據(jù)產(chǎn)出。Hive 先把數(shù)據(jù)倉庫的分層和元數(shù)據(jù)管理做好Spark 接著跑復(fù)雜的清洗和聚合最后 Django 面向展示層提供接口整條鏈路各管一段后面接手的人也能按層維護(hù)。這個(gè)設(shè)計(jì)不是為了顯得高大上而是為了“好維護(hù)、好替換”。如果你只是臨時(shí)分析一張小表直接讀 CSV 當(dāng)然更快。但項(xiàng)目一旦掛上“系統(tǒng)”兩個(gè)字就意味著每天要跑、每周要更新、不同角色要依賴它做決策。這個(gè)時(shí)候數(shù)據(jù)分層、任務(wù)調(diào)度、結(jié)果落庫、接口輸出就不是可有可無的優(yōu)化項(xiàng)而是基本要求。Hadoop 在這套鏈路里承擔(dān)的其實(shí)是兩件事一是把原始文件安全地放到 HDFS 上二是給 Hive 提供分布式存儲(chǔ)底座Hive 負(fù)責(zé)把文件變成“能寫 SQL 的表”Spark 負(fù)責(zé)把復(fù)雜計(jì)算跑得足夠快Django 只負(fù)責(zé)把最終結(jié)果以接口形式送出去。1.2 各組件邊界別讓 Django 去算數(shù)也別讓 Hive 去實(shí)時(shí)響應(yīng)我在很多類似項(xiàng)目里看到的最常見問題是組件職責(zé)混亂。比如有人把大屏需要的數(shù)據(jù)直接用 Django 實(shí)時(shí)查 Hive前端點(diǎn)一次刷新后端就去執(zhí)行一個(gè)分布式 SQL運(yùn)氣好幾秒返回運(yùn)氣不好幾十秒頁面一直轉(zhuǎn)圈。這種寫法在演示時(shí)還能忍真正連續(xù)點(diǎn)起來就會(huì)把 HiveServer2 的連接池打滿。組件職責(zé)邊界常見誤區(qū)HDFS原始文件與中間結(jié)果存儲(chǔ)把每張臨時(shí)表都存一份垃圾數(shù)據(jù)不清Hive元數(shù)據(jù)管理、分層寬表、離線 SQL 分析讓 Hive 支撐秒級(jí)在線查詢Spark復(fù)雜 ETL、大規(guī)模 Join、聚合、重分區(qū)全鏈路都寫成 Spark 程序連小表也開集群Django讀結(jié)果庫、輸出 JSON、控制權(quán)限在 Django 里直接跑 Hive SQL大屏展示趨勢(shì)、占比、地圖大屏直接連 HiveServer2正確的分工是Spark 算完結(jié)果寫成 MySQL 里的聚合結(jié)果表Django 只讀 MySQL把結(jié)果轉(zhuǎn)成 JSON大屏只負(fù)責(zé) fetch 這些 JSON 并繪圖。MySQL 里存的不是原始流水而是按天、按類目、按品牌匯總好的結(jié)果所以查詢量很小響應(yīng)速度才能穩(wěn)定在幾十毫秒級(jí)別。2. 廚具銷售數(shù)據(jù)如何變成 Hive 里可用的事實(shí)表2.1 數(shù)據(jù)來源與字段清單這套項(xiàng)目里沒有真實(shí)生產(chǎn)環(huán)境的數(shù)據(jù)授權(quán)我使用的是按電商后臺(tái)導(dǎo)出格式模擬的離線數(shù)據(jù)集字段結(jié)構(gòu)盡量貼近常見場景。如果你有平臺(tái)開放接口或脫敏離線包處理流程完全一樣只是字段名需要對(duì)齊。我建議不要為了“真實(shí)”去抓取未經(jīng)授權(quán)的大規(guī)模頁面數(shù)據(jù)重點(diǎn)放在數(shù)據(jù)建模和分析鏈路上更有價(jià)值。廚具銷售明細(xì)的核心字段大致如下字段名類型說明order_idSTRING訂單編號(hào)業(yè)務(wù)上的唯一鍵product_idSTRING商品編號(hào)product_nameSTRING商品標(biāo)題category_l1STRING一級(jí)類目比如鍋具、儲(chǔ)物、餐具category_l2STRING二級(jí)類目比如不粘鍋、保鮮盒brand_nameSTRING品牌名priceDECIMAL(10,2)銷售標(biāo)價(jià)pay_amountDECIMAL(10,2)實(shí)際支付金額quantityINT購買數(shù)量provinceSTRING收貨省份citySTRING收貨城市order_timeSTRING下單時(shí)間star_levelINT買家評(píng)價(jià)星級(jí)廚具類目有個(gè)特點(diǎn)客單價(jià)波動(dòng)很大價(jià)格帶從幾十塊的調(diào)味盒到幾千塊的炒鍋都有而且消費(fèi)者購買頻次低很多人是搬新家或者裝修廚房才會(huì)集中采購。所以分析時(shí)不能只盯著銷量還要關(guān)注客單價(jià)、價(jià)格帶結(jié)構(gòu)、地域分布和跨品類的連帶購買。2.2 分層建表 DDL 與分區(qū)設(shè)計(jì)我的習(xí)慣是第一層 ODS 只做拷貝原字段長什么樣就什么樣第二層 DWD 做類型轉(zhuǎn)換、去重、空值補(bǔ)齊第三層 DWS 按維度輕度匯總最后一層 ADS 直接把給大屏展示的聚合結(jié)果落庫。這里貼一張 DWD 層的 Hive 建表腳本重點(diǎn)是分區(qū)和存儲(chǔ)格式CREATE TABLE IF NOT EXISTS dwd_kitchen_sale_detail ( order_id STRING, product_id STRING, product_name STRING, category_l1 STRING, category_l2 STRING, brand_name STRING, price DECIMAL(10,2), pay_amount DECIMAL(10,2), quantity INT, province STRING, city STRING, order_time STRING ) PARTITIONED BY (dt STRING) STORED AS ORC;為什么按天分區(qū)因?yàn)殡x線任務(wù)基本都是每天增量灌入按天分區(qū)可以讓每次寫入只影響當(dāng)天數(shù)據(jù)歷史分區(qū)不用動(dòng)。為什么用 ORCORC 是列式存儲(chǔ)做聚合時(shí)只讀取需要的列I/O 會(huì)小很多。對(duì)于廚具這個(gè)量級(jí)的數(shù)據(jù)按天分區(qū)已經(jīng)足夠不需要再加二級(jí)分區(qū)。如果單日數(shù)據(jù)量真的到了千萬行以上再考慮在分區(qū)字段上加 hash 分桶不要一開始就過度設(shè)計(jì)。2.3 Spark 清洗不能跳過的三個(gè)環(huán)節(jié)數(shù)據(jù)從 ODS 到 DWD至少要過三關(guān)。第一關(guān)是去重同一個(gè)訂單可能因?yàn)閿?shù)據(jù)回溯或者重復(fù)同步出現(xiàn)多次用訂單號(hào)做去重保留最后一條第二關(guān)是空值處理品牌為空補(bǔ)“未知”價(jià)格為零或者是負(fù)數(shù)直接剔除坪效和客單價(jià)指標(biāo)最容易被臟數(shù)據(jù)帶偏第三關(guān)是日期規(guī)范化把原始時(shí)間字符串轉(zhuǎn)成標(biāo)準(zhǔn)格式保證后面按天聚合不會(huì)出現(xiàn)“2024/1/1”和“2024-01-01”同時(shí)存在的情況。df spark.sql(SELECT * FROM ods_kitchen_sale WHERE dt 2024-01-01) df df.dropDuplicates([order_id]) df df.filter(df.pay_amount 0) df df.withColumn(dt, F.to_date(F.col(order_time), yyyy-MM-dd HH:mm:ss)) df.write.mode(overwrite).format(hive).saveAsTable( dwd_kitchen_sale_detail, partitionBydt )為什么清洗邏輯放在 Spark 而不是完全依賴 Hive因?yàn)?Hive 執(zhí)行 SQL 也是一樣能做的但 Spark 可以先把多張?jiān)幢聿⑿凶x進(jìn)來通過 DataFrame 緩存復(fù)用中間結(jié)果寫復(fù)雜 ETL 時(shí)代碼更直觀。更重要的是清洗和后續(xù)聚合可以放在同一個(gè) Spark 工程里避免多個(gè)引擎來回切換。3. 分析層實(shí)戰(zhàn)廚具銷售的核心指標(biāo)與 Spark 計(jì)算細(xì)節(jié)3.1 指標(biāo)清單要跟大屏一一對(duì)應(yīng)大屏不是把一堆圖表堆上去就完事指標(biāo)設(shè)計(jì)會(huì)直接決定數(shù)據(jù)模型的粗粒度。我在這個(gè)項(xiàng)目里的指標(biāo)清單是這樣拆的KPI 卡片總銷售額、總訂單量、客單價(jià)、銷量同比趨勢(shì)線按天/按周的銷售額和訂單量變化類目結(jié)構(gòu)一級(jí)類目銷售額占比鍋具、餐具、收納各自占多少品牌榜Top 10 品牌的銷量和銷售額地域分布分省銷售額熱力地圖服務(wù)體驗(yàn)退款率和好評(píng)率廚具是低頻高客單品類單純看銷量容易失真。兩個(gè)品牌可能在銷量上差不多但一個(gè)靠幾十塊的保鮮盒沖量另一個(gè)靠上千塊的琺瑯鍋賺錢后者的商業(yè)價(jià)值明顯更高。所以每個(gè)指標(biāo)的背后最好都掛一個(gè)“業(yè)務(wù)問題”而不是為了填滿大屏格子硬算。3.2 一個(gè)典型的 Spark SQL品牌價(jià)格帶分析品牌榜是最基礎(chǔ)的分析真正能說明問題的是疊加價(jià)格帶之后的品牌結(jié)構(gòu)。下面這段 Spark SQL 就是按品牌和價(jià)格檔位計(jì)算訂單數(shù)與銷售額SELECT brand_name, CASE WHEN pay_amount 50 THEN 低客單 WHEN pay_amount 200 THEN 中客單 ELSE 高客單 END AS price_level, COUNT(DISTINCT order_id) AS order_cnt, SUM(quantity) AS sales_cnt, ROUND(AVG(pay_amount), 2) AS avg_order_value FROM dwd_kitchen_sale_detail WHERE dt 2024-01-01 GROUP BY brand_name, CASE WHEN pay_amount 50 THEN 低客單 WHEN pay_amount 200 THEN 中客單 ELSE 高客單 END;大屏上的品牌榜只是這個(gè) SQL 去掉價(jià)格帶后的簡化版。加價(jià)格帶之后可以很清楚地看到某個(gè)品牌是靠低價(jià)引流還是靠高客單品帶動(dòng)銷售這對(duì)運(yùn)營選品和投放策略都有參考價(jià)值。如果數(shù)據(jù)量很大先把價(jià)格帶和銷量做一次預(yù)聚合再去 join 品牌維表可以明顯減少 shuffle 數(shù)據(jù)量。3.3 任務(wù)調(diào)度與結(jié)果回寫分析任務(wù)不能每次手動(dòng)跑。我會(huì)把整段分析邏輯寫成一個(gè)analysis_job.py每天凌晨用調(diào)度平臺(tái)或 cron 觸發(fā)一次。關(guān)鍵是把結(jié)果按天分區(qū)覆蓋寫避免大屏看到過期或者重復(fù)的數(shù)據(jù)。Spark 任務(wù)的提交命令長這樣spark-submit \ --master yarn \ --deploy-mode cluster \ --num-executors 4 \ --executor-cores 4 \ --executor-memory 6g \ --driver-memory 2g \ --conf spark.sql.shuffle.partitions200 \ analysis_job.py參數(shù)不要直接抄網(wǎng)上的。executor 數(shù)量和內(nèi)存取決于你實(shí)際集群的資源。我見過太多人把 executor memory 寫到 16g但 Yarn 隊(duì)列里根本沒那么多資源結(jié)果任務(wù)一直排隊(duì)或者被殺死。先用默認(rèn)參數(shù)跑通再根據(jù) Spark UI 里的運(yùn)行時(shí)間和數(shù)據(jù)量逐步調(diào)整。3.4 處理數(shù)據(jù)傾斜的小經(jīng)驗(yàn)按品牌或區(qū)域聚合時(shí)最容易遇到數(shù)據(jù)傾斜幾個(gè)爆款品牌占了大部分?jǐn)?shù)據(jù)導(dǎo)致某個(gè) executor 處理的數(shù)據(jù)量是其他人的好幾倍整體任務(wù)被拖慢。最簡單的處理辦法是先把熱點(diǎn)數(shù)據(jù)識(shí)別出來單獨(dú)計(jì)算再和非熱點(diǎn)結(jié)果合并。更通用的做法是給 join 鍵加上一個(gè)隨機(jī)后綴做“打散”把一個(gè)大 key 拆成多個(gè)小 key最后再按真實(shí) key 聚合。對(duì)于廚具這個(gè)數(shù)據(jù)量先看指標(biāo)結(jié)果是否符合預(yù)期再?zèng)Q定要不要做這些復(fù)雜度較高的優(yōu)化。4. Django 接口與大屏數(shù)據(jù)對(duì)接讓分析結(jié)果真正被“看見”4.1 接口設(shè)計(jì)直接按大屏組件拆Django 端的接口不要設(shè)計(jì)成一個(gè)“萬能查詢接口”。最省事的方式是前端大屏有幾個(gè)組件后端就提供幾個(gè)對(duì)應(yīng)接口每個(gè)接口只返回一個(gè)圖表所需的數(shù)據(jù)。這個(gè)項(xiàng)目的接口大致是這樣接口路徑返回內(nèi)容/api/v1/overview/kpi總銷售額、總訂單量、客單價(jià)/api/v1/overview/trend每日銷售額和訂單量列表/api/v1/category/ratio各一級(jí)類目銷售額占比/api/v1/brand/topTop10 品牌銷量與銷售額/api/v1/region/heat各省銷售額熱力數(shù)據(jù)/api/v1/review/cloud評(píng)價(jià)關(guān)鍵詞統(tǒng)計(jì)統(tǒng)一返回格式{code: 0, data: ...}數(shù)據(jù)異常時(shí) code 非 0前端好做統(tǒng)一判斷。Django 視圖層寫起來非常輕下面是其中一個(gè)接口的示例from django.http import JsonResponse from django.core.cache import cache def sale_trend(request): data cache.get(sale_trend) if data is None: data list( ResultTrend.objects.order_by(dt).values(dt, sales) ) cache.set(sale_trend, data, 600) return JsonResponse({code: 0, data: data})大屏頁面通常幾秒輪詢一次如果每次請(qǐng)求都打 MySQL即使結(jié)果表只有幾百行壓力也不大但加上緩存更穩(wěn)妥而且能避免大屏多個(gè)圖表同時(shí)刷新時(shí)造成短時(shí)尖峰。4.2 大屏端怎么接數(shù)據(jù)大屏我用的是 ECharts工程結(jié)構(gòu)很簡單一個(gè) index.html一個(gè) api.js一個(gè) charts.js。前端從接口拿到數(shù)據(jù)之后只需要把數(shù)據(jù)映射到圖表 option 里。比如趨勢(shì)圖的靈魂代碼就這幾行async function loadTrend() { const res await fetch(/api/v1/overview/trend); const json await res.json(); trendChart.setOption({ xAxis: { data: json.data.map(i i.dt) }, series: [{ data: json.data.map(i i.sales) }] }); }有一點(diǎn)要注意大屏上顯示的標(biāo)題、時(shí)間范圍、單位最好都從接口或者統(tǒng)一配置里讀取不要寫死在圖表代碼里。廚具銷售數(shù)據(jù)經(jīng)常要按周、按月切換寫死之后每次改都要翻代碼維護(hù)成本很高。4.3 為什么要在 Django 和 Hive 之間加一個(gè)結(jié)果庫這是整套架構(gòu)里最關(guān)鍵的一步。Spark 分析完幾千萬行明細(xì)后真正給人看的聚合結(jié)果往往只有幾百行。把這些結(jié)果寫進(jìn) MySQL 的一張結(jié)果表Django 每次訪問只查詢幾百行響應(yīng)速度可以穩(wěn)定在幾十毫秒。如果直接把 HiveServer2 暴露給 Django隨便一次刷新都會(huì)觸發(fā)一個(gè)分布式查詢而且 HiveServer2 還有并發(fā)連接數(shù)限制大屏輪詢一多就到了瓶頸。結(jié)果庫的清洗也很重要每天 Spark 任務(wù)跑完后先用TRUNCATE或者按日期刪除舊數(shù)據(jù)再寫入新結(jié)果避免昨天和今天的數(shù)據(jù)混在一起。大屏上的數(shù)值出現(xiàn)莫名其妙的跳變十有八九是因?yàn)闆]有做覆蓋寫。5. 踩坑記錄環(huán)境、資源、接口三層最容易翻車的地方5.1 SparkSQL 連 Hive 報(bào)“元數(shù)據(jù)初始化失敗”這個(gè)錯(cuò)幾乎每個(gè)第一次跑 Spark on Hive 的人都會(huì)遇到。現(xiàn)象是程序一提交就報(bào)MetaException或者Could not connect to MetaStore。排查鏈路我一般是這樣走的先確認(rèn)hive-site.xml、core-site.xml、hdfs-site.xml是否在 Spark 任務(wù)的 classpath 里再確認(rèn) Hive Metastore 進(jìn)程是否真的啟動(dòng)了hive --service metastore不能是只在某個(gè)終端里跑了一下就掛了然后看 Metastore 連接 MySQL 的賬號(hào)密碼和權(quán)限有沒有問題最后檢查spark.sql.warehouse.dir對(duì)應(yīng)的 HDFS 目錄是否存在、當(dāng)前用戶有沒有讀寫權(quán)限。本地模式跑 SparkSQL 讀集群 Hive 時(shí)最容易踩的是把一套單機(jī)版的配置文件放到 classpath 里導(dǎo)致 Spark 拿著 localhost 去找集群的 NameNode 和 Metastore結(jié)果當(dāng)然是一堆 Connection refused。先用bin/spark-sql --conf spark.sql.hive.metastore.jarsbuiltin做一個(gè)最小化驗(yàn)證再回到完整工程里排錯(cuò)效率會(huì)高很多。5.2 Yarn 作業(yè)被容器殺掉物理內(nèi)存超限另一個(gè)高頻問題是在集群模式提交 Spark 任務(wù)后日志里出現(xiàn)Container is running beyond physical memory limits。很多人的第一反應(yīng)是加內(nèi)存但這樣往往治標(biāo)不治本。先看 Spark UI 中各個(gè) stage 的 Shuffle Read 和 Input 大小如果某個(gè) stage 的輸入特別大說明分區(qū)數(shù)太少或者數(shù)據(jù)傾斜加內(nèi)存只是讓問題晚一點(diǎn)爆發(fā)。如果確認(rèn)只是 Yarn 容器預(yù)留的內(nèi)存不夠應(yīng)該調(diào)整spark.executor.memoryOverhead給容器預(yù)留出堆外內(nèi)存和基礎(chǔ)進(jìn)程的開銷。比如 executor memory 設(shè) 6g 的時(shí)候memoryOverhead 至少也要 1g 到 2g。另外不要把spark.sql.shuffle.partitions隨便設(shè)成 1000分區(qū)數(shù)量過多會(huì)讓每個(gè) executor 承擔(dān)大量的小 task任務(wù)調(diào)度開銷比計(jì)算本身還大。5.3 Django 接口返回空了但 MySQL 里有數(shù)這類問題最讓人崩潰因?yàn)閿?shù)據(jù)明明在接口卻查不到。我排查一圈之后發(fā)現(xiàn)基本都是三個(gè)原因第一Django ORM 的模型字段名和 MySQL 列名對(duì)不上比如日期字段叫dt模型里寫了date第二從 MySQL 讀出的Decimal和datetime類型沒有轉(zhuǎn)成 JSON 可序列化的基本類型第三緩存里存了上一次的空結(jié)果沒有及時(shí)清掉。解決思路也很直接給 ORM 模型字段名和 MySQL 列名做一個(gè)統(tǒng)一約定所有日期字段統(tǒng)一用字符串返回接口層加一個(gè)統(tǒng)一的 JSON 序列化函數(shù)把Decimal、datetime、date都轉(zhuǎn)成字符串或浮點(diǎn)數(shù)開發(fā)環(huán)境在重啟 Django 服務(wù)后執(zhí)行一次cache.clear()避免被舊緩存干擾判斷。5.4 時(shí)間都花在版本不匹配上如果項(xiàng)目從零搭版本兼容性是決定調(diào)試效率的關(guān)鍵。我的經(jīng)驗(yàn)是盡量選一整套主版本配好的組合避免自己亂配。組件推薦版本說明Hadoop3.3.x穩(wěn)定生態(tài)兼容好Hive3.1.xSpark 集成最常用版本Spark3.3.x對(duì) Hive 3.1 支持成熟Django4.2.x使用 LTS 版本更省心Python3.8 或 3.10不要用最新大版本MySQL8.0Hive 元數(shù)據(jù)和結(jié)果庫通用JDK 我建議用 JDK 8 或 11。JDK 17 和舊版 Hive 一起跑容易遇到非法反射訪問的告警雖然不一定直接報(bào)錯(cuò)但會(huì)把日志刷得很亂影響排障判斷。6. 把整套系統(tǒng)變成能交付的“源碼文檔調(diào)試記錄”6.1 工程目錄怎么組織別人拿到能少問十句話很多人交付項(xiàng)目只給一團(tuán)代碼別人拿到之后根本不知道從哪里下手。我習(xí)慣把工程按層拆開讓數(shù)據(jù)流一眼能看出來sale-analysis/ ├── sql/ │ ├── 01_ods_ddl.sql │ ├── 02_dwd_ddl.sql │ └── 03_ads_ddl.sql ├── spark/ │ ├── analysis_job.py │ ├── config.py │ └── requirements.txt ├── django/ │ ├── manage.py │ ├── sale_api/ │ └── result_models.py ├── dashboard/ │ ├── index.html │ ├── api.js │ └── charts.js └── docs/ ├── 環(huán)境部署.md ├── 數(shù)據(jù)導(dǎo)入.md └── 調(diào)試FAQ.mdSQL 腳本放在一起是因?yàn)閿?shù)據(jù)庫表結(jié)構(gòu)是整個(gè)系統(tǒng)的地基。Spark 工程負(fù)責(zé)清洗和計(jì)算。Django 工程負(fù)責(zé)接口。dashboard 是大屏前端。docs 里放部署文檔和常見問題。別人拿到這套目錄之后最多問“啟動(dòng)命令是什么”不會(huì)再去問“這張表在哪建的”“這個(gè)圖表的數(shù)據(jù)從哪來”。6.2 文檔要覆蓋的三件事第一件事是環(huán)境版本矩陣。把操作系統(tǒng)、JDK、Python、Hadoop、Hive、Spark、Django、MySQL 的版本全部列出來避免接手的人裝了一套完全不同的版本跑出各種詭異問題。第二件事是啟動(dòng)順序。HDFS、Yarn、Hive Metastore、Spark 任務(wù)、Django 服務(wù)每一步的啟動(dòng)命令和驗(yàn)證方法都要寫清楚。第三件事是數(shù)據(jù)初始化和自查方法。比如用SHOW PARTITIONS dwd_kitchen_sale_detail看分區(qū)有沒有生成用SELECT COUNT(*) FROM dwd_kitchen_sale_detail WHERE dt2024-01-01看當(dāng)天數(shù)據(jù)量是否正常。調(diào)試記錄不要只寫最終答案。最有價(jià)值的寫法是“報(bào)錯(cuò)關(guān)鍵字 復(fù)現(xiàn)命令 排查路徑 最終解決方式”。我自己調(diào)試的時(shí)候會(huì)把一段卡了兩個(gè)小時(shí)的報(bào)錯(cuò)記錄成模板下次再遇到同類問題直接在文檔里搜索關(guān)鍵字比重新從零查一遍快得多。6.3 這個(gè)系統(tǒng)還能往哪里擴(kuò)展如果有人打算繼續(xù)做二期我建議從幾個(gè)方向入手。任務(wù)調(diào)度可以替換成正式的調(diào)度平臺(tái)加失敗重試、告警和補(bǔ)數(shù)邏輯結(jié)果存儲(chǔ)可以換成 ClickHouse 或 Doris讓大屏支持任意時(shí)間段拖選不用每次重新觸發(fā)離線任務(wù)實(shí)時(shí)性要求上來之后可以在訂單鏈路前面加消息隊(duì)列把分鐘級(jí)實(shí)時(shí)趨勢(shì)和離線分析互補(bǔ)如果想做更完整的用戶分析就把加購、收藏、瀏覽日志也接進(jìn)來做轉(zhuǎn)化漏斗和連帶購買分析。最后說一個(gè)我自己的小習(xí)慣每次改完 Spark 邏輯我會(huì)先清掉 Django 緩存再刷新大屏頁面確認(rèn)數(shù)據(jù)變化避免被舊數(shù)據(jù)誤導(dǎo)。整套系統(tǒng)做完之后比起某個(gè)算法寫得多漂亮更讓我省心的是分層清晰、接口穩(wěn)定、調(diào)試記錄完整——這三樣才是這種數(shù)據(jù)系統(tǒng)能長期跑下去的關(guān)鍵。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
69少妇一区二区| 久久久久久九九九九九九| 欧美 日韩 亚洲 春色| 九九九九九精品| 91模特在线观看| 麻豆精品天美| 超碰一区二区| 天天日天天干天天摸天天操| 黑丝制服中文字幕 | 99爱精品| 婷婷国产精品九区| 超碰夫妻97| 欧美在线l亚洲| 久久久∴| 亚洲天堂资源在线| 97超碰磁| 国产精品免费美女视频| 9丨久久九九九| 中文字幕第二页| 色五月综合网| 精品九九九九九九九| 午夜福利视频在线一区| 九九九精品成人免费视频小说| 无码操逼视频一下| 啊啊啊啊啊在线观看网址| 日本97久久| 99久久久er直播网址| 老熟妇一区二区三区| 久久精品夜色国产亚洲AV| 日本色日夜干| 秋霞网无码| 加勒比海色香蕉婷婷| 久久久久久久久久久久久久久性生活视频| 综合色图,成人综合网| 91久久18禁| 日本亚洲嫩草影院啪啪| 激情自拍 校园春色| 999岛国大片| 天天看天天干| 亚洲网站一区二区在线| 干b在线性社区| 草草影院最新网址| 丁香六月东京热| 99热超碰| 日韩综合色网| 亚洲中文一区二区三区| 欧美色图私拍91| 日韩在线电影| 天天干天天干天天干| 久久日本熟女精品一区| 国产成人 综合亚洲 天堂| 亚洲成av人片色午夜乱码| 亚洲丝袜99| 五十路六十路七十路熟婆| 亚洲天堂区| 九九九久久久W精品| 国产性爱乱伦AV| 久久国产精品熟女人妻| 欧美91视频| 殴美日韩m| 明星性猛交ⅹxxx乱大交| AV 少妇 人妻 偷拍| 青青操日韩| 国产精品青草综合久久| 东京热av影院| 高清不卡国产| 乱论91| 成人十八禁日韩欧美一二三| 蜜臀操逼黄色视频操的好爽| 超碰97久| 99精品热| 中字乱伦AV| 97神马久久| A V少妇特黄三级| 国产粉嫩蜜臀av一区二区三区| 口爆综合网| 97综合| 欧美视频第二页| 老司机深夜影院18未满| 美女诱惑久久| s片在线观看| 色五月激情综合网| 日本性爱欧美性爱| 伊人欧美大香蕉视频| 2001天天操| 男女激烈网站最新| 性一级黄色录像片网站导航| 欧美成人综合| 久久久久骚| 日本激情免费大片| 日本成人A片网站| 猛猛干| 91天天爱| 岛国人妻少妇av在线观看| 亚洲一区二区精品福利| 影音先锋每日最新资源在线观看| 欧亚 另类 久| 四虎精品亚洲| 久久骚| 麻豆九九九| 99在线观看| 国产精品视频白浆免费| 一本久道在线综合视频| 久久的免费性爱视频| 色哟哟精品1精品2| 日韩人妻精品| 综合一区二区影视| 热热色色综合| 啊啊啊啊,啊啊好多水 | 中文字幕av丝袜| 女人天堂AV五区在线| 天天爽人人综合免费7799| 久久毛卡| 欧美顶级黄片AAAAA在线免费看| www.亚洲黄色| 久久黄色性爱视频| 精品国产www久久| 久干9操| 国产精品极品美女视频| 综合欧美日韩在线观看| 国产亚洲综合欧美一区| 美女刺激久久国产欧美| 色性综合| 欧美色图 人妻| 国产精品第二页| 婷婷15月天青娱乐| 亚洲激情欧美色图 | AV99热18这里只有精品| 色综合1991| 中文三一区| 2017天天拍大香蕉| 亚洲欧洲综合成人av一区| 国产精品亚洲高清在线| 婷婷五月色| 25国产精品免费观看| 九九热精品在线| 91性生活久久久| 好爽免费视频,| 亚洲久久天堂| jizz啪啪| 国产99热| 久久综合久色欧美综合狠狠 | 久久夜嗨| 超碰在线91| 国产不良强奸视频免费看| 欧美久久人人网| 欧美少妇熟女| 欧美同性恋 的搜索结果 - 91n| 亚洲男人天堂av| 久久成人午夜精品影院| 日韩精品人妻系列无码天堂| 超碰97伊人| 丁香六月激情| 国产精品午夜成人福利| 超碰色老头| 萌白酱自拍视频| 英伦大奶子熟妇吊带| 综合97久久| 精品人妻一区二区三区四区石在线 | 天天爽夜夜爽夜夜爽精| 国产精品白虎| 超碰97中文| 日韩午夜啪啪视频| 日日干夜夜欢| 國產尤物AV尤物在線觀看| 绯色AV粉色AV蜜臀AV| 91五十路| 99久久无色码| 久久久久久久久久va| 久久欧美按摩999| 91精品丝袜久久久久久| 欧美色五月| 俞拍久久国应视频| 人妻久久久久久久久久久久久久久| 熟女熟妇伦久久影院毛片一区二区| 国产午夜精品理论片一二三区区| 亚洲人在线| 欧美日韩大香蕉| 大香蕉伊人在线成人AV在线观看| 国产乱伦视频污| 欧洲亚洲人妻无码中字久久三区四区| A级毛片在线看免费| 蜜桃在线观看一区二区三区 | 国语人妻精彩刺激| 国产黄色视频久久| 最新9久久久9免费视频| 综合欧美日本三级| 亚洲九九九九| 久久精品中文| 亚洲精品一区中文字幕乱码| 日韩成人性日韩成人性爱视频在线免费观看 | 日韩在线国产字幕| 韩日巨乳美女免费视频在线观看| 国模精品娜娜一二三区| 亚洲图片另类| 少妇熟女视频一区二区三区| 精品无码一区二区| 久久高清欧美国产| 久久精品 六十路 熟女 欧美| 精品176精品2| 在线只有精品| 香蕉久久AⅤ...| 青草一区二区| 精品大全99999| 啊啊啊啊啊在线观看网址 | 婷婷激情五月天小说网| 超碰九7| 乱子伦一区二区三区国产精品| 91精品国产高清久久久久久,亚洲成人| 9久久久久久| 人人妻人人色| 超碰性爱97| 欧美在线播放aaaa| 在线看片国产精品每日更新| 成 人 A V免费视频在线观看| 久久机热| 美女骚尻视频| 亚熟hd视频在线| 欧美制服另类丝袜| 骚货人妻偷情自拍在线视频| 91性高潮久久久久久久久| 亚洲色欲天天天堂色欲网女| 国产深喉视频一区二区| 97免费在线观看| 欧美日韩国产精品久久色婷婷| 国产超碰在线一区| 精品97久久综合| 亚洲日韩青青草色月| 小草精彩毛片| 亚洲AO在线| 成人AV素股で擦久久| 久久欧美1卡2卡3| 深爱激情五月天| 成人八戒网站| 国产三级多多影院2022国产AA一级毛片无码| 91亚洲影视| 一区e区三| 久久久成人精品| 日韩人妻精品中文字幕| 国产婷婷一区| 97久久精品国产| 99热超碰| 婷婷丁香一区二区三区| 欧美高潮在线| 91影视亚洲| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 亚洲97网站| 亚洲91大片| 试看60秒| 强乱老妇中文字幕| 超碰成人人人爽人人爽| 在线视频 亚洲精品| 东北熟女91| 91操操操操| 91AV入口| 333kkkk·亚洲com久久| 99人人干| 操美女人妻| 欧美青青视频| 超碰97国产欧美| 日韩欧美传媒一区国产| 变态乱伦伪娘灌肠一区二区| 日韩午夜精品一区二区三区电影| 五月丁香啪啪啪| 夜夜操av亚洲一区二区| 97天天在线| 91制服丝袜| 国产精品久久久久久高清无码免费看| 久久成人午夜精品影院| 思思热在线| 日本最新免费韩国1区2区视频播放| 麻豆精品三区视频| 成人怡红院| 嫖老熟女A片一二三区| 日韩成人精品中文字幕| 久湿久久 | 看看小穴| 哈哈操 大香蕉| 国产精品麻豆免费视频| 黄色乱论网站| 国产97色在线| 亚洲无码99| 亚洲成人妻日韩在线| 天天综合中文字幕 91| www.大香| 四虎在线观看网站| 午夜超爽| 欧美传媒一区| 思思热在线cao| 少妇毛片久久| 成人av性爱电影在线观看| 九九aV| 人妻人久久精品中文字幕| 久久久久久久伊人精品| AV丝袜少妇| 亚洲九九九| 狼天天狼天天大香蕉| 美女啊啊啊啊啊| 五月天成人综合| 97在线免费视频观看| 亚洲久热| 亚洲中文字幕在现观看| 欧美少妇第一页| 日欧操屄| 天天天做天天天爱天天天爽| 91精品国产麻豆国产自产在| 亚洲高清91| 日本高清电影欧美色图| 亚洲一区在线观看欧洲| 成人欧美日超碰| 日本精品第一视频在'| 一区二区播放| 成年男人的天堂| 黄色av网站在线播放| 91爱看| 婷婷综合网站| 亚洲男人综合| 亚洲第二页| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 精品久| 成人AV素股で擦久久| 国产精品美女在线一区| 久区视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 97视频900| 久久久久9999| 亚洲国产精品无码AV在线| 亚洲午夜精品久久久中文影院| 成人资源中文字幕在线观看天天| 综合影院永久入口国产| 日本一卡二区在线| 欧美91精彩| 少妇二级| 日本一级黄色电影| 中文字幕 国产 精品 | 久久一区无码| 在线观看一卡二卡| 色官网在线| 青青伊人这里只有精品| 国产91影院| 久久久久99精品成人片蜜臀| 久9爱精品| 裸体美女久久久| 欧美爆操91| 蜜臀久久99精品久久久久久久久| 免费久久一级毛片大黄| 男人的天堂2018| 亚洲色交| 另类图片综合| 天天射夜夜操| 1769一区| 26uuu性物| 搞中出久久| 日韩在线性爱免费视频| 波多野42部无码喷潮在线观看| 午夜啪| 亚洲97成人在线观看| 91精品人妻偷情| 日本操逼视频不卡直接放| 日韩成年人性爱视频| 亚洲情色综合| 欧亚性爱在线视频| 熟妇高潮精品一区二区三区下载| 9久9久| 欧美视频在线视频免费va| 国产黄色影片在线观看| 欧美人妻一区| 99只有精品| 人妻碰碰碰碰碰碰| 中文字幕十五区| 日日嗨AV一区二区夜夜| 日韩电影中文字幕| 免费A片三p视频| 日本成人A片网站| 日韩一级特黄av毛片| 国产67194| 亚洲美女精品| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 26uuu欧美日韩| 俺去俺来也在线www| 欧美综合自拍成人自拍第二十页| 97色诱| 精品97久久| 91搞逼视频| 久99| 97精品视频在线| 国产亚洲福利第一页丝袜| 日韩性爱播放| 熟女网站最新| 色操逼网| 精品国产乱码久久久久久久久1| 91性感网站| 久久久蜜桃臀无码视频| 99久视频| 欧美色蜜桃97| 久综合网| 精品少妇高潮久久| www色日本| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 日韩97超碰中文字幕| 嗯嗯啊啊日韩精品| 在线A日本| Aa东京男人的天堂| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 久久久不能久久久久| 91激情国产| 成人a大片在线观看| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 色色五月丁香| 国内一级精品| 亚洲欧美精品91| 天天干人人乐| 视频二区美腿丝袜制服人妻欧美| 91痴汉| 国产一级片| 日本媚薬中文字幕在线| 神马久久久久眼| 2024年最新色情网站在线观看| 色五月婷婷网| 91性高朝久久久久久久久| 欧美日韩理论一区| 青青久久手机线视频| 风月影院男女十八禁| 亚洲综合中文字幕有码 | 人人操人人射人人干| 久久国内| 天天日天天干天天操| 影音综合网| 久久激情亚洲精品无码?V| 职场同事知名国产国产精品久久欧美日韩| 天堂8在线新版官网| 东京热av影院| www.高清无码诱惑一区.com| 国产久久久久久久久一区二区 | 中国91AV| 九九热精彩视频| 五月天色综合| 夜间福利片1000无码| 久久一区二区蜜桃| 呦呦一区| 920日本午夜免费| 成人性爱av| 色与欲影视| 亚洲999综合| 69人妻精品丰满熟女区| 欧美大香蕉97| 青青草亚洲一区 | 国产隔壁老王影院在线| 欧美成人午夜免费福利785| 欧美自拍网| 九九综合网| 黄色高清久久无码依人| 99操| 美女淫穴| 狠狠图片青青草| 黄色一区三区| 98久久| 国产女人和拘做爰视频 | 丁香五月成人| 天天操熟妇| 十八岁啪啪视频免费看| 男人天堂久久日韩| 亚洲av国产av综合av卡| 成人AV素股で擦久久| 激情在线青青操| 无码国产精品久久久久| 天欧美在线| 亚洲AV无码AV吞精久久久久| 1204av韩国| 久久成人国产精品| 国产中文福利| 狠狠中文字幕| 少妇丝袜在线观看AV| 精品少妇人妻av久久免费| SS久久| 国产高清精品一区二区三区毛片| 国产青青美女玩逼视频| 国产AV毛片| 国产91丝袜在线播放蜜月| 亚洲成人一区二区精品| 欧美后入式| 国产高潮AA片免费看| 欧亚 另类 久| 搡老女人老妇女老妇老熟女怎么读| 懂色aV一区二区天美传媒| 丝袜夫妻自拍| 一级片在线观看高清无码| 亚洲污污网站| 欧美综合区| 综合色欧美| 高凊专区人人操| 欧美A片中文字幕| 夜精品久无码| 99re在线观看| 国产精品成久久久久午夜午夜| 国产传媒美日韩av| 色成人Www精品永久观看| 超碰97综合网| 国产白领连续中出在线观看| 久久久久久久亚洲Av无码| 国产精品久久久午夜夜伦鲁鲁| 久99| 国产亚洲深夜激情| 干b网| 亚洲另类综合欧美| 亚洲成人免费中文字幕| 久久无码精品| 亚洲drav色图| 超碰调教97| 99re公开精品免费视频| 好涩综合| 97精品久久久久中文字幕| 天天爽天天操| 一级毛片久久久久久久女人18| 少妇九九九九| 九九九影院| 日本狠狠干| 欧美一级特黄淫片在线观看| 美欧色综合| 日本人妻天堂网站在线播放| 亚洲人人操| 综合操逼| 人人做,人人操,人人摸| 欧美日韩亚洲天堂| 少妇色综合| 亚洲色堂免费视频| 六月丁香婷| 国产精品久久久久久无码红治院| 91五十路| 日产精品久久久一区二区| 欧美视频第二页| 91xingse| 丝袜 亚洲 偷拍| 91成人精品在线播放| 亚洲巨爆乳一区二区三区四季网| 97操b| 97天天插| 中文字幕伊人| 夜精品久无码| 午夜啊啊啊| 九九九综合精品| 五月丁香啪| 久久肏大逼| 秋霞久久亚洲精品成人| 八戒午夜福利理论片| 97免费在线观看| 殴美色网| 久久久精品久久| 一二三四视频在线社区中文字幕| 色色99| 蜜臀久久99精品久久久久免费观| 99丝袜福利在线播放| 久久大香蕉| www.夜夜操| 99精品久久久久久久婷婷蜜桃| 欧美黄片欧美黄片xxx| 一级毛片久久久久久久女人18| 精品人妻一区二区三区四区石在线 | 99在线观看视频在线高清| 日韩大香蕉精品在线视频| 超碰97久久观看| 91美女色视频亚洲| 中文字幕第23区| 99re在线视频国产| 精品无码产区一区二| 久久久少妇诱惑精品视频| 制服丝袜第二页| 久久久久深夜无码| 成人一二三区| 久久精品一区二区三区四区五区| 国产精品久久久久久久久久久久| 大学生美女口爆| 亚洲伊人久久综合97| se吧提供91精品国产91久久久久久 | 最新日日夜夜天天干干| 人妻一区视频| 久久 国产精品 一区| 超碰成人免费| 天天干天天日天天射黄色| 色91综合网| 青青青艹在线视频| 婷婷丁香人妻| 人人模人人看| 亚洲图片欧洲图片aⅴ| 乱色视频中文字幕| 日韩丝袜人妻AV| 九九九九九九九九九五码| 97超级色碰碰| 97在线免费观看视频| 成人无遮挡毛片免费看| 国产粉嫩出水在线播放| 人人爽天天爽| 欧美极品少妇| 久久久久九九九| 韩日性爱av| 操操啪| 亚洲码和欧洲精品激情系列| 美女让帅哥通她小鸡鸡| 91w欧美| 萌白酱自拍视频| 东京日日夜夜| 久久久久无码一妻区| 99av| 思思热在线cao| 97超碰美国| 91熟女少妇| 欧美一区二区男人天堂| 中文字幕精品区先锋资源| 丝袜制服字幕在线| 日本黄色精品| 久操网视频| 美女露胸露奶头| 曰本特级特黄特色黄色A级网站高清在线免费看 | 夜色97| 小说区 图片区色 综合区| 黄色一级视| 78p欧美| 久久精品日韩专区免费观看| 国产亚洲日韩欧| 九九成人视频| 97久久久久久久久久| 亚洲AV成人无码一二三久久| 中文字幕精品一区二区精品| 国产精品午夜精品| 美国一区二区三区视频| 刺激性视频黄页| 久久超碰com| 美女自卫慰黄网站免费| 我中文字幕6区| 欧美v亚洲v综合v国产v妖精| 大香蕉碰| 久久久四区| 欧美日韩第一页| 色踪合AV| 蜜乳AV一区二区三区四| 国产日韩人人| 日韩在线一区高清在线| 欧美72网页| 欧美Ⅴ性爱| 青青草密桃在线播放| 91天堂| 中文字幕永久在线| 日韩综合97p| 99爱精品| 97国产精品视频| 鲁鲁色综合网| 麻豆久久精品亚洲精品88 | 欧美第二页| 亚洲,欧美,春色,另类| 日本媚薬中文字幕在线| 亚洲成人碰碰| 久久精品一区二区一8| 九九精品美女高溯喷水 | 韩国女主播青草福利视频| 人人操人人色网| 第二页中文字幕| 涩综合导航| 久久爱超碰网| 日本人人操人人操| 少妇贴图| 亚洲国产一区二区三区在线 | 日本欧美韩国日产片片在线看免| 午夜精品久久99蜜桃的功能章节| 精品国产乱码久久久久久影片| 超碰在线一区| 一区 欧美 日韩 麻豆| 国产女s强制榨精视频| 精品乱码久久久久| 国产伦乱91| 俞拍久久国应视频| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 97色碰| 中国黑人三级片网站上区| 色官网色综合| 国产欧美另类久久久精品课程| 精品丰满人妻一区二区三区免费观| 尤物网站91| 亚洲精品蜜桃久久久久久久| 国产精品午夜高潮呻吟久久av| 欧美96在线|欧| 99热精品青草在线| 久久高清欧美国产| 超碰95| 久久久久国产| 麻豆60秒| 国产av又色又爽又黄| 欧美亚洲特P| 精品国产91久久久久久一区黄无| 国产精品久久久久久片| 欧美综合自拍| 加勒比久久av| 黑人中出21连凳花野真衣| 日本一区二区成人在线| 免费一二区| 亚州Av天美传媒| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 中日韓欧美高清| 亚洲成人妻日韩在线| 欧美性天天影视| 无码在线亚洲| 秋霞一级A片黄色视频| 亚洲 欧美综合| 中文字幕人乱码中文字的预防方法| 成人精品在线观看| 国产精品免费日韩| 国产欧美在线观看免费观看| 中出20p| 一区二区不卡| 色噜噜人妻av 中文字幕| 91小视频| 久久中文字幕一区不卡| 欧美精品97| 2020天天色综合| 天天射夜夜| 欧美色图私拍91| 麻豆60秒| 六月天婷婷| 精品国产www久久| 搞中出久久| 中文字幕久久婷婷丁香五月天| 综合少妇网| 插入粉嫩少妇视频| 91/欧美| 精产国品一区二三产品| 你操综合| 青青草视频这里只有精品| 一级A啪啪啪啪| 亚洲中文字母在线播放| 欧美日韩操逼动图| 亚洲第一精品在线视频| 亚洲成人在线高清| 人人人摸人人| 亚欧无码线免费观看视频| 久久超碰97| 国产精品第一页国产大屁股视频免费区| 日韩欧美蜜桃精品久久中文字幕久久| 欲射影视| 亚洲熟女一区| 欧美性天天影院| 欧美日韩青操| 亚洲天天影视色综合| 伊人操操| 玖玖草久草99蜜月一区二区三区| 伊人网在线视频| 素颜老阿姨乱情色| 欧美色综合图片| 另类专区加勒比| 久久精品成人一区二区三区蜜臀| 久久99深爱久久99精品| 一区二三区四区视频大全套| 大香蕉色欲AV| 国产尤物在线三区| 欧美色网络| 亚洲加勒比久久日本道| 伊人热综合| 眼镜人妻101.com| 人人操人人摸人人看人人干| 黑人无码一区二区| 综合久久中文字幕综合日韩精品| 色婷婷基地| 麻豆2区1区天美| 好吊色一区| 国产99999久久精品| 天堂av最新电影网| 91成人18| 岛国视频一二三区| 日本日皮视频逼| 久久人妻视频网| 色天使大香蕉| 亚洲国产福利视频| 大香蕉78| 精品国产人成在线| 欧美激情综合| 精品人妻一区二区免费蜜桃| 精品少妇人妻| 神马麻豆福利院| 精品久久久久久无码| 一本一道vs波多野结衣| 玖玖视频在线资源一区二区三区| 另类av天堂| 97人妻人人躁人人玩人人| 亚洲黄色AV电影| 尤物网址| 欧美另类色图片| 亚洲超碰综合网| 97色在线视频| 1禁看欧美黄片免费看| 日本人体九九九九九九| 99热8| 亚洲美女AV无码| 亚洲砖码砖专无区2023| 久久9亚洲| 日本免费二区三区| 欧美精品一区二区少妇免费A片| 91人妻Pr| 欧美人妻色| 少妇精品久久| 国产成人精品日本视频| 抽查国产福利主播| 久久αⅴ| 人看人人摸人人操| 熟女欧美日韩综合婷婷| 97欧美综合| 精品毛片久久久精品毛片| 丝袜内射| 99久草| 俺去俺来也在线www| 伊人久久大香线综合无码| 人人妻人人澡人人爽久久av| 色综合av男人天堂| 麻豆AV96熟妇人妻| 久久午夜色播影院免费高清| 久热大香蕉| 99热18这里只有精品| 国产一区二区免费福利片| 裸体美女免费看网站青草| 91天天美女| 国产精品激情久久久久久久| 99re69综合| 精品无码欧美三级| 大香蕉宗合网在线| 三级色影综合网| 91狠狠综合久久久久久| 亚洲综合色在线| 男女性感激情网站| 日日干男人的天堂| 天天懆天天日| 熟女天天干| 日韩激情无码影院| 久九九九九九九热| 欧美一区二区三区不卡高清视频| 67914亚洲精品| 蜜臀99久久国产| 天天肏夜夜肏| 欧美激情在线观看视频| 激情五月天视频| 青青草这里只有精品| 91久操| 国产精品久久泡妞网站| 五月综合激情网| 久久久久久九九九| 91在线页| 国产精品成久久久久午夜午夜| 热天堂一区二区| 亚洲欧美国产中文视频| 久久亚洲天天做| 国产精品露脸在线观看| 99RE在线视频精品,这里只有精品| PMv在线观看| 亚洲淫色网中文| 欧美老妇曰批的视频| 亚洲丰满很很操| 十八禁视频网站| 亚洲熟妇A V黑人| 日本天天吊| 自拍偷拍草一草| 亚洲日韩东京热一区| 成人免费福利网站国产| 欧洲视频在线| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 无码人妻一区二区三区四区老鸭窝| 人妻久久久久久| 婷婷超| 欧美 亚洲 另类 综合| 久久香蕉综合一本到3atv| 欧美春色| 五月婷婷hd| 国产一级黄色片在线观看| 日韩综合97p| 成人日韩中文字幕| 亚洲国产一级精品毛一级精品看免费视频| 超碰97人人乐| av在线浏览| AA特级绝黄| 欧美第二页| 久久久久网站-538在线视频-欧美永久乱码| 亚洲少妇综合在线播放| 搡老女人老91二区| 欧美亚洲涩涩| 五月天婷婷欧美三区| 素人一区二区三区日韩| 97伦综合| www.高清无码诱惑一区.com| av片在线观看免费播放| 思思热在线视频在线| 日本熟妇自慰性高潮一区二区三区| 9九九九九视频在线观看| 亚洲欧洲综合成人av一区| 网友自拍第1页| 中文字幕女同在线| 熟女丰满人妻一区| 国产精点久久久成人| 日韩精品中文字幕人妻| 极品出轨视频网站| 午夜福利在线视频1000| 亚洲天堂,男人| 国产精品制服丝袜清纯唯美 | 日本美女性生活久久久久久久| 黄色AAAAAAAAAAA大片| 91综合网站| 碰人碰碰人人开房人肉| 成人老鸭窝人人在线视频| 婷婷操逼| 久久高清欧美国产| 国产成人99久久亚洲综合| 啊啊啊免费| 91中出在线| 中文久久96| 97玖玖超碰| 天天影视综合网欧美精品| 福利在线黄片| 操逼片国产| 超碰精品国产无码| 欧美亚洲小说| 久久中文字幕在线观看| 欧美综合狠| 人妻内射一区二区在线视频| 午夜福利久久久噜久噜久久综合 | 东京热一区二区三区四区五区六区| 婷婷五月天色| 欧美亚洲中文字幕| 久久久国产亚洲精品系列| 一个色导综合| 无码久久国产| 久久精品一区二区一8| 91亚州| 欧美懂色综合网| 4虎在线观看| 九九九久久久W精品| 亚洲双插| 97日韩欧美亚洲| 久久国产精品视频| 夜夜做夜夜爽精品视频| 午夜精品久久久久久久99| 五毛骚逼极品美女怕怕| 欧洲小说色图视频另类| 狠狠躁天天躁日日躁| 91欧美美女日韩国产婷婷| 亚洲97P| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 五十路熟女在线不卡观看一区二区| 久久精品中文| 国产和美国毛片| 色香欲天天天天综合色| 骚货 中文字幕 av| 97国产精品在线观看| 美女十八禁| 天天综合-91入口| 中文字幕在线观看网址| 91丨国产丨白浆秘 洗澡动漫| 久久在线观看免费视频| 午夜精品久久久久久久久久蜜桃| 免费一级精品啪啪视频| 综合操逼| www.色综合| 亚洲一区二区三区久久 亚洲一区二区| 亚洲欧美一区二区三区在钱蜜桃| 男人下部插入女人下部| 亚洲美女色图| 综合网亚洲1| www国产精品| 国产一区二区成人av在线播放| 欧美偷拍区| 欧美自拍偷拍免费观看| 一本道综合色图| 日韩成人午夜精品久久高潮| 国产精品久久久久久久久久久久久久久久| 另类专区加勒比| 97资源久久| 乱伦一区二区三区‘| 国产精品久久久久综合| 97超碰色五月| 少妇精品久久久| 男女啊啊啊啊啊| 大二网站亚洲| 日本肏逼视频在线观看| 久操九九九九| 亚洲欧洲无码一区夜| 亚洲欧美洲综合| 岛国色情视频在线观看| 97干在线视频| 丰满搜索结果 -第18页- 久久高清无码| 长久操视频| 91成人18| 岛国黄色大片网站| 欧美老熟另类| 婷婷激情五月综合| 日本乱人伦片中文三区| 国产伦乱91| 大吊色| 亚洲成成熟女人综合一区二区| 成人性爱AV在线免费观看| 亚洲各类熟们中文字幕| 在线 亚洲 网爆 自拍| 亚洲第一页综合在线| 大二网站亚洲| AV九九| 九九热精彩视频| 国产成年女黄特黄| 无遮挡h肉动漫在线观看| 97色诱| 男人天堂资源| 日韩不卡a级视频专区| 熟女中出视频| 97精品免费视频网站| 全球成人中文在线| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚欧Av| 久久夜嗨| 国产精品美女视频诱惑| 亚洲AV免费在线| 亚洲自拍青操视频| 91人妻精华帖| 人妻在线臀日韩| 伊香蕉综合久久久久久久噜噜噜| 搡老人老9丨女老熟人| 亚洲五区熟女| 97精品国产| 日日狠狠久久偷偷色综合免费| 久九9精品| 欧美亚洲一级在线观看| 精品熟女一区=区三区| 天天久久| 五月婷婷综合激情| 天天影视综合色| 久草免费在线一区二区| 亚洲熟久久| 岛国色情视频在线观看| 大香蕉在线视频重口味毛片在线| 国产成人欧美精品在线| 花野真衣| 精品亚洲| 精品视频123区小说区| 玖草在线视频| 中文字幕国产精品1区| 一区二区三| 五月天春色激情网| 国产无码精品久久久久久| www鬼畜国产男人的天堂| 97免费在线观看| 久久国产99精品72福利| 日韩在线国产字幕| 久久久不能久久久久| 操逼啊啊啊91| 丝袜亚洲综合| 日本免费不卡二区| 亚洲,欧美,综合网| 中国东北熟女老太婆内谢| 福利天堂| 丰满少妇乱子伦精品无| 精品制服美女中文一区二区三区| 色成人Www精品永久观看| 99热日| 超碰成人国产| 天天操妹子| 私色综合网| AAAA欧美日韩| 91久久久视| 乱伦av麻豆| 亚洲性综合11| 95精品在线| 天天激情综合站| 中文字幕伊人| 色色色综合| 国产乱伦视频污| 中国熟女网站| 亚洲av无码成人精品国产| 99av| 欧美老妇女内射网址| 最新中文字幕在线亚洲| 久久日韩肥臀| 男人的天堂在线2| 五月丁香拍拍激情综合三级| 97人人夜| 精品久久久久黄少妇| 免费αⅴ在线观看| 怡春院久久| 日韩av熟女一区二区三区成人| 精品中文字幕一区二区| 97伊人超碰| 欧美日韩理论一区| 精品v日韩欧美国产| 久久精品—区二区三区内射| 国产亚洲欧洲在线观看| 人人摸人人叼| 日产操逼| 999九九九九国产动| 97人妻色| 在线精品福利免费播放| 尤物网站91| 骚货 中文字幕 av| 日本天堂网| 国内三级自拍小视频在线观看| 神马久久久久久| 亚洲精品黑丝| 人妻出轨一区二区三区| 爽 好舒服 无码刺激久久| 青娱乐国产剧情av一区| 国产丝袜高跟美女av免费观看| 四虎永久在线精品免费网址| 岛国视频免费在线观看| 久操电影| 麻豆色99999| 青青伊人久久| 亚洲熟妇丝袜在线观看| 亚洲图片偷拍视频区| A一区片| 丰满人妻一区二区三区| 久湿久久| 高潮嗯啊性感美女久久久| 国产毛片精品一区二区色欲黄A片| 国产精品无码久久久久2025| 五十路熟女在线不卡观看一区二区| 男人的天堂免费| 性交一区二区在线播放| 久久欧美1卡2卡3| 大香蕉啪啪啪| 久久99午夜精品一区人妻| 影音先锋每日最新资源在线观看| 亚洲欧洲日韩中文字幕一区| 91丝袜熟女| 欧美一二在线| 久久久9视频| 中文字幕高清20页视频| 亚洲经典啪啪| 无色无码| 伊人久久大香线蕉无码| 男人女人18禁片免费看网站| 酒色综合网| 91老司机精品| 一区e区三| 天操天操夜操夜月月年年操操| 91天天c| 男生女生啊啊啊啊| 91成人在线| 操操操操操操| 麻豆九九九| 人妻插插人妻人| 欧美综合加勒比在线| 亚洲。日韩。欧美| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚洲男人天堂Av| 天天综合色| 亚洲高潮少妇| 亚洲性爱高潮影院| 综合网,亚洲,欧美| 欧美亚洲性爱一区二区| 国产蜜臀精品一区免费尤物| 97九色人妻| 欧美中文字幕男人天堂久久精品| 又大又白奶子| 青青草自拍视频在线播放| 天天射网| 第四色亚洲色图| 狠狠色一区二区中文字幕| A男人的天堂| 色综合 加勒比| 成人一二三区| 97视频在线免费观看| 日本羞羞的视频在线播放|