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

ARTICLE DETAIL

資訊詳情

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

Hive遞歸計算實踐:臨時表+循環(huán)迭代實現(xiàn)任意層級展開

Hive遞歸計算實踐:臨時表+循環(huán)迭代實現(xiàn)任意層級展開 Hive SQL 寫遞歸計算一直是數(shù)倉工程師繞不過去的一道坎。業(yè)務(wù)方一句“我要看全鏈路組織架構(gòu)”或者“把這個 BOM 的末級物料全部展開”落到 Hive SQL 上就是一場噩夢。MySQL 里一條WITH RECURSIVE能搞定的事在 Hive 里就是另一套邏輯。我之前用“寫死 20 層自連接”的方式湊合過一版姑且叫 1.0后來業(yè)務(wù)層級超過 20 層SQL 直接廢掉才認(rèn)真做了這套 2.0 方案。這套 2.0 的核心思路并不復(fù)雜臨時表 循環(huán)迭代每一輪只掃增量數(shù)據(jù)再用一張總表防環(huán)路、去重復(fù)。實測下來千萬級節(jié)點、幾十層深度的場景都能穩(wěn)定跑完更重要的是不會因為某個環(huán)導(dǎo)致任務(wù)跑到天荒地老。這篇文章就完整記錄一下這套方案的設(shè)計思路、完整代碼、性能調(diào)優(yōu)和排坑實錄給還在 Hive 里硬剛遞歸的朋友們一個可以直接抄的作業(yè)。1. 為什么需要一套 2.0 方案Hive 本質(zhì)上是為分布式批處理設(shè)計的標(biāo)準(zhǔn)的 SQL 遞歸查詢能力一直不是它的強項。低版本 Hive 根本不支持WITH RECURSIVE新版本雖然借助 Calcite 加了這個語法但生產(chǎn)環(huán)境里依賴它跑大規(guī)模遞歸任務(wù)的人依然很少后面我會具體講原因。所以大部分?jǐn)?shù)倉團隊實際上都在用“土辦法”實現(xiàn)遞歸。1.1 1.0 方案寫死層數(shù)的自連接1.0 版本的思路很直白既然不知道最深多少層那就假設(shè)一個最大值比如 20 層然后用LEFT JOIN一層層往上拼最后用UNION ALL合并所有層的結(jié)果。這種方案應(yīng)付有限的、明確已知層級的需求確實沒問題。我最早處理一個“三二級部門展開”的需求時就是這么干的。但問題也很明顯深度是寫死的。一旦需求變成“動態(tài)層級”SQL 就廢了。SQL 冗長得可怕。20 層JOIN的 SQL 要寫幾百行維護起來頭大。性能不穩(wěn)定。每一層JOIN都會對上一步的全量結(jié)果再掃一遍越到后面越慢。1.2 2.0 方案要解決的核心問題2.0 在設(shè)計之初定了幾個明確目標(biāo)支持任意深度最多只受集群資源和參數(shù)限制。每一輪迭代只處理新發(fā)現(xiàn)的增量數(shù)據(jù)而不是全量重算。防環(huán)路。不能因為 A→B→C→A 這種環(huán)導(dǎo)致死循環(huán)。每一輪結(jié)果都帶有層級標(biāo)記方便業(yè)務(wù)側(cè)按“第幾層”做過濾和分析。這套方案從設(shè)計、編碼到調(diào)優(yōu)大概花了一周落地之后穩(wěn)定跑了很久也經(jīng)歷了多次數(shù)據(jù)量和深度翻倍的考驗。下面把方案完整拆開講。2. 遞歸計算的主流實現(xiàn)路線對比在做 2.0 之前我把當(dāng)時業(yè)界常見的幾種 Hive 遞歸方案都捋了一遍這里直接給結(jié)論方便你做技術(shù)選型。2.1 寫死層數(shù)的自連接方案就是 1.0 的做法適用于層級明確且較淺的場景。優(yōu)點是實現(xiàn)簡單、不依賴任何腳本缺點是靈活性差、性能不可控。-- 示例展開 3 層部門 SELECT t1.dep_id AS root_dep_id, t3.dep_id AS child_dep_id, CASE WHEN t2.dep_id IS NULL THEN 1 WHEN t3.dep_id IS NULL THEN 2 ELSE 3 END AS depth FROM ods_dep_rel t1 LEFT JOIN ods_dep_rel t2 ON t1.dep_id t2.parent_dep_id LEFT JOIN ods_dep_rel t3 ON t2.dep_id t3.parent_dep_id WHERE t1.parent_dep_id IS NULL;層數(shù)少的時候還能忍層數(shù)多起來這段 SQL 會膨脹到你不想維護。2.2 原生 WITH RECURSIVE 方案從 Hive 4.0 開始社區(qū)通過 Calcite 引入了原生遞歸 CTE 支持。理論上你可以寫這樣的語句WITH RECURSIVE dep_tree AS ( SELECT dep_id, parent_dep_id, dep_name, 0 AS loop_id FROM ods_dep_rel WHERE parent_dep_id IS NULL UNION ALL SELECT c.dep_id, c.parent_dep_id, c.dep_name, t.loop_id 1 FROM dep_tree t JOIN ods_dep_rel c ON t.dep_id c.parent_dep_id ) SELECT * FROM dep_tree;但在實際生產(chǎn)環(huán)境中我對這套語法保持謹(jǐn)慎態(tài)度。一方面是因為很多企業(yè)的 Hive 還是 3.x 版本另一方面是原生遞歸 CTE 在底層執(zhí)行時容易出現(xiàn)性能抖動資源消耗不太好預(yù)估。小數(shù)據(jù)量驗證邏輯沒問題一旦上了十億級節(jié)點還是老老實實用迭代方案穩(wěn)妥。2.3 臨時表 循環(huán)迭代方案這就是 2.0 的核心路線。思路是用一張“結(jié)果總表”保存已經(jīng)找到的所有節(jié)點再用一張“增量表”保存本輪新發(fā)現(xiàn)的節(jié)點每輪迭代從增量表出發(fā)向外擴展用總表做去重和防環(huán)。這個方案的優(yōu)勢很明顯每一輪只掃增量數(shù)據(jù)而不是全量數(shù)據(jù)性能可控深度上限可以人為配置邏輯完全透明每輪跑了多少數(shù)據(jù)一目了然。缺點是需要寫 Shell 腳本來控制循環(huán)對開發(fā)者的工程能力有一定要求。2.4 自定義 UDF / Transform 腳本方案還可以用 Python 腳本配合TRANSFORM語法在腳本內(nèi)部實現(xiàn)遞歸邏輯。這種方式邏輯自由度最高但受限于單機內(nèi)存和腳本執(zhí)行模型數(shù)據(jù)量大時容易成為瓶頸。我一般只在“遞歸內(nèi)部有復(fù)雜業(yè)務(wù)規(guī)則”時才會考慮它普通展開場景用循環(huán)迭代就夠了。下面用一張表把這幾種路線的特點匯總一下方案深度上限實現(xiàn)復(fù)雜度性能表現(xiàn)適用場景寫死層數(shù)自連接固定層數(shù)低層數(shù)越多越差淺層級、需求穩(wěn)定原生 WITH RECURSIVE無低受引擎影響大小數(shù)據(jù)量、Hive 4.0臨時表循環(huán)迭代可配置中可控需調(diào)優(yōu)企業(yè)級大規(guī)模數(shù)據(jù)Python UDF 遞歸受單機內(nèi)存限制高中低小數(shù)據(jù)量、復(fù)雜規(guī)則我最終選擇的是“臨時表 循環(huán)迭代”下面詳細講它的設(shè)計邏輯。3. 2.0 方案核心設(shè)計雙表迭代框架3.1 結(jié)果總表 增量表的協(xié)同工作方式整套方案的核心是兩個表結(jié)果總表TOTAL和增量表INC。每一輪的迭代動作可以做如下拆解從上一輪的增量表中取數(shù)據(jù)去關(guān)聯(lián)子節(jié)點。關(guān)聯(lián)出來的新節(jié)點和結(jié)果總表做LEFT JOIN如果已經(jīng)存在則過濾掉。過濾后的數(shù)據(jù)寫入新的增量表。將新增量合并進結(jié)果總表。如果新增量為空或者達到了設(shè)定的最大迭代次數(shù)循環(huán)終止。這個流程里最關(guān)鍵的優(yōu)化點在于每輪迭代的輸入是“上一輪的增量”而不是“歷史全量”。這樣一來數(shù)據(jù)增長不是隨層數(shù)線性疊加的整體掃描量小很多這正是 2.0 比 1.0 性能好的根本原因。3.2 環(huán)路檢測與終止條件設(shè)計防環(huán)路是遞歸計算里最不能忽略的一環(huán)。環(huán)路指的是數(shù)據(jù)里出現(xiàn)了 A→B→C→A 這種循環(huán)引用。在雙表迭代的設(shè)計下環(huán)路其實已經(jīng)天然被結(jié)果總表擋住了任何節(jié)點只要被訪問過再次出現(xiàn)時會被總表過濾掉。所以迭代不會因為環(huán)路而無限循環(huán)最多遍歷完全部節(jié)點就自然會停下來。不過為了更早地剪枝節(jié)省無謂的 IO還可以在迭代 SQL 里加一個路徑字段用find_in_set判斷當(dāng)前節(jié)點是否已經(jīng)出現(xiàn)在路徑上。這種做法的代價是每行都要攜帶一段路徑字符串層級很深時字符串會很長影響性能。我的經(jīng)驗是一般組織架構(gòu)類數(shù)據(jù)層級小于 20 層用路徑檢測沒問題如果是 BOM 展開這種層級可能上百的場景僅靠總表過濾就夠了路徑檢測不做也罷。下面是我在實際腳本里用的兩個終止條件本輪增量為空說明已經(jīng)遞歸到底了正常結(jié)束。迭代次數(shù)達到預(yù)設(shè)的MAX_LOOP說明可能存在異常數(shù)據(jù)比如深層次環(huán)強制退出并告警。3.3 數(shù)據(jù)傾斜與發(fā)散節(jié)點的處理思路遞歸迭代中最容易出性能問題的是“發(fā)散節(jié)點”。舉個例子某個根部門下面掛了十萬個葉子部門那某一輪迭代中這十萬條子節(jié)點記錄會全部由這一個根部門產(chǎn)生。在 Hive 的分布式計算模型下這意味著某一個 Reduce 要處理巨大的數(shù)據(jù)量跑得比其它所有 Reduce 都慢也就是典型的數(shù)據(jù)傾斜。處理思路有幾種對關(guān)聯(lián)鍵做加鹽處理把大節(jié)點的數(shù)據(jù)打散到多個 Reduce。拆根并行。如果業(yè)務(wù)允許把不同的根節(jié)點分組拆成多個獨立任務(wù)并行跑。如果增量表和關(guān)聯(lián)表都不大比如小于 2GB直接加MAPJOIN提示把關(guān)聯(lián)表加載到內(nèi)存里繞開 Shuffle。另外還有一個容易忽略的問題臟數(shù)據(jù)導(dǎo)致的“假發(fā)散”。如果源表里存在大量parent_dep_id為空字符串或特殊字符的孤兒節(jié)點它們會在某一輪被同時關(guān)聯(lián)出來造成一輪迭代的數(shù)據(jù)量暴漲。建表時對這種情況要有心理準(zhǔn)備清洗數(shù)據(jù)的時候要一并處理。4. 實操全流程完整跑通一個部門樹遞歸展開下面用一個經(jīng)典場景——部門樹展開——走一遍完整流程。假設(shè)有一張部門關(guān)系表ods_dep_rel我把它簡化成下面這種結(jié)構(gòu)CREATE TABLE IF NOT EXISTS ods_dep_rel ( dep_id STRING COMMENT 部門id, parent_dep_id STRING COMMENT 上級部門id, dep_name STRING COMMENT 部門名稱, project_id STRING COMMENT 業(yè)務(wù)線標(biāo)識 ) COMMENT 部門關(guān)系原始表 PARTITIONED BY (dt STRING COMMENT 數(shù)據(jù)日期) STORED AS ORC;需求非常明確給定業(yè)務(wù)線project_id找出每個根部門下所有層級的子部門并記錄每個子部門相對于根部門的層級深度。4.1 初始化 SQL生成第 0 層數(shù)據(jù)第 0 層就是根節(jié)點。實際業(yè)務(wù)里根節(jié)點的定義可能不同有的是parent_dep_id IS NULL有的是parent_dep_id 還有的是設(shè)置了專門的根標(biāo)識字段這里以最常見的parent_dep_id IS NULL為例。-- init_dep_tree.sql INSERT OVERWRITE TABLE tmp_dep_tree_prev SELECT dep_id AS root_dep_id, dep_id AS dep_id, dep_name AS dep_name, 0 AS loop_id, cast(dep_id AS STRING) AS path_str FROM ods_dep_rel WHERE dt ${hiveconf:dt} AND project_id ${hiveconf:project_id} AND parent_dep_id IS NULL;這輪產(chǎn)出的tmp_dep_tree_prev表既是初始結(jié)果集也是第一輪迭代的增量輸入。-- 創(chuàng)建結(jié)果總表如果不存在 CREATE TABLE IF NOT EXISTS tmp_dep_tree_total ( root_dep_id STRING, dep_id STRING, dep_name STRING, loop_id INT, path_str STRING ) STORED AS ORC;然后把初始數(shù)據(jù)寫入總表INSERT INTO TABLE tmp_dep_tree_total SELECT * FROM tmp_dep_tree_prev;注意這里用的是INSERT INTO因為總表是逐輪追加的。4.2 單輪迭代 SQL增量展開的核心邏輯每一輪迭代的核心 SQL 是同一套邏輯只是輸入表不同。落到腳本里我寫成參數(shù)化的 SQL 文件-- expand_once.sql -- 輸入tmp_dep_tree_prev上一輪增量 -- 輸出tmp_dep_tree_cur本輪新增量 INSERT OVERWRITE TABLE tmp_dep_tree_cur SELECT t.root_dep_id AS root_dep_id, c.dep_id AS dep_id, c.dep_name AS dep_name, t.loop_id 1 AS loop_id, concat_ws(,, t.path_str, c.dep_id) AS path_str FROM tmp_dep_tree_prev t JOIN ods_dep_rel c ON t.dep_id c.parent_dep_id LEFT JOIN tmp_dep_tree_total total ON c.dep_id total.dep_id AND t.root_dep_id total.root_dep_id WHERE c.dt ${hiveconf:dt} AND c.project_id ${hiveconf:project_id} AND total.dep_id IS NULL AND NOT find_in_set(c.dep_id, t.path_str) 0;這段 SQL 里最核心的是三個地方JOIN以上一輪增量表的dep_id去匹配源表的parent_dep_id找到所有直接子節(jié)點。LEFT JOIN ... WHERE total.dep_id IS NULL過濾掉已經(jīng)在結(jié)果總表里出現(xiàn)過的節(jié)點這就是上面說的防環(huán)路、防重復(fù)。find_in_set(c.dep_id, t.path_str)從路徑上再做一次檢查防止環(huán)路在極深路徑下帶來額外的重復(fù)計算。每個細節(jié)都很重要。LEFT JOIN的過濾條件必須同時帶root_dep_id否則不同根節(jié)點下出現(xiàn)同一個部門 ID 時會被錯誤過濾掉導(dǎo)致結(jié)果缺失。4.3 Shell 循環(huán)控制腳本讓迭代自動收斂有了初始化 SQL 和單輪迭代 SQL剩下就是把循環(huán)串起來。我用的是 Bash 腳本 hive -f的方式每一輪迭代完成后檢查增量條數(shù)決定繼續(xù)還是終止。#!/bin/bash # 遞歸計算 2.0部門樹自動展開 set -e DT2024-01-01 PROJECT_IDP001 MAX_LOOP50 CUR_LOOP0 HIVE_CONF-hiveconf dt${DT} -hiveconf project_id${PROJECT_ID} # 1. 初始化第 0 層 hive ${HIVE_CONF} -f ./init_dep_tree.sql hive ${HIVE_CONF} -e INSERT INTO TABLE tmp_dep_tree_total SELECT * FROM tmp_dep_tree_prev; # 2. 循環(huán)迭代 while [ ${CUR_LOOP} -lt ${MAX_LOOP} ]; do echo Loop: ${CUR_LOOP} # 執(zhí)行單輪擴展 hive ${HIVE_CONF} -f ./expand_once.sql # 統(tǒng)計本輪增量行數(shù) INC_CNT$(hive -S ${HIVE_CONF} -e SELECT count(1) FROM tmp_dep_tree_cur; | tr -d ) echo Increment count: ${INC_CNT} if [ ${INC_CNT} -eq 0 ]; then echo No new increment, recursion finished. break fi # 合并增量到結(jié)果總表 hive ${HIVE_CONF} -e INSERT INTO TABLE tmp_dep_tree_total SELECT * FROM tmp_dep_tree_cur; # 輪轉(zhuǎn)表當(dāng)前增量變?yōu)橄乱惠喌妮斎?hive ${HIVE_CONF} -e INSERT OVERWRITE TABLE tmp_dep_tree_prev SELECT * FROM tmp_dep_tree_cur; CUR_LOOP$((CUR_LOOP 1)) done # 3. 輸出最終結(jié)果 hive ${HIVE_CONF} -e SELECT root_dep_id, dep_id, dep_name, loop_id FROM tmp_dep_tree_total ORDER BY root_dep_id, loop_id; 這段腳本有三個經(jīng)驗點值得分享tr -d 是必要的。hive -S -e輸出的count結(jié)果往往帶一些空白字符不清理直接做數(shù)值比較會出問題。用INSERT OVERWRITE TABLE tmp_dep_tree_prev SELECT * FROM tmp_dep_tree_cur做表切換而不是TRUNCATE后原地插入是為了保持上一輪數(shù)據(jù)直到本輪完全成功。一旦中間某一步失敗舊的增量數(shù)據(jù)還在排查和恢復(fù)都會容易很多。循環(huán)里沒必要用break后再單獨把結(jié)果導(dǎo)出去直接到最后統(tǒng)一輸出即可。4.4 結(jié)果校驗確認(rèn)遞歸沒有算錯遞歸算完了怎么確認(rèn)結(jié)果對不對我的經(jīng)驗是至少做兩層校驗。第一層總數(shù)校驗。用源表跑一個不依賴遞歸的聚合查詢比如每個部門的直接子部門數(shù)再和自己算出來的結(jié)果做交叉比對。如果源表本身有“該部門所有后代部門數(shù)”這樣的冗余字段校驗會更直接。第二層層級校驗。隨機挑幾個已知深度的部門對照結(jié)果表里的loop_id確認(rèn)深度是否正確。這一步雖然樸素但能有效發(fā)現(xiàn)初始化時根節(jié)點定義錯誤導(dǎo)致的全盤偏移。-- 校驗示例檢查是否有節(jié)點的 loop_id 與路徑深度不一致 -- 正常情況下 path_str 里逗號的數(shù)量加 1 應(yīng)該等于 loop_id SELECT root_dep_id, dep_id, loop_id, path_str, (LENGTH(path_str) - LENGTH(REPLACE(path_str, ,, )) 1) AS path_depth FROM tmp_dep_tree_total WHERE loop_id ! (LENGTH(path_str) - LENGTH(REPLACE(path_str, ,, )) 1);這個 SQL 利用了逗號計數(shù)的技巧很直觀。有經(jīng)驗的讀者可能已經(jīng)想到這其實也驗證了路徑拼接邏輯是否正確。5. 性能調(diào)優(yōu)與踩坑記錄2.0 方案里踩過的坑一點也不比業(yè)務(wù)邏輯少。選幾個最有代表性的寫出來。5.1 迭代輪次過多導(dǎo)致的小文件問題每一輪迭代都會生成一批新的 ORC 文件如果最大迭代深度是 30 層結(jié)果總表里會累積很多小文件。時間久了總表在做LEFT JOIN過濾時甚至?xí)驗樵獢?shù)據(jù)膨脹而變慢。我的處理方式是在腳本結(jié)束后對結(jié)果總表做一次合并壓縮。INSERT OVERWRITE TABLE tmp_dep_tree_total SELECT * FROM tmp_dep_tree_total DISTRIBUTE BY root_dep_id;DISTRIBUTE BY root_dep_id會讓同一個根節(jié)點的數(shù)據(jù)落到同一個 Reduce不僅合并了小文件還能讓后續(xù)查詢按根節(jié)點過濾時更快。5.2 大增量 join 時的任務(wù)卡頓當(dāng)某一輪增量特別大比如某個中間層節(jié)點數(shù)量暴漲時JOIN過程容易出現(xiàn)長尾。我踩過最厲害的一次是在第 4 層迭代時單個 Reduce 跑到 3 小時沒結(jié)束。排查之后發(fā)現(xiàn)是數(shù)據(jù)傾斜一個超大父節(jié)點帶了幾十萬條子節(jié)點記錄全部路由到了同一個 Reduce。解決方案是在迭代 SQL 的JOIN關(guān)聯(lián)鍵上做前綴加鹽或者直接把源表按parent_dep_id分桶。分桶后JOIN的 Shuffle 數(shù)據(jù)量會小很多實測性能提升非常明顯。不過加鹽方案會改變關(guān)聯(lián)邏輯對非傾斜節(jié)點來說反而增加計算量。我的建議是先通過COUNT按parent_dep_id聚合確認(rèn)傾斜節(jié)點的量級再決定是否加鹽不要盲目優(yōu)化。5.3 分區(qū)參數(shù)穿透導(dǎo)致的串?dāng)?shù)問題這個坑很隱蔽。在源表ods_dep_rel存在多分區(qū)的情況下如果迭代 SQL 里忘記寫c.dt ${hiveconf:dt}那么JOIN會掃描全分區(qū)。某一次我切換日期參數(shù)后忘了清理老的臨時表結(jié)果遞歸結(jié)果里混了上一個日期的歷史數(shù)據(jù)排查了很久。從那以后我養(yǎng)成了一個習(xí)慣所有迭代 SQL 的WHERE條件里源表分區(qū)條件必須寫全無論哪個環(huán)境執(zhí)行都能保證只讀當(dāng)天數(shù)據(jù)。5.4 常見報錯速查表報錯信息或現(xiàn)象可能原因解決辦法迭代一直不停止達到 MAX_LOOP存在深層次環(huán)路且總表防環(huán)邏輯有問題檢查LEFT JOIN的關(guān)聯(lián)條件是否帶了root_dep_id檢查源數(shù)據(jù)是否有自關(guān)聯(lián)某一輪增量數(shù)據(jù)暴漲臟數(shù)據(jù)導(dǎo)致發(fā)散節(jié)點或孤兒節(jié)點大量掛載清洗源數(shù)據(jù)剔除parent_dep_id為空的孤兒記錄對關(guān)聯(lián)鍵做分桶結(jié)果總表小文件過多每輪迭代產(chǎn)生新文件未合并結(jié)束后用INSERT OVERWRITE ... DISTRIBUTE BY root_dep_id合并count(1)判斷不準(zhǔn)導(dǎo)致提前退出hive -S -e返回字符串帶空格用tr -d 清理后再做比較不同根節(jié)點下相同部門被過濾LEFT JOIN條件漏掉root_dep_id補上AND t.root_dep_id total.root_dep_id定位不到數(shù)據(jù)問題臨時表太多搞不清哪張是上一輪數(shù)據(jù)固定使用prev/cur輪轉(zhuǎn)命名不要動態(tài)拼接表名6. 這套方案還能怎么擴展如果只是做部門樹展開這套腳本已經(jīng)夠用了。但遞歸計算的場景遠不止組織架構(gòu)。這里列幾個我實際做過的擴展方向。6.1 BOM 物料多級展開BOM 展開和部門樹最大的區(qū)別在于子節(jié)點關(guān)聯(lián)父節(jié)點時還帶一個“用量”字段遞歸展開時要把路徑上的用量做乘積最終得到每一個末級物料的累計需求量。實現(xiàn)時只需要在迭代 SQL 的SELECT子句里多帶一個用量字段合并時做累乘即可。防環(huán)和終止邏輯完全復(fù)用。6.2 關(guān)系圖譜中的多度人脈查找比如“找出某個用戶 3 度以內(nèi)的所有關(guān)聯(lián)用戶”。這個場景本質(zhì)上就是限制深度的遞歸查找只需要在循環(huán)控制腳本里把MAX_LOOP設(shè)為 3并且在初始化 SQL 里固定好起始用戶即可。6.3 數(shù)據(jù)血緣追蹤數(shù)據(jù)倉庫的表和字段之間存在“上游依賴”關(guān)系想查某個指標(biāo)字段的完整血緣鏈路可以用同樣的迭代框架把“父節(jié)點”換成“上游字段”把“子節(jié)點”換成“下游字段”。血緣數(shù)據(jù)的層級往往很深而且環(huán)路的可能性比組織架構(gòu)大不少這時候雙表防環(huán)機制的可靠性就顯得格外重要。最后說點實在的這套 2.0 方案做完之后我再也沒有因為“遞歸查不出來”被業(yè)務(wù)方找過?;乜凑麄€優(yōu)化過程最值得投入精力的其實不是循環(huán)腳本本身而是對增量驅(qū)動和防環(huán)機制的理解。很多做數(shù)據(jù)開發(fā)的朋友一聽到 Hive 遞歸就想著去裝插件、換引擎其實標(biāo)準(zhǔn) Hive 的臨時表迭代方案處理絕大多數(shù)生產(chǎn)需求都足夠了。如果看完這篇文章你只想記住一個點那我建議記住這句迭代 增量表 結(jié)果總表過濾是 Hive 里做遞歸的通用范式。這個范式一旦建立起來不管遇到組織架構(gòu)、BOM 展開還是關(guān)系圖譜都能快速套用最多就是改改表結(jié)構(gòu)、調(diào)調(diào)終止條件而已。下一次再有人跟你說“Hive 做不了遞歸”你可以把這篇文章甩給他。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
一区二区三区免费视频入口| 国产又色又粗又黄又爽| 91视频精品| www久久精品| 一二三区精品视频| 久久久久亚洲三级电影| 99精品在线| 情色五月天久久久| 国产精品久久久久久久久久久久久久久久| daxiangjiao你懂的| 免费一二区| 91精品国产91久久福利| 秋霞视频一区二区| 欧美成人亚洲精品| 无码人妻毛片丰满熟妇精品区 | 欧美激情1区| 蜜臀无码视频在线观看 | 天天爱天天韩国日本牛牛牛牛 | 天堂v无码免费视频| 日韩精品 视频一区二区| 天天添天天干电影| 美女91AV| 精品人人| 欧美性爱精品七区| 一牛影视久久久一区二区三区| av东京热男人的天堂| 亚洲欧美日韩激情不卡| 床上啊啊啊一区二区三区| 久久熟女久| av2014 日韩在线中文字幕| 精品人妻一区二区视频| 综合九九| renqi久久久久久久久久久久| 91在线丝袜| 2019精品国产无码成人| 啊啊啊啊操死我了| 成人无码影片视频在线| 本道在线| 夜夜嗨一区二区| 国产99999| 亚洲第一色页夜| 免费A片三p视频| 91逼逼女人91| 成人国产精品三级A片| 亚洲欧美日韩电影网站一区 | 久久久女人| 久久久一级| 99久久精品欧美国产| 欧美亚洲性爱一区二区| 国产毛片在线| av橘色网站| 农村妇女一级二级三级视频| 国产精品女生av| 中文字幕精品三级久久久| 9+1视频网址| 亚洲久久久久| 夜夜爽夜夜摸夜夜操免费视频| 国产精品999zyz| 精品无人区麻豆乱码1区2区图片 | 亚洲天堂2020| 蜜桃狠狠色伊人亚洲综合| 热九九精品| 亚洲国产欧美一区二区潘金莲 | 欧美操逼熟女| 精品美女久久久久| 天久久久噜噜噜久久国产精品爽爽| 大香蕉伊人亚洲| 超碰在线99| 伊人丁香五月婷婷| 日本成人免费一区二区三区| 东北女人高潮视频| 一区,二区,三区网站| 欧美精品999| 国产最新小视频在线播放下载| 97在线观看免费视频l| 一区二区 韩日AV| 日韩综合成人免费视频| 麻豆AV一区二区天美传媒| 精品9区| 人人手机欧洲亚洲国产人妻| 91欧美长吊| 婷婷四五区| 丁香六月综合激情| 六月丁香五月婷婷| 丁香五月天社区| 欧美一级色| 婷婷丁香六月| 天天天天干| 久久香蕉国产线看观看猫咪av| 亚洲成aⅴ人片不卡无码| 人人操人人色网| 99蜜月精品久久| 国内一级精品| 伊人网综合在线视频| 丰满美女一级毛片在线播放| 伦伦成年午夜免费视频| 中文字幕123| 美女被艹尤物视频| 97九色人妻| 麻豆黄四叶草网站| 国产人人干| 国产9熟妇视频网站| 亚洲开心网| 欧美一区二区男人天堂| 秋霞免费AV| 99热最新| 北条麻妃性愛视频| 99re视频在线播放青草| 精品国产无码中文| 久久97| 自拍丝袜美腿人妻| 久久久草草精品| 精品午夜福利| 多乙久久久久久| 中文字幕乱碼在线| 久九九九九九九九热| 特色a在线上| 欧美强奸乱| 在现视频女上位好爽| 日韩少妇无吗| 国产成年女人免费视频播放a| 99热这里只有精品9| 在线观看视频91| 天堂综合网| 亚欧日韩成人| 狠狠做深爱婷婷久久二区| 天天看天天日天天操| 一区三区啪啪| 国产嫩草精品A88AV| 中文字幕精品一区二区精| 男人的天堂2018.| 四虎在线视频| 96精品在线| 天天操美美| 精品久久視頻在线| 试看60秒| 国产三级日产三级韩国三级| 日韩精品熟妇| 免费A片三p视频| 少妇二级| 超碰在线免费一区二区三区| 97蜜桃综合| 久久久久久999| 91亚洲黑人| 欧美中出| 老熟女天天操| 亚欧无码线免费观看视频| 熟妇在线视频一区二区| 亚洲精品91| 五月丁香六月激情综合| 美女91| 丰满人妻一区二区三区在线| 强奸乱伦动态污图免费 | 黄色av播放免不| 婷婷久草| 深夜国产一区二区三区在线看| 九七人妻在线| 美女97超碰| 国产自制av蜜乳| 97一区二区三区视频| 99∨VTV| 男人天堂2017| 91精品导航| 精品久久九| 操狠狠| 日本一本道A级黄色毛片试看60分钟| 亚洲激情深爱文学小说网站| 亚洲少妇色图自慰直播| 岛园激情| 青娱乐日韩无码| 国产视频一区二区三区在线免费观看 | 极品色www影院| 亚欧免费| 17c在线成人免费A片观看| 91综合网站| 欧美,日韩,中文,另类| 99性爱视频| 影音先锋中文字幕日本好一区二区| 啊啊啊啊好疼| julia国产在线 | 国产精品分类在线观看| 四虎午夜影院| 日本高清视频xxxx| 国产精品亚洲无码| 加勒比久久综合网高清| 国模不卡| 超碰在线国产| ai欧美亚洲小说| 久久人妻视频| 国产超碰人人操| 色97| 欧美日韩另类字幕中文| 国产丝袜一区二区三区| 精品午夜福利| 精品国产乱码久久久久久蜜臀| 欧美激情 亚洲色图| 91情色在线| av影片在线观看不卡| 性无码专区2020| 成人无码在线视频网站| 九九无码视频| 日本淫色网| 亚洲美女黄色| 欧美精品久久96人妻无码| 国内精品久久人妻性色av| 亚洲免费成人精品电影| 国内精品999| 亚洲色图综合网| 91人人操| 人妻熟女av国产网站| 人人乐大香蕉| 91精品91久久久久77777| 久久久久久人妻一区精品色欧美| 久久久久国产无av| 九九拍拍精品视频在线播放 | 丰满人妻一区二区三区大胸懂色| 91丝袜美女| 大但人体久久久久| 亚洲一区操| 国产精品久久成人免费| 热热热热日日漂亮永久永久国产日| 2019男人的天堂| 78超碰| 一起草AV| 亚洲欧美999| 1禁看欧美黄片免费看| 大香蕉伊人网WWWn0n| AV99热18这里只有精品| 操B视频日韩无码| 97色97好| 老熟妇一区二区三区…| 99re在线视频国产| 欧美日韩狠狠爱| 久久99操天天日| 国产成人啪一区二区| 搡老人老9丨女老熟人| 久久色一区二区| 99热在线只有精品| 少妇二级| 天天谢天天干| 亚洲在线A| 激情五月婷婷综合| 91国产丝袜白虎| 99婷婷| 国产97色在线 | 亚洲| 91啪啪视频| 久久精品国产97欧美精品亚洲| 国产一区二区在线播放量| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 久久9精品网站| 最新加勒比丝袜在线| 四虎国产精品永久在线囯在线| 精品一区二区三区蜜桃臀赵总| 色综合超碰超| 夜夜操天| 伊人久久婷婷| 啪啪自拍九九综合| 亚洲自拍青操视频| 久久久精品国产亚洲伊人| 蜜乳Av成人片网站| 日本一级特级毛片视频| 超碰97综合网| 亚洲美女黄色| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 精品999日本| 欧美日韩婷婷中文| 粉嫩国产精品久久久| 日韩欧美亚洲一区二区三区影院| 九月伊人中文字幕| 青青草一区二区高清无码视频| 日韩女优在线| 最新欧洲欧美日本激情网站| 日韩午夜啪啪视频| 国产福利影视| HEYZO高无码国产精品227| 99久久国产精品免费高潮| 亚洲情色一区二区三区| 天堂日本亚洲欧美| 91撸色网 玖玖网 欧美| 欧美色图下一页| 91亚洲欧美色图| 亚洲精品国产熟女久久久久久| 久久婷婷电影网| 玖玖久久久| 先锋女优在线观看视频| 美女久久久| av黄图片在线观看| 欧美一级特黄淫片在线观看| 中日亚韩免费视频| 这里都是精品在线观看| 91操操| 五月丁香激情综合网| 午夜精品视频777| 嗯嗯嗯啊啊啊在线免费观看| 久久久久成人蜜桃精品| 精品人妻美妇91job| 五月丁香网站| 妇人噜噜| 亚洲AV资源| 天天拍天天操| 加勒比海成人视频网| 亚洲激情深爱文学小说网站| 色九九综合AV| 精品少妇一区二区| 8x福利精品第一福利视频导航| 婷婷在线视频在线观看| 粉嫩国产精品久久粉嫩| 欧美 亚洲 大香| 91丝袜美女| 97伦综合| 操逼逼无码| 岛国AV一区二区电影| 精品美女在线视频| 青青伊人加勒比海| 伊人国产成人av网站| 国语av狠狠色丁香婷婷综合激情| 男人女人18禁片免费看网站| 玖玖婷婷五月天| www.高清无码诱惑一区.com | 亚洲AV麻豆Aⅴ无码电影一| 日韩色欲久久一二三四区| 日夜啪电影| 国产极品久久久| 91成人亚洲色图| 亚洲国产欧美另类自拍| 超碰97最新人妻| 亚洲图片激情小说| 夜夜精品视频| 欧美日韩99精品麻豆传媒| 秘书高跟黑色丝袜国产91在线| 亚洲天堂五月天国产| 国产精品 午夜福利| 97se亚洲| 国产视频第2页| 综合久久久久久久综合网| 亚洲va综合va国产va中文| 久久一本大香蕉| a一区二区三区乱码在线| 日本三级人妻a人妻一在线| 亚洲图片另类| 九九九九九九亚洲| 欧成人精品一区二区三区| 久久精品国产精品一区| 亚洲s在线观看| 97网站在线观看 | caorenqi shipin| 国产熟女二区| 最新中文字幕精品在线| 国产深喉| 国产午夜视频| 久操网无码在线| 在线中文AV| www久久久| 日韩成人无码| 四虎视频在线观看| 亚洲天堂人妻熟妇视频| 亚洲欧美激情小说| 91操人视频| 新版天堂中文资源8在线| 亚洲综人网| yazhousetuoumei| 3P乱轮视频| 99re在线视频国产| 女色视频社区| 国产动漫操逼视频| 美女尤物人人操| 天天射天天色成人| 素颜老阿姨乱情色| 爽爽爽免费视频| 亚洲1区2区三区高清中文字幕| 国产精品粉嫩福利在线| 麻豆福利视频导航| 日韩无码嘿咻黑热久| 成人免费福利在线观看| 蜜臀AV秘一区翔田千里| 久久精品无码不卡| 国产精品suv一区| 深爱五月婷婷| 操逼操网| 无码区蜜乳| 国产一区二区精品久久久不卡蜜臀| 婷婷久久五月| 国产热RE99久久6国产精品首| 26uuu偷拍亚洲欧洲综合| 欧美乱伦专区| 人妻夜爽夜夜爽| 后入精品| 百度百度日本操逼| 被窝影院午夜看片无码| 亚洲国产精品9999在线观看| 偷拍亚洲熟女视频播放| 伊人丁香五月婷婷| 精品国产Av无码久久久亚洲| 亚洲天天操| 国产97免费视频| 又粗又长又大国产不卡| 亚洲黄片免费在线播放| 青娱乐国产精品| 亚洲精品第一| 久久婷五月天| 一区二区三区网站日日骚| 伊人97色天使| 校园春色综合香蕉| 综合亚洲网| 东北毛片| 国产呦精品一区二区三区下载| 另类小说综合网| 亚洲天堂7777| 欧美极度丰满熟妇hd| 三级三级三级a级全黄三| 一区二区三区机械有限公司| 久久最新免费视频23| 西西美女视频网| 久久精品国产97欧美精品亚洲 | 欧美91精彩| 亚洲脚交| 国产乱伦性爱区| 国产人妖的免费的视频| 大香蕉乱伦视频网| AV天堂男人的天堂| 欧美亚洲91| 日韩中文字幕国产| 一本正道久久熟女| 九九热三级片| 国产成人精品日本视频| 96爱综合| 精品一级| 午夜男女爽爽爽在线视频| 中文字幕 国产 精品| av72网| 成人一二| 私色综合网| 欧美91久久久久| 成人毛片免费| 国产精品91一样| 蜜臀网 一区| 99热最新| 99热婷婷一区二区三| 91成人在线免费视频| 99爱久久视频频| 91n处女在线观看| 精品国产久热在线观看| 亚洲在线观看| 深爱激情五月天| 亚洲高清色综合| 激情五月婷婷| 久久超碰97| 97WW精品| 超碰在线人人射| 国产福利夜| AV天堂国产| 色婷婷丁香五月| 日韩图色| 一区超碰一区| 欧美不卡在线一区二区| 超碰2017| 精品高清av中文字幕| 在线有码中文字幕| 人妻少妇色综合| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 艹精品| 欧美亚洲性爱一区二区| 日韩三A大片在线观看| 日本免费一区二区不卡| 99热官网| 日本精品一区二区中文字幕| 神马久久午夜| 熟女露脸激情自拍视频| 9久久9综合| 在线欧美69V免费观看视频| 国产专区路线| 色五月婷婷麻豆在| 国产乱色国产精品免费视| 久久国色天香香蕉| 天天干,夜夜爽| 精品国产无码中文| 国产成人在线观看网址| 日产123区精品免费观看| 日本午夜福利影院| 中文字幕亚洲热播人妻| 91天天| 日日插夜夜| 亚洲成人在线资源| 欧美论理片| 少妇国产不卡| 青青草自拍视频在线播放| 国产精品久久久久综合| 免费av大片| 69精品久久久久中文字幕| 久久透逼视频| 性色AV网站| 欧美综合综合| 国产精品久久久 | 有码专区最新中文字幕有码| 懂色av中文字幕一区二区三区天美| 屁股久久久久久| 狠狠五月天| 亚洲不卡AV在线| 按摩中文字幕| 亚洲色入欧美| 伊人加勒比| 国产亚洲性生活视频播放| 日本欧美一区二区三区免费| 婷婷色在线| 91爱综合| 日韩精品一区,二区 九九...老司机| 国产精品第二页| 欧美少妇高潮| 色色色日本| 免费操逼视频下载| 日韩伦理视频| 91AV天堂| 超碰97COm中文| 色狠狠 - 百度| 免费A V在线| 亚洲色图20p| 青青草原av| 2018天天日天天日| 99久热| 色偷综合| 欧美一区二区三区入口| 人妻加勒比东京热| 99re6在线视频精品免费完整版安卓版| 强被迫伦姧在线观看无码网站| 欧美性爱精品七区| 欧美午夜精品久久久久久超碰| 九九拍拍精品视频在线播放| 天天综合网91| 欧美日综合| 精品人妻一区二区蜜桃视频 | 欧美在线伊人色| 九九人人操| 国产丝袜高跟美女av免费观看| 99少妇| AA特级绝黄| 亚洲中文字幕日产无码久久| 屁股久久久久久| 人妻天堂综合网| 欧美激情内射| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 国产强奸AV在线| 免费观看的黄色的网站| 天天看天天在线精品| 精品久久在线区一区| 国产中午字一暮区| 99老司机精品视频在线观看| 婷婷亚洲五月***久久| 日本美女性生活久久久久久久| 开心六月色| 亚洲在线观看| 99热在线观看| 中 文字幕一区二区三四 五 区日 日 骚 | 亚洲污污网站| 日本性交操一区二区不卡系列| 亚欧视频在线| 骚逼一区二区| 波多野结衣之双飞调教在线播放| 中文字幕精品丝袜| 男人的天堂午夜av| 农村妇女精品一区二区| 91情色在线| 1769一区二区| 亚欧操逼片在线观看 | 蜜桃色院一区久久 | 99婷婷一区二区| 97久精品| 操逼无码一区| 中文字幕一区二区三区人妻不卡| 99精品久久| av影片在线观看不卡| 中文字幕91综合| 日韩电影在线观看网址| 日本加靬比网站发布页| 国产精品第一区第一页| 97在线观看免费视频l| 久久激情综合| 国产精品一区午夜福利| 午夜无码熟妇丰满人妻| 加勒比在线视频一区二区三区| 四虎永久在线精品免费网址 | 天堂综合网| 可以看的av| 东北毛片| 91美女视频电影| 色小视频蜜乳| 色吧 综合| 91天美传媒在线观看| 婷婷色在线| 最新三级网址| 伊人专区一区二区三区| 欧美在线 亚洲| 欧美制服另类丝袜| 色婷婷九月天天综合| 91精品老女人| 精品美女少妇一区二区| 91色噜噜狠狠| 久久夜黄色无码A级大片| 超碰97.com| 欧美视频第二页| 日夜啪电影| 午夜影美女日鸡鸡天天视频国产| 亚洲av综合伊人久久| 97精品视频| 78m成人视线| 亚洲综合色在线| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 综合久久中文字幕综合日韩精品| 青草草免费网站av| 熟女精品va中文字幕| 国产最火爆久久国产网站网站| 97bbn| 色九九九九| 亚洲一区二区 麻豆传媒| 麻豆AV短剧| 风流老熟女一区二区三区l| 久久綜合很很很| 九色 人妻 大香蕉| 久超碰在| 午夜激情床戏激情| 狠狠穞A片一區二區三區| 人妻熟女字幕一区二区| 久久手机好看网站| 精品国产乱码久久久久久久久1| 久久久久久AⅤ无码免费肉站| 九月丁香综合网| 激情色色| 久久无码电影| 伊人久久婷婷| 久久夜夜夜夜| 老熟妇一区二区三区| 91久久久久久久久18| 日本操逼aaaaa| 牛牛操视频逼| 日本欧美亚洲高清在线看| 久久久九九网站| 亚洲成人av色网| 美女的肌被草喷水视频| 人妻激情在线视频| 亚洲天堂资源网| 国产精品一区二区校花| 老司机老司机午夜影院| 啊啊啊啊嗯嗯嗯用力好爽 | 人人看人人摸人人色| 人人摸人人干| 国产女人9999| 任我爽在线视频免费观看| 女性91网站| 在线观看精品国产免费| 欧美大香蕉97| а√天堂资源官网在线资源| 视频分类 国内精品| 物尤视频一区二区| 日韩99精品视频综合区| 操我啊啊啊啊啊| 日韩有码中文字幕女同性恋| 中国zzijzzijzzwww精品| 久久久久久国产无码精品| 久操高青| 天天看夜夜看日日干| 丝袜AV一二三区| 嗯嗯嗯啊啊啊干死我吧| 美国日韩黄片| 亚洲色图加勒比| 国产精品第一页国产大屁股视频免费区| 色伊人91| 亚洲少妇诱惑| 男女激烈网站最新| 亚洲限制级| 天天弄天天操| 欧美淫乱视频| 激情五月综合网| 久久久久成人网| 日韩在线观看中文字幕视频| 情色大香蕉| 97资源欧美| 免费公开人人操| 97天天插| 日韩在线AB| 嫩草在线视频| 欧美亚洲清纯| 欧美另类色图片| 国产在线观看91精品一区| 婷婷久草| 99操| 国产一区二区三区久久久精品| 青青草原狼av| 狠狠色狠狠色狠狠五月| 亚洲精品国产拍免费91在线| 成人精品电影| 人人操人人摸人| 欧美成人性爱视频在线播放| 青草伊人网| 国产精品久久发布| 成人午夜小视频手机在线看| 久操视频在线观看| 亚洲欧美综合网| 91爱看| 夜夜草网站| 1人人看人人摸人人操| 欧美色图20P| 欧美大战久久久伊人| 国产日本熟女顶级一区二区三区视频| 亚洲图片欧洲图片aⅴ| 97超碰欧美| 69精品| 久草成人影片| 欧美嗯啊……在线观看视频免费| AV污污污污| 日韩欧洲操屄视频| 欧美18老人禁| 亚洲欧美电影| 久久中文字幕在线观看| 久久久久9999精品九九九| 国产又黄又猛又粗又爽的网站| 欧美黄色手机在线观看| 亚洲欧美天堂| 中国AV美女| 日本一区二区亚洲综合| 9丨久久九九九| 色999偷自拍拍| 久久久精品日本一道| 久久久久免费少妇| 天天操狠狠日夜夜干超碰撸com视频在线观看| 91在线视频免费播放| 亚洲精品无码成人久久久99| 人人射人人操人人摸| 无码日韩网站| 日韩美脚一区二区网站| 蜜臀亚洲中文| 北京美女一区二区| 啊啊啊com| 久久亚洲熟妇在线视频| 97欧美色| 国产精品高潮久久久无码| 秋霞免费无码视频日韩A片| 国产精品嫩草久久久久| 天天草夜夜草高潮片| 91婷婷| 九九热五区| 又大又黄国产| 亚洲熟女偷拍在线观看| 四虎影视 亚洲无码| 操曰本熟女| 超碰2017| 久久久久9| 成年男人的天堂| 青草成人免费视频一COm| 国产人伦a片信息免费片| 97超碰国产精品| 激情四射熟女丝袜| 亚洲不卡三级手机播放| 日欧操屄视频| 天天摸夜夜摸| 亚洲不雅视频1区二区| 欧美性生活综合| 欧美日本天堂| 欧美激情综合| 激情第四色| 欧美草草高清日韩视频| 国产AV激情无码久久无码| 青春草A| 91亚州| a网站免费观看| AV色五月天| 久久精品中文字幕观看| 日韩中文字幕熟妇人妻 | 中文字幕五月婷婷免费| 色嘟嘟人妻天堂网| 射 色综合| 99re9| 少妇 综合| 美欧色综合| 天天摸,夜夜摸| 国产后入| 大乔未久88一区| 中日韩久久久| 人人操人人精品影片| 亚洲精品一区二区三区在线播放| 免费亚洲国产精品久久一区| 操逼网站地址| 伊人骚琪琪亚洲天堂网站| 大奶啊啊好爽| 美女天天干| 一区二区不卡| 日韩激情啪啪| 超碰色97| 熟妇人妻一区二区三区| 久久性爱视频免费看| 日本精品成人无码| 好爽视频在线观看视频| 激情婷婷| a v网站在线播放| 国产情色在线| 第四色亚洲色图| 可能人人看人人摸| 欧美78P| 高清无码网址| 最近2018中文字幕在线高清第一页| 久久发布国产伦子伦精品| 精品国产人成在线| 激情文学小说一区二区| 国产精品小视频一区二区三区| 操操逼操操逼操操逼逼| 四虎影视欧美| 亚洲中亚日激情视频| 亚洲一区二区三区中文字幕| 久久精品无码一区二区三区| 91偷拍欧美亚洲| 欧美丝袜制服久久| 亚洲乱码精品一区二区| 久久久久久久久久久精| 色91综合网| 九九性视频| 欧美一区二区三区另类精品| 97国产精品久久久久| 国产精品午夜成人福利| 激情综合亚洲| 亚洲AV无码国产精品久久久久 | 97这里有精品| 久久国产视频专区一二三| 日本精品人妻少妇一区二区| 人人色人人操在线| 亚洲欧洲精品视频发布| 青青草一区二区高清无码视频| 加勒比久久av| 日日爽熟女| 日本在线999| 天天操天天干美女网址导航| 国产白丝在线| 亚洲欧洲第二视频在线观看色图| 伊人五月天| 欧美熟女少妇| 91天堂视频| 97操在线| 黄站在线免费观看| 综合五月天| 日韩AV噜噜噜一区二区三区四区| 9精品在线| 福利五区| 亚洲男人的天堂AV| 亚洲少妇在线影音| 91网站18在线观看| 一区二区首页| 校园春色家庭伦理欧美激情| 亚洲91综合| 97视频免费播放| 免费观看网黄| 欧美中文字幕精品人妻| 大香蕉啪啪啪啪在线| 极品色社| 九九视频黄色片| 亚洲永久永久永久永久一级一级一级精品| 国产精品分类在线观看| 亚洲人在线| 日韩三级天堂在线观看| 国产精品熟女一区二区三区| 久久久久久久久久久久黄色| 妺妺跟我一起洗澡没忍住| 神马九九| 日本五区不卡| 天天爽天天| 97人妻免费中文字幕| 久久区| 久草精品一区 | 涩涩五月天| 亚洲图片日本AⅤ欧美在线| 午夜操一视频一区| 国产肏屁眼视频| 国产av尤物| 亚洲欧美日韩二区视频| 91免费看一区二区三区| 久热精品在线| 精品一区二区三区四区外站 | 欧美色乱| 成人片视频| 欧美欲色| 玖玖综合.com| 久久久久婷婷| 国产福利精品98视频| 日本幼女18+| 强奸熟女一区二区三区 | 97色伦97色伦国产欧美| 久久岛国| 97人妻人人躁人人玩人人| 大香蕉综合久久| 一二三啪啪专区| 亚洲欧美精品一区天堂久久| 亚洲国产麻豆一区二区三区| 日韩精品国产一区二区| 久久夜夜| 国产精品九九九| 999热日韩精品| 日韩中文9| 久久久禁| 91爱看| 欧美中文狠| 四季AV综合网址| 亚洲精品一二三四区| 日本高清电影欧美色图| 五月婷色| 玖玖玖玖精品国产剧情| 国产精品嫩草影院免费| 免费在线观看国内色片网站网址| 人人操肉肉| 日本精品无码三级网站| 高潮的A片激情扒开一区| 新久久AV| 五月丁香拍拍激情综合三级| 91精品伊人久久久大香线蕉91| 大伊香蕉在线视频免费| 亚洲中文字母在线播放| 九九伊人网| 大香蕉人妻| 亚殴在线| 欧美日韩222| 2000亚洲男人天堂| av72网| 日日躁天天躁狠狠躁| 成人欧美日超碰| 一卡二卡三卡| 亚洲 在线| 男人的天堂1024| 五月丁香黄色网| 免费观看网黄| 久操凹凸视频| 国产精品无码论坛| 久操热线| 欧美在线观看综合国产| 长长久久88视频| 色好看av| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 男人的天堂2000| 男人天堂免费| 中文字幕青青草| 久久久久少妇| 亚洲好看强奸乱伦| 国产成人bd在线观看| 五月婷久久| 婷婷三区| 麻豆久久久久久久久丝袜| 超碰99在线观看| 97综合在线观看| 中文字幕AV片| 人妖欧美一区二区| 亚洲色阁| 涩涩涩综合| 激情婷婷| 国产精品色哟哟| 国产一区二区久久| 久久人妇| 美女久久久| 日本成人A片网站| 久久久国产成人一区二区三区在线| 婷婷五月天伊人| 亚洲妇色| 欧美激情在线观看视频| 中文字幕日韩专区精品系列| 婷婷中文网| 在线啊啊啊啊| 超碰中文字幕人妻草一区| 久久精品国产97欧美精品亚洲 | 91美女視頻| 大香蕉78| 在线可观看的黄色网址| 你操综合| 蜜桃臀久久| 亚洲日韩av专区无码| 丝袜人妻av一区二区| av资源在线播放天堂| 亚洲AV资源| 欧美人妖内射| av天堂精品久久| 久久久中文| 97超碰色中文字幕| 91人妻人人澡人人爽人人精品| 97干在线视频| 午夜精品久久久久| 国产99热| 婷婷天堂站| 97精品国产精品免费观看| 毛片久久| 日日操天天操| 屌妞视频久久久久久久久久久久| 97欧美综合网| 粉嫩粉嫩一区性色AV片| 丰满少妇一区二区三区四区观看| 97资源站日韩| 亚洲美女自拍偷拍视频| 亚洲色91C| 性高潮久久久久久久久久久| 婷婷五月天激情网| 九九九九精品一区| 成人性爱免费播放| 午夜精品99久久久久传媒| 天天综合~91| 国产精品老师| 欧美,日韩,中文,另类| 欧美aaaaaaa| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 好涩综合| 日本高清一区二区在线| av东京热男人的天堂| 日B操| 久热精品色情| 激情黄色片在线观看| 亚洲色图20p| 人人操人人摸人人看人人插| 厕所偷拍在线| 超碰97人妻免费在线| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲日韩国产欧美综合v| 国产情色第一第二页在线观看| 欧美激情视频在线一区| 超碰97久久观看| 污色区网站| 午夜精品久久久久| 国产白嫩漂亮KTV在线| 密臀视频一区二区三区| 大香蕉免费乱伦视频| 亚洲操操操无码| 99久久久久| 天天综合网91| 亚洲精品一区二区三区新线路| 中国一级αV| m欧洲一级午老| 国产人妖的免费的视频| 色哟哟AV| 91久久久久久久久18| 97在线免费看视频| 日日夜夜国产综合| 草草影院最新网址| 丰满熟妇大乳做爰| 狠狠干婷婷| 亚洲欧美一区二区网址| 久久综合av| 激情久久久| 91夜色| 日韩一级二级三级免费看完整版国语版| 韩国一级婬片A片无码天美| 久久九九热| 中文字幕高清20页视频| 強姦亂倫a| 国产丁香精品露脸视频| 色丁香五月婷婷| 国产家庭乱伦性爱视频| 熟女自慰久久久| 免費黃色視頻觀看一| 91亚洲综合| 欧美A√综合网 | 日韩中文字幕人妻视频| 加勒比aⅴ| 大香蕉伊人亚洲| 在线国产一区二区av| 综合亚洲网| 人妻夜夜爽天天爽麻豆三区网站| 国产熟女完整版中字| 深夜激情 | 色色色99| 无遮挡一级毛片视频免费的| 国产日产欧产美韩系列麻豆免费| 尻女朋友一夜| 欧美日韩中文亚洲v在线综合| 久久系列| 91n.欧美| 殴美综合色88| 天天爽天天爽| av无码精品久久久久| 熟妇色99| 激情视频图片| 搞中出视频在线观看| 婷婷综合网| 国产亚州高清国产拍精| 成全动漫视频观看免费下载| 中文字幕av一区二区三区人妻少妇 | 天天看天天日天天操| 99热18这里只有精品| 一道本东京热加勒比一区二区三区| 亚洲aV无码成人在线观看| 久久久久久久强迫| 蜜臀99久| 物尤视频一区二区| 好淫网一二三视区| 人妻中文在线| 人人操人人插人人摸人人干| 天天干天天操天天操夜夜操天天操| 男人的天堂三级| 四虎免费看黄| 久久综合日韩亚洲欧美| 亚州精人品大香蕉| 激情啪啪拍91| 日日操丁香五月天| 欧美真人抽搐一进一出gif| 欧美另类丝袜熟女| 亚洲交换| 国产乱青青草久久| 亚洲狼狼干综合1| 伊人成人情色综合| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 99这里都是精品| 日韩午夜精品一区二区三区电影| 乱伦一区二区三区‘| 国产JDAV无码视频在线观看| 91欧美综合| 天天综合网~91| 欧美色性情| 99少妇| 色臀AV| 日韩大香蕉| 亚洲国产日韩精品久久久| 狠狠入| 外国91| 国产精品久久久久9999小说| 亚州欧美另类| 美女黄站| 97精品在线视频| 啊啊啊好想要| 国产亚洲福利第一页丝袜| 午夜αv| 少妇一级无码精品| 人人看人人插| 手机午夜电影神马久久| 欧美一区二区日韩三区| 中文字幕一区二区三区字幕| 中文字幕av亚洲精品| 日韩在线欧美精品一区二区| 亚洲成aⅴ人片不卡无码| 小说区 图片区色 综合区| 亚洲欧洲日本精品中文a∨| 91伊人久| 欧美一区二区日韩三区| 亚洲高清无码在线桃色| 岛园激情| 三级片网站在线播放| 激情综合五月婷婷| 久九干| 日韩国产十八禁| 色偷偷男人的天堂麻豆| 色噜噜日韩精品| 夜色97| 欧美色网络| 日韩有码 一区二区三区| 思思热一热婷婷热一热| 久久社区一区二区三区| 精品人妻视频入口| AV色天香在线| 美女啊啊啊啊pc| 东北老女人的激情视频| 毛片麻豆91糖心精品毛情片| 啊啊啊啊啊舒服| 91天天综合日韩欧美| 在线视频 亚洲精品| 免费a级毛片av无码久久精品中文字幕| 中国少妇XXXX做受| 伊人久久艹| 婷婷性爱| 一区二区三区激情在线观看| 国产毛片久久久久久久| 亚洲系列第一页| 欧美色图20p| 丝袜美腿91|