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

ARTICLE DETAIL

資訊詳情

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

Webspoon全局異常捕獲實(shí)戰(zhàn):Kettle作業(yè)錯(cuò)誤流與日志表設(shè)計(jì)指南

Webspoon全局異常捕獲實(shí)戰(zhàn):Kettle作業(yè)錯(cuò)誤流與日志表設(shè)計(jì)指南 做ETL的老司機(jī)應(yīng)該都經(jīng)歷過這種場(chǎng)景半夜兩點(diǎn)的告警電話爬起來打開Webspoon看日志折騰半小時(shí)才發(fā)現(xiàn)是源頭接口超時(shí)但任務(wù)已經(jīng)重跑了好幾遍臟數(shù)據(jù)早就進(jìn)了目標(biāo)表。這個(gè)場(chǎng)景之所以常見是因?yàn)榇蠖鄶?shù)人在寫Kettle作業(yè)時(shí)根本沒把“出錯(cuò)了怎么辦”當(dāng)回事——默認(rèn)不配置錯(cuò)誤處理轉(zhuǎn)換一報(bào)錯(cuò)整個(gè)作業(yè)就停停完就算完沒人知道為什么停的更沒人知道哪些數(shù)據(jù)在哪個(gè)環(huán)節(jié)被丟棄了。這一課我們就來啃這塊硬骨頭在Webspoon里做全局異常/錯(cuò)誤捕獲。Webspoon是Kettle的Web化版本直接在瀏覽器里設(shè)計(jì)作業(yè)和轉(zhuǎn)換部署在服務(wù)器上后不用裝客戶端就能跑批。但正因?yàn)槭荳eb版很多人在做異常捕獲時(shí)比在本地客戶端里更懵——界面布局不一樣日志查看不如桌面端直觀錯(cuò)誤處理配置找不到入口。這篇內(nèi)容會(huì)從錯(cuò)誤捕獲的核心思路講起再拆解具體的配置步驟和排錯(cuò)技巧適合已經(jīng)把Kettle基礎(chǔ)玩明白、正在往生產(chǎn)環(huán)境級(jí)別進(jìn)階的同學(xué)參考。1. 為什么ETL需要全局異常捕獲異常到底去哪兒了1.1 ETL任務(wù)報(bào)錯(cuò)的三層典型形態(tài)先說一個(gè)觀點(diǎn)ETL里的“異常”不是一個(gè)東西而是三個(gè)層面的東西。搞清楚這三層后面的捕獲設(shè)計(jì)才有方向。第一層是作業(yè)執(zhí)行層面的異常。比如數(shù)據(jù)庫連接失敗、目標(biāo)表不存在、權(quán)限不足這些錯(cuò)誤發(fā)生在作業(yè)調(diào)度的層面往往整個(gè)轉(zhuǎn)換都起不來。這類異常的特點(diǎn)是報(bào)錯(cuò)信息直白日志里通常有Caused by開頭的堆棧你一眼就能看出是連接字符串寫錯(cuò)了還是驅(qū)動(dòng)沒放進(jìn)去。在Webspoon里這類錯(cuò)誤的表現(xiàn)通常是作業(yè)節(jié)點(diǎn)變紅點(diǎn)擊節(jié)點(diǎn)能看到詳細(xì)的異常堆棧。第二層是數(shù)據(jù)轉(zhuǎn)換層面的異常。這是最常見的也是最容易靜默丟失的。比如源表某個(gè)字段本來應(yīng)該是數(shù)字結(jié)果源庫里混入了幾個(gè)字母轉(zhuǎn)換里的“字段選擇”或“字符串轉(zhuǎn)數(shù)字”步驟直接報(bào)錯(cuò)又比如目標(biāo)表字段長度是50源數(shù)據(jù)某條記錄塞了80個(gè)字符進(jìn)來寫入時(shí)被數(shù)據(jù)庫拒掉。這類異常的特點(diǎn)是不穩(wěn)定、跟數(shù)據(jù)有關(guān)可能這一次跑批不報(bào)錯(cuò)下一次就冒出來了完全取決于源端數(shù)據(jù)質(zhì)量。第三層是業(yè)務(wù)規(guī)則層面的異常。這層最隱蔽因?yàn)镵ettle不會(huì)報(bào)錯(cuò)甚至不會(huì)提示。比如你從接口里取到一個(gè)JSON字段解析后發(fā)現(xiàn)里面的金額是負(fù)數(shù)但業(yè)務(wù)上不允許負(fù)數(shù)再比如實(shí)時(shí)流里有重復(fù)主鍵你的“去重”步驟設(shè)置不當(dāng)這些記錄就多寫了一次。這類異常Kettle是“無感”的它正常跑完了結(jié)果卻是錯(cuò)的。我們說的“全局異常/錯(cuò)誤捕獲”至少要覆蓋前兩層第三層需要借助數(shù)據(jù)校驗(yàn)和血緣分析來兜底。這一課的重點(diǎn)會(huì)放在第一和第二層也就是怎么讓任務(wù)報(bào)錯(cuò)時(shí)能被接住、被記錄、被看見。1.2 沒有錯(cuò)誤捕獲的典型事故鏈為什么很多Kettle任務(wù)在生產(chǎn)環(huán)境跑了一個(gè)月都沒事突然某天就“死了”關(guān)鍵在于ETL是個(gè)鏈?zhǔn)浇Y(jié)構(gòu)每一步都可能出錯(cuò)但默認(rèn)配置下Kettle的處理方式是“一錯(cuò)全?!鞭D(zhuǎn)換里某個(gè)步驟報(bào)錯(cuò)行集直接斷掉后面的步驟拿不到數(shù)據(jù)整個(gè)轉(zhuǎn)換停止作業(yè)標(biāo)記失敗。聽起來好像是合理的嚴(yán)謹(jǐn)嘛。但真正的坑在于任務(wù)停了但沒人知道停在哪一步、為什么停、丟了多少數(shù)據(jù)。Webspoon的作業(yè)運(yùn)行日志存放在內(nèi)存和日志表里如果不配置日志表刷新一下頁面日志就沒了你想復(fù)盤都沒得復(fù)盤。我親眼見過的一個(gè)案例某公司的日常訂單同步任務(wù)源庫有個(gè)字段叫order_status以前都是英文枚舉值某天源端業(yè)務(wù)改造后往里寫了一個(gè)中文值“已取消”。Kettle轉(zhuǎn)換里的“字符串替換”步驟沒匹配到這種值直接把整行數(shù)據(jù)置成NULL后面的寫入步驟遇到NULL就報(bào)主鍵沖突作業(yè)失敗。但因?yàn)闆]有錯(cuò)誤處理作業(yè)在日志里只留下“Failed to execute run: Unable to write to database”這么一句具體是哪條數(shù)據(jù)導(dǎo)致的完全不知道。最后是人工查目標(biāo)表、對(duì)比源表翻了半天才定位到那條臟數(shù)據(jù)。這個(gè)案例說明沒有全局異常捕獲你每天就是在一堆“跑批失敗”郵件里猜謎猜錯(cuò)了重跑可能還會(huì)產(chǎn)生重復(fù)數(shù)據(jù)。有了捕獲機(jī)制作業(yè)報(bào)錯(cuò)時(shí)能把錯(cuò)誤記錄、錯(cuò)誤數(shù)據(jù)、錯(cuò)誤原因全留下來你只需要看一張錯(cuò)誤日志表問題就清晰了。2. Webspoon里的錯(cuò)誤流設(shè)計(jì)從單步驟錯(cuò)誤到全局鏈路2.1 轉(zhuǎn)換內(nèi)的錯(cuò)誤處理定義聊錯(cuò)誤捕獲第一個(gè)要掌握的概念叫錯(cuò)誤流。Kettle的轉(zhuǎn)換Transformation里每個(gè)步驟都有輸入流和輸出流默認(rèn)情況下只輸出正常數(shù)據(jù)。但如果你在步驟上右鍵選擇“定義錯(cuò)誤處理”這個(gè)步驟就會(huì)多出一條錯(cuò)誤輸出流專門承載處理失敗的記錄。Webspoon里也一樣操作路徑是在步驟上點(diǎn)擊右鍵往下找“錯(cuò)誤處理”子菜單。這里需要說明的是Webspoon的右鍵菜單在不同版本里位置略有差異有的是“錯(cuò)誤處理”直接展開有的要先進(jìn)入步驟屬性頁的“錯(cuò)誤處理”標(biāo)簽頁需要你點(diǎn)進(jìn)步驟配置界面去找。錯(cuò)誤處理的定義里主要有幾個(gè)配置項(xiàng)目標(biāo)步驟錯(cuò)誤數(shù)據(jù)要流向哪個(gè)步驟通常是寫日志表、寫文件或者繼續(xù)作后續(xù)的清洗嘗試。錯(cuò)誤字段名比如error_desc、error_code這些字段會(huì)被附加到錯(cuò)誤流上每行錯(cuò)誤數(shù)據(jù)會(huì)帶上這個(gè)步驟拋出的錯(cuò)誤描述和錯(cuò)誤代碼。錯(cuò)誤數(shù)量上限當(dāng)錯(cuò)誤行數(shù)超過這個(gè)值步驟直接失敗停止。這個(gè)設(shè)計(jì)很實(shí)用比如你允許5行臟數(shù)據(jù)跳過不處理但超過5行說明源系統(tǒng)有大批量臟數(shù)據(jù)寧可停下來告警。注意一點(diǎn)錯(cuò)誤處理不是所有步驟都有。像“查詢”、“流查詢”這類步驟的錯(cuò)誤處理配置方式略特殊因?yàn)樗鼈兊腻e(cuò)誤不發(fā)生在行處理中更可能在“數(shù)據(jù)行不可用”的情況下觸發(fā)。而像“字段選擇”、“字符串操作”、“表輸入”、“文本文件輸入”這類行處理型步驟是定義錯(cuò)誤流最順手的。2.2 作業(yè)級(jí)的錯(cuò)誤分支設(shè)計(jì)如果只在轉(zhuǎn)換層級(jí)配錯(cuò)誤流你捕獲到的還是“局部錯(cuò)誤”——某一行的數(shù)據(jù)錯(cuò)誤不能覆蓋“整個(gè)轉(zhuǎn)換掛了”“資源連接失敗”這類全局問題。要捕獲這種級(jí)別的異常得在作業(yè)Job層級(jí)做設(shè)計(jì)。作業(yè)是一個(gè)由多個(gè)作業(yè)項(xiàng)Job Entry組成的有向圖每個(gè)作業(yè)項(xiàng)執(zhí)行完之后有三種結(jié)果成功、失敗、跳過。默認(rèn)情況下一個(gè)作業(yè)項(xiàng)失敗后整條鏈路往下繼續(xù)跑還是會(huì)停止取決于作業(yè)項(xiàng)之間的連線類型。這里有個(gè)非常關(guān)鍵的概念——連線上的結(jié)果約束。在Webspoon作業(yè)里你把鼠標(biāo)放在兩個(gè)作業(yè)項(xiàng)之間的連線上可以設(shè)置當(dāng)上一個(gè)作業(yè)項(xiàng)成功時(shí)走這條線當(dāng)上一個(gè)作業(yè)項(xiàng)失敗時(shí)走這條線無論成功失敗都走這條線很多人設(shè)計(jì)作業(yè)時(shí)只用了默認(rèn)的“成功”線結(jié)果就是作業(yè)項(xiàng)一旦失敗后面的日志記錄、告警通知全都不執(zhí)行了因?yàn)槟愕牧鞒谈緵]定義“失敗”分支。正確的做法是在主干流程的旁邊并行設(shè)計(jì)一條錯(cuò)誤處理支線主干上每個(gè)可能失敗的作業(yè)項(xiàng)都拉一條“失敗”連線到錯(cuò)誤統(tǒng)一處理作業(yè)項(xiàng)。這個(gè)錯(cuò)誤統(tǒng)一處理作業(yè)項(xiàng)里放什么我后面會(huì)詳細(xì)講這里先記住核心思想把錯(cuò)誤捕獲設(shè)計(jì)成作業(yè)圖里的一條平行支線而不是等作業(yè)失敗后再去看日志。2.3 作業(yè)與轉(zhuǎn)換之間的異常傳遞還有一個(gè)容易忽略的細(xì)節(jié)作業(yè)里的“轉(zhuǎn)換”作業(yè)項(xiàng)它執(zhí)行一個(gè)轉(zhuǎn)換時(shí)是等到轉(zhuǎn)換跑完才告知成功或失敗的。如果你的轉(zhuǎn)換里把錯(cuò)誤流都寫進(jìn)了一個(gè)表但轉(zhuǎn)換本身沒有報(bào)錯(cuò)作業(yè)就認(rèn)為它成功了——這其實(shí)是你故意想要的效果某些數(shù)據(jù)錯(cuò)誤可以被“處理”掉任務(wù)整體成功。但有一個(gè)問題轉(zhuǎn)換內(nèi)部有錯(cuò)誤流不代表轉(zhuǎn)換本身失敗作業(yè)并不知道發(fā)生過多少行錯(cuò)誤。更嚴(yán)謹(jǐn)?shù)淖龇ㄊ怯靡粋€(gè)“獲得行數(shù)”的輔助查詢或者向作業(yè)返回行數(shù)來判斷錯(cuò)誤是否超標(biāo)。Webspoon里有一種做法是在轉(zhuǎn)換的最后放一個(gè)“寫日志”步驟通過日志輸出錯(cuò)誤行數(shù)另一種更規(guī)范的做法是把錯(cuò)誤行數(shù)寫入一張控制表作業(yè)里緊接著用一個(gè)“表輸入”作業(yè)項(xiàng)去查這張表的錯(cuò)誤計(jì)數(shù)如果超過閾值就拋出異常。這種“錯(cuò)誤流控制表作業(yè)檢核”的組合就比單純掛一條失敗線要靈活得多因?yàn)槟阍谧鳂I(yè)層拿到了“這輪跑批錯(cuò)了多少行”這個(gè)關(guān)鍵指標(biāo)可以決定是繼續(xù)跑、重試還是直接終止。3. 實(shí)戰(zhàn)構(gòu)建一套可落地的全局異常捕獲體系3.1 搭建帶錯(cuò)誤流的轉(zhuǎn)換示例光說不練假把式我拿一個(gè)最常見的場(chǎng)景來走一遍完整操作從MySQL源表同步訂單數(shù)據(jù)到PostgreSQL目標(biāo)表中間做字段類型轉(zhuǎn)換和空值處理。先在Webspoon里新建一個(gè)轉(zhuǎn)換包含以下步驟鏈路表輸入讀取源訂單表SQL寫成SELECT * FROM source_orders WHERE update_time ${lastTime}使用時(shí)間參數(shù)支持增量抽取。這一步的錯(cuò)誤處理設(shè)置為錯(cuò)誤流輸出到“錯(cuò)誤日志寫入”步驟。字段選擇這一步做類型轉(zhuǎn)換比如把源端的amount字段字符串轉(zhuǎn)為數(shù)字類型。這里最容易報(bào)錯(cuò)——遇到非數(shù)字字符就拋異常。因此這一步驟必須開啟錯(cuò)誤處理錯(cuò)誤流同樣流向“錯(cuò)誤日志寫入”。空值處理設(shè)置某些非必填字段為空時(shí)填充默認(rèn)值比如city為空時(shí)填“未知城市”。表輸出寫入PostgreSQL目標(biāo)表主鍵沖突、字段超長等錯(cuò)誤都在這一步暴露。開啟錯(cuò)誤處理錯(cuò)誤流流向“錯(cuò)誤日志寫入”。錯(cuò)誤日志寫入這個(gè)步驟是“表輸出”類型把錯(cuò)誤流里的錯(cuò)誤代碼、錯(cuò)誤描述、錯(cuò)誤字段、出錯(cuò)的原始數(shù)據(jù)行一并寫入專門的etl_error_log表。在步驟2“字段選擇”里具體配置錯(cuò)誤處理時(shí)要注意啟用錯(cuò)誤處理之后錯(cuò)誤流會(huì)多出幾個(gè)內(nèi)置字段常見的是錯(cuò)誤描述、錯(cuò)誤代碼、錯(cuò)誤字段這些字段會(huì)帶上該行數(shù)據(jù)出錯(cuò)的上下文。你可以通過“選擇字段”步驟調(diào)整這些字段的順序和命名。錯(cuò)誤流的行數(shù)據(jù)保留了原始數(shù)據(jù)行的所有字段所以錯(cuò)誤日志表里既能看到這條數(shù)據(jù)本身也能看到為什么錯(cuò)。這里有個(gè)經(jīng)驗(yàn)錯(cuò)誤日志表的設(shè)計(jì)不要只存錯(cuò)誤信息一定要存出錯(cuò)的步驟名稱和數(shù)據(jù)快照。后續(xù)排查時(shí)你看到“字段選擇步驟字符串轉(zhuǎn)數(shù)字失敗值為abc位置在源表第1025行”效率要比對(duì)著完整日志猜高一個(gè)量級(jí)。3.2 作業(yè)調(diào)度與日志表配置轉(zhuǎn)換配好了還差一個(gè)殼子。在Webspoon里新建一個(gè)作業(yè)結(jié)構(gòu)這樣設(shè)計(jì)作業(yè)項(xiàng)A“開始”作業(yè)項(xiàng)B“執(zhí)行轉(zhuǎn)換”指向剛才搭好的那個(gè)轉(zhuǎn)換作業(yè)項(xiàng)C“SQL腳本”定義一個(gè)檢查步驟如果etl_error_log表里本次批次錯(cuò)誤數(shù)超過10拋出一個(gè)異常作業(yè)項(xiàng)D“發(fā)送郵件”發(fā)告警通知收件人設(shè)為ETL負(fù)責(zé)人作業(yè)項(xiàng)E“作業(yè)結(jié)束”關(guān)鍵在設(shè)計(jì)連線A成功 → BB成功 → CB失敗 → D這里直接在失敗分支上接告警任務(wù)起都起不來時(shí)也要發(fā)郵件通知C成功 → E錯(cuò)誤數(shù)在閾值內(nèi)作業(yè)正常結(jié)束C失敗 → D錯(cuò)誤數(shù)超閾值走告警D執(zhí)行完 → E這種設(shè)計(jì)下作業(yè)不會(huì)因?yàn)槟骋徊绞【汀奥惚肌币凑J瘴舶驯敬五e(cuò)誤行數(shù)控制在可控范圍內(nèi)要么帶著告警結(jié)束讓負(fù)責(zé)人第一時(shí)間知道。然后別忘了一個(gè)容易被忽略的配置——作業(yè)和轉(zhuǎn)換的日志記錄。Webspoon里作業(yè)可以配置日志表作業(yè)日志記錄轉(zhuǎn)換也可以配置日志表轉(zhuǎn)換日志記錄。配置好之后每次跑批的起止時(shí)間、執(zhí)行結(jié)果、日志文件路徑都會(huì)自動(dòng)記錄到數(shù)據(jù)庫表里。這里強(qiáng)烈建議單獨(dú)建一個(gè)etl_log庫不要在業(yè)務(wù)庫里混著放作業(yè)日志表JOB_LOG_ID、JOBNAME、STATUS、START_TIME、END_TIME、LOG_TEXT等通道日志表CHANNEL_LOG_ID、CHANNEL_ID、LOG_LEVEL、LOGGING_TEXT等有了這些表你就能寫SQL查詢哪些作業(yè)最近執(zhí)行失敗、每個(gè)作業(yè)平均耗時(shí)多少、哪一步報(bào)錯(cuò)次數(shù)最多。這已經(jīng)是Anthill級(jí)別的運(yùn)營視角了但對(duì)Kettle這種底層ETL工具來說很夠用。3.3 定時(shí)跑批與自動(dòng)告警聯(lián)動(dòng)Webspoon本身不帶一個(gè)特別成熟的調(diào)度中心雖然它可以通過carte啟動(dòng)遠(yuǎn)程執(zhí)行大多數(shù)生產(chǎn)環(huán)境里定時(shí)跑批是交給外部調(diào)度系統(tǒng)來觸發(fā)的常見的有在Linux服務(wù)器上配置crontab定時(shí)執(zhí)行pan.sh或kitchen.sh調(diào)用轉(zhuǎn)換和作業(yè)用Jenkins等CI/CD工具通過命令行或REST API觸發(fā)用SpringBoot集成Kettle在Java服務(wù)里嵌入調(diào)度邏輯這也是最近熱詞里SpringBoot集成Kettle的來源不管用哪種方式我的建議是不要把全局異常捕獲的能力全部押注在外部調(diào)度系統(tǒng)上。Kettle作業(yè)本身就要具備“報(bào)錯(cuò)-記錄-決定是否繼續(xù)”的能力否則你把任務(wù)交給外部調(diào)度器能看到的只是一個(gè)失敗信號(hào)細(xì)節(jié)還是丟的。你可以把外部調(diào)度器的角色定位為“定時(shí)拉起任務(wù)監(jiān)控告警”而Kettle內(nèi)部的作業(yè)和轉(zhuǎn)換負(fù)責(zé)“精細(xì)化錯(cuò)誤捕獲日志落庫”。兩者分工協(xié)作是最穩(wěn)的生產(chǎn)形態(tài)。舉個(gè)實(shí)例我在一個(gè)數(shù)據(jù)同步項(xiàng)目里就是在SpringBoot里寫了一個(gè)調(diào)度模塊每10分鐘向Webspoon的Carte服務(wù)發(fā)送HTTP請(qǐng)求執(zhí)行一個(gè)作業(yè)同時(shí)監(jiān)控作業(yè)日志表里的狀態(tài)字段一旦發(fā)現(xiàn)5分鐘內(nèi)連續(xù)三次失敗就往釘釘群機(jī)器人發(fā)一條告警。4. 常見問題與排查技巧實(shí)錄4.1 錯(cuò)誤流不輸出數(shù)據(jù)是怎么回事配置了錯(cuò)誤處理但錯(cuò)誤流一步都沒接住任何數(shù)據(jù)日志里也沒有報(bào)錯(cuò)這常常會(huì)讓人誤以為“沒出錯(cuò)”——但數(shù)據(jù)肉眼可見地少了。這個(gè)問題十有八九是出在步驟對(duì)錯(cuò)誤的吞沒上。舉例來說你用“字符串替換”步驟想把NULL替換成空值但源端的NULL到Kettle里其實(shí)是以null字符串存在的根本不會(huì)觸發(fā)錯(cuò)誤再比如你用“值映射”步驟映射一個(gè)不存在的枚舉值Kettle的默認(rèn)行為是返回原值而不是報(bào)錯(cuò)。這些步驟天然不具備“錯(cuò)誤拋出”的能力那也就不存在錯(cuò)誤流了。排查這類問題先確認(rèn)兩件事第一錯(cuò)誤是否真的是數(shù)據(jù)類型的轉(zhuǎn)換錯(cuò)誤而不是業(yè)務(wù)規(guī)則上的不匹配第二錯(cuò)誤處理的“目標(biāo)步驟”和“錯(cuò)誤字段名”是否配置齊全如果目標(biāo)步驟沒選上錯(cuò)誤數(shù)據(jù)流被丟棄錯(cuò)誤處理就形同虛設(shè)。4.2 作業(yè)日志表里看不到錯(cuò)誤詳情很多人配了作業(yè)日志表但錯(cuò)誤發(fā)生時(shí)日志表里只有一行“作業(yè)執(zhí)行失敗”具體哪個(gè)轉(zhuǎn)換的哪一步報(bào)錯(cuò)完全沒記下來。這種情況其實(shí)不是配置錯(cuò)了而是你混淆了“作業(yè)日志”和“轉(zhuǎn)換日志”的職責(zé)邊界。作業(yè)日志只記錄作業(yè)本身的生命周期不深入到轉(zhuǎn)換里的步驟級(jí)信息。要想把步驟級(jí)錯(cuò)誤記錄下來你必須在轉(zhuǎn)換里也配置轉(zhuǎn)換日志記錄最好再單獨(dú)開一個(gè)“寫日志”步驟把錯(cuò)誤流里的關(guān)鍵字段寫到文本日志文件。如果日志表里什么都查不到還有一個(gè)常見的低級(jí)坑日志表的連接策略配置不對(duì)。在“作業(yè)設(shè)置”的日志選項(xiàng)卡里需要單獨(dú)指定一個(gè)數(shù)據(jù)庫連接來存儲(chǔ)日志數(shù)據(jù)而不是使用業(yè)務(wù)數(shù)據(jù)源。我見過好幾次開發(fā)環(huán)境順手選了同一個(gè)業(yè)務(wù)庫連接結(jié)果生產(chǎn)環(huán)境的業(yè)務(wù)庫連接權(quán)限被回收日志寫不進(jìn)去作業(yè)直接就失敗了。4.3 Webspoon與桌面版Kettle的錯(cuò)誤處理差異Webspoon本質(zhì)上是Kettle的Web封裝核心引擎相同但在交互上有幾個(gè)讓人別扭的地方我在遷移過程中踩過不少坑。第一Webspoon里右鍵菜單的彈出速度受網(wǎng)絡(luò)影響有時(shí)候你點(diǎn)了步驟右鍵菜單半天出不來或者在步驟配置窗口切換標(biāo)簽頁時(shí)卡頓??焖俚奶娲桨甘前巡襟E配置頁的“錯(cuò)誤處理”標(biāo)簽頁固定為常用查看項(xiàng)先統(tǒng)一配置好再用快捷鍵切換。第二Webspoon默認(rèn)不保留客戶端的本地臨時(shí)文件錯(cuò)誤流如果要輸出到本地路徑路徑在服務(wù)器上必須存在而且權(quán)限要夠否則錯(cuò)誤倒是接住了寫文件又失敗了。第三Webspoon的日志界面刷新頻率低跑一個(gè)長轉(zhuǎn)換的時(shí)候你在頁面上看不到實(shí)時(shí)進(jìn)度這時(shí)候不要干等而是去數(shù)據(jù)庫查作業(yè)日志表和轉(zhuǎn)換步驟日志表用SQL看實(shí)時(shí)狀態(tài)。4.4 整理一份問題速查表我把自己在Webspoon生產(chǎn)環(huán)境里折騰異常捕獲時(shí)遇到的典型問題整理成一張速查表希望對(duì)大家有幫助癥狀可能原因排查方法轉(zhuǎn)換報(bào)錯(cuò)但錯(cuò)誤流沒數(shù)據(jù)不是行數(shù)據(jù)錯(cuò)誤而是資源連接類錯(cuò)誤檢查作業(yè)節(jié)點(diǎn)日志看堆棧異常錯(cuò)誤流有數(shù)據(jù)但日志表沒記錄錯(cuò)誤目標(biāo)步驟的類型或映射配錯(cuò)重新檢查“錯(cuò)誤日志寫入”步驟字段映射作業(yè)日志表查不到本次運(yùn)行記錄日志連接未配置或權(quán)限不足在作業(yè)設(shè)置里單獨(dú)指定日志連接測(cè)試連接錯(cuò)誤發(fā)生時(shí)作業(yè)立刻停止不走失敗支線連線約束條件寫成了“成功”編輯作業(yè)連線改為“失敗”或“不論成功與否”Webspoon頁面看不到詳細(xì)堆棧Web版日志展示弱日志文件寫在服務(wù)端查看服務(wù)器端logs目錄下的carte.log錯(cuò)誤數(shù)超過閾值沒有觸發(fā)告警“SQL腳本”作業(yè)項(xiàng)未正確返回失敗狀態(tài)在SQL腳本中顯式執(zhí)行SELECT 1/0來觸發(fā)異常這張表是我在實(shí)際支持別人問題時(shí)最常用到的角度建議截圖收藏或者貼在你的團(tuán)隊(duì)文檔里。5. 一些不太容易想到的實(shí)用技巧5.1 利用“復(fù)制行到結(jié)果”做錯(cuò)誤數(shù)據(jù)的二次分析有時(shí)錯(cuò)誤流接住的數(shù)據(jù)不直接寫日志表而是想臨時(shí)擱著等跑批結(jié)束后集中分析這批臟數(shù)據(jù)的長相。這時(shí)候可以用一個(gè)“復(fù)制行到結(jié)果”步驟把錯(cuò)誤流的數(shù)據(jù)復(fù)制到結(jié)果集里然后在作業(yè)后續(xù)的“表輸入”步驟通過變量或結(jié)果集引用再次讀取。這個(gè)方法特別好用因?yàn)槟憧梢园颜麄€(gè)錯(cuò)誤數(shù)據(jù)的全貌源字段、錯(cuò)誤原因、出現(xiàn)次數(shù)集中做一次數(shù)據(jù)剖析判斷是源頭數(shù)據(jù)格式變了還是E-R模型需要調(diào)整。我以前接一個(gè)“渠道訂單”項(xiàng)目時(shí)就是靠這個(gè)技巧把幾百條錯(cuò)誤數(shù)據(jù)拉出來統(tǒng)計(jì)發(fā)現(xiàn)其中60%都是同一類手機(jī)號(hào)格式錯(cuò)誤后來直接在源端加校驗(yàn)規(guī)則問題解決了一大半。5.2 用過濾步驟模擬自定義重試邏輯Kettle里沒有內(nèi)置“重試多少次”的機(jī)制但你可以用循環(huán)變量在作業(yè)層模擬。做法是在作業(yè)里放一個(gè)“循環(huán)”作業(yè)項(xiàng)利用變量計(jì)數(shù)器每次跑完轉(zhuǎn)換后通過“表輸入”作業(yè)項(xiàng)檢查錯(cuò)誤日志表里有幾條錯(cuò)誤如果錯(cuò)誤數(shù)大于2就重新執(zhí)行轉(zhuǎn)換最多循環(huán)3次。循環(huán)里記得設(shè)置一個(gè)休眠等待避免頻繁重試壓垮目標(biāo)數(shù)據(jù)庫。這套邏輯的實(shí)現(xiàn)關(guān)鍵是把“重試次數(shù)”也寫入日志表跑批記錄里一眼就能看到這次任務(wù)是第幾次重試跑成功的。這在審計(jì)和業(yè)務(wù)復(fù)盤的時(shí)候特別管用。5.3 優(yōu)先用變量管理錯(cuò)誤閾值錯(cuò)誤閾值別寫死在轉(zhuǎn)換里。在作業(yè)或轉(zhuǎn)換的“命名參數(shù)”里定義一個(gè)error_threshold默認(rèn)值設(shè)為5然后在錯(cuò)誤處理配置中引用這個(gè)參數(shù)。這樣做的好處是生產(chǎn)環(huán)境里想臨時(shí)調(diào)高容忍度比如大促期間源端數(shù)據(jù)確實(shí)亂成一鍋粥只需要在Webspoon的作業(yè)參數(shù)里改一個(gè)值不用改整個(gè)作業(yè)結(jié)構(gòu)。用參數(shù)管理閾值以后你還可以在“發(fā)送郵件”作業(yè)項(xiàng)里拼上當(dāng)前閾值、實(shí)際錯(cuò)誤數(shù)、本次跑批時(shí)間一封自動(dòng)生成的異常報(bào)告就出來了。這個(gè)郵件里的信息越詳細(xì)值班同學(xué)起床處理問題的反應(yīng)速度就越快。5.4 配合JSON解析場(chǎng)景的全局捕獲很多人在用Kettle從REST接口拉數(shù)據(jù)做增量同步熱詞里面也有“kettle調(diào)用get接口分頁抽取數(shù)據(jù)”和“kettle可以解析json嗎”。這類場(chǎng)景里全局異常捕獲的側(cè)重點(diǎn)又不太一樣。接口調(diào)用最常見的錯(cuò)誤是超時(shí)、HTTP狀態(tài)碼非200、返回JSON結(jié)構(gòu)不符合預(yù)期。我的建議是給這類轉(zhuǎn)換單獨(dú)設(shè)計(jì)一套“前置校驗(yàn)錯(cuò)誤流”在“HTTP”步驟后緊跟一個(gè)“驗(yàn)證JSON”步驟或者用“JavaScript代碼”步驟做JSON Schema校驗(yàn)這一步的錯(cuò)誤流把非法的JSON原文和URL記錄下來。同時(shí)把HTTP狀態(tài)碼字段納入錯(cuò)誤日志表排查時(shí)一眼就能看出是400、500還是超時(shí)導(dǎo)致。這些處理看起來增加了一點(diǎn)步驟數(shù)量但排障效率提升非常明顯。特別是分頁抽取時(shí)某一頁接口掛了它能精確告訴你是第幾頁出了事而不會(huì)讓你從頭到尾跑一遍才能復(fù)現(xiàn)問題。6. 多環(huán)境部署下的全局異常設(shè)計(jì)6.1 開發(fā)、測(cè)試、生產(chǎn)環(huán)境的日志通道隔離Webspoon同一個(gè)環(huán)境里可以配置多個(gè)資源庫不同環(huán)境的etl_error_log表絕對(duì)不能混用。開發(fā)環(huán)境里你可能會(huì)故意制造很多臟數(shù)據(jù)來測(cè)試錯(cuò)誤流公司和生產(chǎn)環(huán)境的數(shù)據(jù)要是串了那才叫災(zāi)難。建議的做法是不同環(huán)境配置不同的數(shù)據(jù)庫連接并且在etl_error_log表里加一個(gè)env字段寫死開發(fā)/測(cè)試/生產(chǎn)標(biāo)識(shí)。這樣即使不小心跑錯(cuò)了庫也能在數(shù)據(jù)上快速定位。6.2 調(diào)度中心與Webspoon的配合如果你所在的團(tuán)隊(duì)已經(jīng)有統(tǒng)一的調(diào)度平臺(tái)比如阿里的DataWorks風(fēng)格或者自研的任務(wù)調(diào)度系統(tǒng)那么Webspoon的身份就是“執(zhí)行引擎中的一個(gè)worker”。在這種架構(gòu)下全局捕獲的關(guān)鍵是讓調(diào)度平臺(tái)拿到明確的“健康信息”作業(yè)跑沒跑完、錯(cuò)誤行數(shù)是多少、耗時(shí)多少。你可以通過Webspoon提供的REST API或者數(shù)據(jù)庫日志表來暴露這些指標(biāo)調(diào)度平臺(tái)只要定期查詢這些指標(biāo)就能完成對(duì)ETL任務(wù)的全生命周期調(diào)度。我見過一個(gè)把Webspoon接入自研調(diào)度平臺(tái)的項(xiàng)目轉(zhuǎn)型路上最大的阻力不是技術(shù)而是錯(cuò)誤語義不統(tǒng)一Kettle認(rèn)為的“成功”和調(diào)度平臺(tái)認(rèn)為的“成功”定義不同。后來我們干脆在Kettle作業(yè)的最外層包了一個(gè)“總控作業(yè)”最后一步執(zhí)行一個(gè)“寫日志”步驟把成功/失敗狀態(tài)、錯(cuò)誤計(jì)數(shù)、批次號(hào)統(tǒng)一寫成一條記錄。調(diào)度平臺(tái)只認(rèn)這張表里最新一條記錄的STATUS字段問題徹底解決。7. 最后分享一點(diǎn)我自己的體會(huì)做了這么多年ETL被各種跑批事故折騰過無數(shù)次之后我最大的感悟是捕獲異常不是為了讓任務(wù)不失敗而是為了讓失敗變得可預(yù)期、可回溯、可處理。全局異常/錯(cuò)誤捕獲這套體系搭好之前你每天最怕的就是那封紅色的告警郵件搭好之后你會(huì)覺得紅色郵件反而是最可愛的——因?yàn)樗涯銖臒o限猜測(cè)中解放出來直接告訴你問題在哪。Webspoon對(duì)于小團(tuán)隊(duì)、輕量級(jí)的數(shù)據(jù)同步需求來說仍然是一個(gè)性價(jià)比極高的選擇不要因?yàn)樗缑娌粔颥F(xiàn)代就看輕它。在默認(rèn)原生Kettle和重型商業(yè)化ETL平臺(tái)之間它處在一個(gè)非常舒服的中間位置功能完整、部署輕量、還能通過外部調(diào)度器二次包裝成標(biāo)準(zhǔn)的數(shù)據(jù)平臺(tái)組件。希望這篇關(guān)于全局異常/錯(cuò)誤捕獲的課程筆記能幫你少踩幾個(gè)我踩過的坑。如果你在Webspoon里配置錯(cuò)誤處理時(shí)遇到過什么經(jīng)典的奇葩問題歡迎帶著場(chǎng)景來交流ETL這個(gè)領(lǐng)域的坑是永遠(yuǎn)挖不完的每次能把坑填平一點(diǎn)點(diǎn)就是在為同行鋪路了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97精品国产手机| 91激情国产| 国产精品九九九| 图色综合网| 在线无码视频| 青青草好吊色| 亚洲熟女一区| 高凊专区人人操| 国产精品白丝| 欧美日综合| 99青青草国产视频| 校园春色 男人天堂 | 中欧人妻丝袜中文字幕| 色婷婷一区二区三区久久午夜| 久久久久久久人妻| 亚洲天堂AV在线播放| 欧美天堂第二区| 97干日韩| 国产成人自拍视频在线| 日韩人妻一区二区| 青青草五月份天| 久都青青视频| 九九激情网| 啪啪视频亚洲第一| 国产第12页| 熟女人妻精品一区二区视频| 老色鬼成人精品视频下载大在线观看| 成人熟女视频一区二区三区| 99精品免费| 精品在线观看视频在线| 人人操人人操人人人操| 三级激情网站| 9久精品| 中国zzijzzijzzwww精品| 色噜噜日韩精品| 免费国产| 成人色女网| 2011国产精品| 日韩高潮一区| 天天色悠悠激情| 五月天色五月| 亚洲五月丁香花狠狠干一区二区三区 | 粉嫩av在线| 久久老熟女| 欧美色交| 久区视频| 三四中文字幕| 精品国产乱码久久| 亚洲精品第一| 国产一区二区三区白丝| 精品国产人成在线| 久久鲁干| 日韩国产十八禁| 人妻无码后入| 中文子幕一二三| 亚洲国产蜜臀系列在线观看| 美国三级日本三级久久99| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 色狠狠综合噜一二三区| 欧美日韩淫加| 色踪合AV| 97超碰色色| 综合久久少妇中文字幕| 国产精品4p在线观看| 中文字幕久热视频在线| 亚洲国产成人高清在线| 在线观看AV片| 亚洲极品| 日本欧美不卡| 曰韩中文人妻视频| 精品高清av中文字幕| yaouchengrenav| 黑人美精品 A片| 91在线秘 男同| 国产女人和拘做爰视频 | 亚洲国产一区二区日韩专区| 国产精品女久久久久av爽| 亚洲成?V人片在线观看福利| 91 刺激在线| 国产成人亚洲精品自产在线| 欧美亚洲厕所精品偷拍91 | 美女国产一区二区久久| 亚洲精品97在线| 99xav| 欧美在线电影| 郑州宾馆老熟女露脸啪啪| 激情五月综合网| 丝袜内射| 99少妇| 做爱A级亚欧| Julia在线播放亚洲久久| xxx亚洲午夜天堂| 蜜桃天美传媒AV一区二区三区| 无码久久亚洲高清,| 99视频内射三四| 操碰97| 亚洲欧洲精品视频发布| 丝袜内射| 人人妻人人玩人人澡人人爽| 韩国午夜理伦三级好看| 干b在线性社区| 台湾佬大香蕉| 国产精品秘 福利姬在线观看| 久久大陆| 国产亚洲精品美女久久久久久2021| 婷婷五月综合在线| 男人的天堂com| 中文字幕日韩人妻视频一区二区三区 | 亚洲日韩av一区二区三区百合| 欧美韩国你懂得在线| 超碰在线91| 国产操操日韩三级黄| wwe 天天干.com| 久久春色| 嗯嗯啊操我| 超碰97男女| 午夜黄色免费在线观看| 中文字幕1区2区| 激情久久久| 99蜜桃臀久久久欧美精品网站| 91综合色噜噜| 强上我不卡卡| A 在线网址| 亚洲人在线| 97超碰人人模人人拍人人| 天天摸,夜夜摸| 欧美啪啪啪91| 加勒比大香蕉视频在线| 天堂v无码免费视频| 久久,精品一二三| 亚洲熟妇丝袜在线观看| 91麻豆天美国产欧美高潮| 人妻在线臀日韩| 日产狠狠干| 欧美日韩91| 日韩欧美性爱电影在线观看| 国产传媒美日韩av| 青青草黑寡妇男人天堂| 伊人一区二区三区| 亚洲日韩欧美一区二区| 天天内射| 久久久免费高清中文视频| 97超碰亚洲| 今日头条成人一区二区三区四虎精品| 大香蕉十区| 91丝袜在线观看视频在线观看| 少妇高潮99p| 欧美有码激情视频一区二区三区| 99免费在线视频| 欧美性爱97超碰| 天天摸夜夜摸| 懂色av中文字幕一区二区三区天美| 色妇91| 96久久久久久久| 一二三卡欧美日韩人妻免费精品| 亚洲性综合11| 精品国产Av无码久久久亚洲| 无码黑人精品一区二区三区三| 久久夜黄色无码A级大片| 精品国产av一区二区三区四区入口| 搡老熟女老女人老熟妇免费视频| 天天综合香 ld视频| 高颜值美女口爆高潮浪叫| 91狠狠色丁香婷婷综合久久精品| 久久精品一区一起草| 欧美久久婷| 99在线免费观看| 青青11操操操操操操操操| 日日黄色三级网站| 中国AV美女| 欧美日本天堂| 人妻加勒比东京热| 午夜寂寞欧美| 久久性爱视频99| 欧美在线 亚洲| 青青草在线成人视频| 国产一区二区av综合| 亚洲天堂男人网| 91五月天| 亚洲欧洲无码97久久精品| 日本欧美亚洲高清在线看| 少妇天堂| 久久久999国产| 97伪v| 亚洲影视综合网| 韩三级a视频在线观看 | 制服少妇欧美| 伊人嫩草| 久久精品一区二区三区四区五区| 美女网站91| 亚洲欧美碰碰| 久久久久99精品成人片蜜臀| 桃花色综合影院| 日本久久女同性恋视频| 免费观看的黄色的网站| 九月丁香综合网| 97操碰| 色综合潮| 色色九区| 国产人妖视频一区在线观看| 思思热免费视频观看| 亚洲成aⅴ人片不卡无码| 可以免费看黄片的视频| 国产三级片在线观看| 欧美熟妇精品黑人巨大91| PMv在线观看| 欧美 日韩 亚洲 春色| 超碰在线人人射| 亚洲春色一区二区三区| 色狠狠 - 百度| JIZZJIZZ国产精品喷水| 久久男女激情视频网站| 黑丝91视频| 久热99999| 香蕉综合网| 999精品国产高清一区二区| av一区二区三区不卡| 欧美啪啪女女| 精品国产99| 无码九九| 人妻献身系列第54部| 蜜乳av首页| 国产精品久久久777| 97超级久久| 青青操综合网| 欧美一区二区三区大综合| 国产精品一区二区密臀| 色欲蜜臀AV| 手机不卡视频不卡在线一二三区| 东京热大香蕉| 操穴国产| 成人av影院在线观看| 天天干天天日天天射黄色大片| 欧美性Fer办公室秘书| 久久婷婷电影网| 日韩免费人妻色情网站| 精品久9| 中国女人内射6XXXXX| 97超级久久强资源| 成人性爱av| 日韩av色图综合| 亚洲色图尤物视频| 日本天天干天天日一区| 久久五月婷| JuliaAnnXXX888| 另类天堂| 啊啊啊啊啊啊好多水| 日本超碰在线国产一区| 日日干天天干夜夜爽| 日韩97视频!在线| 日本综合色图| 欧美天堂亚洲电影院一区在线播放| 久久精品人妻一区| 久久亚州大香蕉| 99色在线| 国产99精品一区二区三区免费| 日韩一级二级三级免费看完整版国语版 | 亚洲开心网| 天天干夜夜肏| 60秒免费视频| 久久久熟妇熟女国产| 这里只有精品视频| 天天色粽合合合合合合合| 操逼操逼操| 欧美精品激情| 日产精品久久久一区二区| 欧美成人国产精品| 欧美肥臀在线| 婷婷五月天色网| 久久九九一区二区三区成人| 看日韩美女二区三区免费操逼视频 | www.色操逼| 嗯嗯啊好大| 国模精品一区二区三区苹果色戒| 强奸乱伦AV一天堂网| 性欧美| 国产不卡中文字幕免费avi| 亚洲少妇综合在线播放| 久久线上视频免费看| 国产丰满少妇久久久精品影院| 亚洲欧美在线观看2021 | 久久性爱城| 国产精品成人蜜臀AV在线| 性暴力欧美猛交在线直播| 久久欲| 日韩精品一区二区高清| 精品亚洲国产成人精品| 日韩精品视频在线观看一卡二卡| 女人高潮大叫一级毛片| 五月激情综合网| 伊人影院在线理论播放| 亚洲日韩久久精品一区| 中文字幕第7页| 超碰色大香蕉| 久久精品国产亚洲AV嘿嘿| 亚洲精品亚洲人成人网| 91天天爱| 欧美激情久操网| 少妇一区二区三区精选| 国产专区第一页| 国产一区二区三区导航| 性站| 日韩丝袜高跟制服在线观看| 色天使亚洲综合在线观看| 人人搞人人插人人操| 91日韩| 亚洲欧洲中文日韩女优乱码| 久久精品国产亚洲AV片多多| 麻豆60秒| 大香蕉色欲AV| 久久精品 六十路 熟女 欧美| 中字幕人妻一区二区三区| 国语对白在线播放视频| 精品一区二区三区最新| 亚春色色| 男人高清无码一区二区| 4141514逼喷水三级片| 男人天堂网手机版婷婷| 蜜臀中文字幕| 国产亚洲精品农村妇女| 麻豆人妻精品一区二区| 好舒服视频| 最新国产精品| 操我啊啊啊啊啊| 学生妹天天看| 日韩欧美亚洲一区二区三区影院| 亚洲色性情三级| 欧洲亚洲少妇| 日本天天操| 综合 青草 伊久久 影院 综合| 91欧美情色| 亚洲高清在线| 中文字幕一区二区三区人妻不卡| 无码精品一区二区三区潘金莲| 亚洲免费精品一区| 亚洲另类欧美精品| 亚洲鸥美色图| 黑人无码一区二区| 男人天堂无码| 激情小说五月天| 国产激情在线| 大香蕉99999| 色婷婷亚洲婷婷| 青草精品视频-日本久久久久网站| 五月天婷婷色| 91深夜夜| 久久区| 老熟妇综合| ..日韩av毛片精品久久久| 91熟女视频网| 日夜干射色啊| 男人的天堂在线有码| 少妇一级婬片免费放一级a性色.| 国产尤物在线三区| 嗯嗯啊啊好大好爽| 午夜综合在线| 四虎在线播放| 天美传媒av一区二区| 日韩av三四区| 97视频在线观看高清资源| 亚洲欧洲另类| 欧洲无码一区二区| 日本 成 人 小说 电影 一区二区| 女人爽到高潮潮喷18禁网站| 在线播放中文字幕| www.狠狠干.coom | 日韩精品人妻中文字幕久久久| 婷婷丁香六月| 97色婷| 精品色色| 色婷婷婷五月天激情四射| 狠狠干精品一二三四五六2022| 日韩无码成人电影| 屌逼麻豆| 久操 高清| 夜夜久久| 亚洲欧美激情小说| 97无码视频在线播放| 亚洲综合激情五月久久| 精品射1999| 色偷综合| 精品人妻一区二区三区在| 男人天堂东京热| 91无遮挡| 日本熟妇人妻中出视频| 欧美有码亚洲中文字幕一区二区三区四区| 九九热免费国产视频婷婷伊人五月| 艾草av| 一区二三区四区视频大全套| 亚洲性网| 熟女乱伦二区| 日韩大香蕉精品在线视频| 97ai亚洲| 日本色色色| 中美日韩毛片| 亚洲色图图片| 在免费jIzzjIzz在线视频| 日韩av乱伦| 成人热久久精品| 大学生美女口爆| 国产精品熟女九色九色蜜臀| 97干com| 一级AAA片一区二区三区| 久久av成人无码免费| 色色综合97| 成年人网站在线免费观看| 国产亚洲色婷婷久久99精品91| 欧美久久久15P| 人妻精品一区二区| 久久久中文| 国产又长又大又粗的视频| 97色亚洲| 欧美 日韩 国产传媒| 人妻久久一区二区三区 | 丰满精品人妻少妇久久字幕| 久久亚州精品成人Av无| 人人九九精| 成人自拍三级在线观看| 久久久久网站-538在线视频-欧美永久乱码 | 欧美永久激情一区二区| 五月天久久综合网| 一及黄久一点| 精品人妻视频入口| 亚洲drav色图| 九九久久综合| 97精品视频在线| 99久久九九| 欧美96精品在线| 91五月天| 免费视频在线一区二区不卡| 亚洲涩涩| 99精品热| 噜噜噜在线视频| 51一区二区三区| 五月天综合网| 亚洲乱码国产乱码精网站| 四虎精品永久在线观看| 最新中文字幕av| 日韩黄色成人性爱| 国产乱伦亚洲| 97爱爱| 91爱看| 北条麻妃99精品青青久久| 性开放中文AV高清无码免费看| 熟妇色99| 欧美第二页午夜| oumeisetu综合| 99热在线观看| 乳欲人妻办公室奶水| 国产高清自拍| 清纯唯美亚洲综合| 欧美精品一二三| 久久成人午夜狠狠| 国产第11页| 色娱乐色呦呦夜夜夜夜av| 中文字幕精品丝袜| 亚洲综合888| 玖玖爱综合| 不卡超碰护士AV在线免费播放| 亚卅熟女乱色| A 在线网址| AV天堂国产| 91性高朝久久久久久久久| 91热| 九七超碰| 天天躁日日躁AAAAXXXX国产| 人人操人人摸人人看人人干| 人妻干天天| 精品亚洲一区在线观看| 伊人一区二区在线播放| 成人热久久精品| 亚洲精品国产精品乱码不99| 无码黑人精品一区二区三区三| 啪啪免费| 按摩中文字幕| 天美麻豆黄色录像| a片久久久久久久久久久久| 国产精品一区av在线| 中文字幕一区二区三区字幕| 中文字幕中文字幕一区二区| 五月色网| 九九超碰综合网| 九热久| 韩国一级婬片A片无码天美| 日韩在线观看中文字幕视频| 五月婷婷激情网| 亚洲97P| 超碰是碰在线观看| 国产一级高清免费观看| 日韩欧美综合激情| 看看小穴| 91欧美情色| 美国人人操人人操| 懂色AV一区二区三区| 亚洲综合图片在线| 日本性爱视频一级| 成功精品影院| 啊啊啊男女| 特级特黄一级毛片免费| 国产原创自拍| 天天综合色图| 国产高潮AA片免费看| 日本黄色天堂| 国产精品久久久久久久黄无码 | 欧美综合1性辶| 亚洲砖码砖专无区2023| 色娱乐色呦呦夜夜夜夜av| 强奸乱伦AV一天堂网| AV 少妇 人妻 偷拍| 日本97久久| 屁屁影院一区二区三区国产| 大香蕉综合在线| 欧美日韩国产三级黄色| 色综合1991| 近亲乱伦一区二区| 国产乱码久久久久久| 国产伦乱91| 91蜜桃传媒精品久久久一区二区| 国产精品青草综合久久| 啊啊啊啊啊啊啊啊在线观看| 中文字幕老熟妇黄色视频| 97国产超碰| 日韩精品三区四区| 亚洲国产精品9999在线观看| 久久久久久裸体| 性感女人网页在线观看视频| 亚洲国产成人精品久久久国产成人一区二区| 资源在线观一 二| 国产成人自拍视频视频| 91亚.色| 欧美日韩99| 欧美日韩国产一区二区小黄片大全| 国产亚洲人妻综合日韩 久久| 久久无码精品| 无码操逼天堂| 国产高清不卡视频| 色情综合| 国产精品久久久久中文字幕| 囯产精品久久久久久久久久二区三区| 色九九九综合| 日本不卡码黄色| 日欧操屄视频| 狠狠色噜噜狠狠狠狠狠色综合久久| 素人伊尹大香蕉免费下载视频| 伊人成人中文字幕久久网| 日韩欧美一级特黄大片| 色综合av综合久久| 九九热精品视频六| 亚洲交换| 亚洲91射| 国产亚洲精品美女| 操少妞在线视频| 天天综合欧美综合| 99热精品在线观看| 加勒比大香蕉视频在线| 久久婷婷热| 蜜桃av综合网发布| 久久久久亚洲Aⅴ无码| 强奸乱伦大香蕉网| 最近2019中文字幕国语免费版| 色综合国产在线观看| 黄骗免费网站| 欧美人人曰人人操人人射射| 在线午夜成人无码视频| 日韩激情电影中文字幕| 国产9 9在线 | 亚洲| 一级岛国大片| dy888午夜老子影视达达兔| 四季AV综合网址| 精品一二三区女同| 青青青草原| 伦理第一页| 人妻铁牛TV| 欧美日本不卡在线| 中文操逼字幕| 日欧亚洲二三区大片不卡| 看日韩操逼| 国产精品无码av嫩草| 欧美综合区| 96精品在线| 干b在线性社区| 九九九九九九免费视频| 亚洲天堂加勒比| 翔田千里AV无码秘 三区| 一起草三级AV电影在线观看 | 顶级丝袜熟女一区二区三区| 可以免费观看的av| 伊人久久久日韩一区| 爱丝福利| 内射老妇BBWX0C0CK| 国产农村一一级特黄毛片| 亚洲精品国产精品乱码不卡| 一本色道综合久久欧美日韩精品| 内射夫妻三片| 91精品综合久久久久久五月丁香| 久久熟妇五十路一区| 精品无av| 午夜男女爽爽爽在线视频| 男人综合网| 自拍偷拍第26| 久久av色| 日本性爱视频一级| 人妻夜夜爽天天爽麻豆三区网站 | 青青草日韩无码| 9久9久9久9久视频网站| 污色区网站| 亚洲色棕合| 啊啊啊啊免费视频| 精品国产乱码久久久久久久久1 | 亚洲春色欧美激情自拍| 乱操乱伦AV| 日韩乱插| 亚州色图狠狠干| 欧美日韩97在线| 天天日天天操天天射河南省| aaaa黄片| 夜夜福利| 熟女乱3伦999| 超碰人人妻| 久久久久久久久国产| 亚洲国产成人综合碰碰三级经典| 日韩丰满熟妇| 欧美熟妇精品黑人巨大一二三区| 操久久久久| 亚洲av综合色区无码一| 97久久资源| 天堂亚洲精品| 啪啪资源网| 91嫩草欧美| 天天插网| 日日干夜夜干| 午夜噜噜噜| 一区二区三区四区免费视频| 亚洲色图美腿丝袜| 18禁看网站一区| 中文无码一二三区| 青青操国产夫妻| 婷婷深爱五月| 少妇激情AV| 3d成人精品一区二区| 人人摸人人干| 欧美爆乳精品一区二区| 99热超碰| 无码精品久久久久久亚洲| 激情开心五月天| 久久大香蕉97| 99久视频| 色综合天天爱去电影网| 制服少妇欧美| 亚洲最新Av| 中文字幕 av v| 九九九热| 亚洲综合性感在线| 国产AAAAAABBBBB| 亚洲大色堂| 午夜福利激情在线视频| 熟女AV一区| 无码精品一区二区三区潘金莲| 国产乱码精品久久久久久| 北约熟女超碰| 蜜臀th| 另类一区| 国产精品乱码久久久| 天天拍天天操| 午夜视频黄| 绑缚麻绳人妻寝取完整版| 成人七区| 欧日韩一二三f区| 人妻激情偷乱视频一区二区三区 | 亚洲天堂男人在线| 亚洲91在线播放影院| 97在线观看免费视频l| 国产亚洲美日韩Aⅴ中文字幕无码成人| 久久久久亚洲一区女同性恋中文字幕| 色操逼网| 人妻精品一区一区三区蜜桃91| 五月婷婷爱六月丁香色| 999久久久九九九九| 91女人的网站| 五月天丁香婷婷综合网站| 久久大黄片| 天美国产三级传媒| 一级成人性爱| 91超碰丝袜制服| 亚洲最大的综合性av| 日韩欧美中文字| 丁香婷婷九月| 人妻精品视频一区二区三区| 狠综合网| 热九九精品| 日韩黄片影院| 国产91美女视频| 美女淫穴| 九九久久综合| 国产三级资源在线观看| 国产国产亚洲一二三久久| 亚洲综合在线高清| 午夜福利成人免费视频| 欧洲特黄毛片免费看欧洲毛片| 亚热日本熟女| 综合色图,成人综合网| 国产亚洲日韩在线三区黑人| 欧美偷拍| 亚洲综合色在线| AV天堂电影网| 青草av在线| 午夜视频好爽啊| 91成人无码| 欧美在线中M| 亚洲人在线成线成人| 亚洲欧洲综合视频在线| 在线欧美69V免费观看视频| 久草成人| 国产精品农村妇女精品| 蜜桃久久久久久久久久久久| 艳美熟妇先锋一二三区| 曰韩av中文字幕专区| 韩国手机不卡无码三级视频| 久久久夜夜夜| 97欧美资源| 欧美大色交| 欧美婷婷久久| 偷窥自拍亚洲色图| 蜜臀国产AV中文字幕| 欧美国产伊人久久久久| 高清一区AV无码| 日韩一级久久毛片| 亚洲色图欧美激情| 玖玖爱视频网站| 亚洲欧美91√| 国外91| 日韩丝袜高跟制服在线观看| 欧美天天谢综合网| 真实高潮91| 超碰调教97| 亚洲色图91欧美日韩| 天天爽天天操| 狠狠色色| 玖玖在线视频| 婷婷亚洲综合| 99色在线| 殴美,日韩国产伦精品| 丁香激情网| 久久,精品一二三| av天堂影视中文在字幕在线中文 | 久久色人体| 亚洲图片欧美日韩| 欧美日韩性感| 中文字幕 一区二区 亚洲无码| 大胆91| 天天操女人| 97干色天堂| 日韩钢筋无码高清啾啾啾| 18岁禁 茉莉成人久久| 亚洲少妇在线影音| 国产精品一区二区后入| 大香蕉在线SuP| 97人人夜| 欧美色图20p| 另类亚洲一区二区三区| 欧美日韩黄片精品在线| 亚洲欧洲精品视频发布| 国产又操| 熟妇人妻精品一区二区视频色欲| 99re这里只有精品中心播放| 亚洲日韩青青草色月| 亚洲色图欧美另类在线| 国产AV人人夜夜澡人人爽麻豆| 大香蕉日韩欧美| 麻豆精品.欧美精品.日韩精品.| 爱爱动态60秒| 国产精品盗摄 偷窥盗摄| 黄片免费久久久久久久| 亚洲激情AV| www老逼91| 欧日韩在线观看| 天美传媒精品久久视频| 日本成a人v网站在线观看| 秋霞网—男女啪啪亚洲免费体验区| 污污汅18禁网站在线永久免费观看| 国产AV高清AV无码| 九九久久久九九| 在线情色电影 91大 | 97久久国产亚洲精品超碰热| 人人妻人人澡人人爽久久av| yaouchengrenav| 在线观看国产黄色| 极品白嫩福利在线| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 大香蕉啪啪啪| 亚洲男人的天堂AV| 综合网亚洲在线| 岛国在线免费视频| 亚洲综合另类| 久久久久9| 美女黄网| 黄aaaaaaaaaaaaaaaaaa色网站| 乱精品一区字幕二区| 精品国产久久乱码| 亚洲成人激情小说视频| 韩国一级做A片免费的| 麻豆乱码久久精| 超碰久超碰久| 一区二区三区四区免费视频| 男人天堂.AB| 四虎精品永久在线观看| 免费观看国产不卡av| 嗯嗯啊在线视频| 国产精品夜夜夜| 国产精品毛片?v一区二区三区 | 大奶的诱惑| 入口操逼网站| 日韩人妻精品中文字幕| 久久精品一区二区三区四区五区| 一区二区三区视频在线观看免费| 欧美性,亚州色| 日韩情色一区二区| 一区二区三区机械有限公司| s片在线观看| 在线毛片片免费观看| 久久久久久久久久久六六| 天天操福利视频综合网站| 亚洲精品人妻在线| 美女97超碰| av亚欧| 日韩在线视频1234| 久久无码精品| 五月丁香久久| 97超碰欧美精品| 欧美婷婷五月天| 久久亚州大香蕉| 亚洲无码AV九九九| 欧美中字不卡| 中文字幕一区电影在线观看| 久久久久9999妇女| 人人看人人插| 99热在线不卡| 少妇啪啪自拍| 亚洲区限制级| 约操熟妇| 午夜无码熟妇丰满人妻| 免费一级特黄特色大片在线观看看| 吉田爱美AV在线| 黄色片A级一区二区三区| 亚洲精品一区二区三区新线路| 久久一区二区三区四区五区| 欧美淫穴| 一级一性爱免费视频| 亚洲AV免费在线观看| 中文乱码字字幕在线第5页| 嗯嗯,啊啊,国产精品| 免费精品国偷自产在线在线| 天天综合网在线| 国产精品嫩草久久久久| 加勒比伊人影院| 色婷婷九月天天综合| 91狠狠狠| 久久久久成人蜜桃精品| 日韩成人性日韩成人性爱视频在线免费观看 | 999久久久九| 91精品微拍福利| 日本孕妇孕交| 香蕉久久国产AV一区二区| 亚洲天天更新| 色盈盈影院| 亚洲91在线播放影院| 国产精品一级二级在线| 丁香色五月 97干| 91美女小视频| 青青草伊人久久| 欧美黄片欧美黄片xxx| 日韩无码人妻中字久久三区四区| 大胆91| 超碰国产精品久| 小电影欧美91| 欧美爆操91| www.av在线观看| 17c嫩草51久久91嫩草| 日韩中文字幕2020| 午夜大香蕉| 国产精品4p在线观看| 超碰 国产熟女精品一区| 五月激情综合网| 国产Av超碰| 国产99999久久精品| 欧美日不卡| 欧美日韩在线国产在线| 精品欧美乱码久| 亚洲揄拍网| 超碰狠狠操| 一类av片在线看| 后入国产| 美女91av| 中文字幕丝袜美腿| 日韩中文字幕视频在线观看| A级国产欧美激情在线| 天天热精品| 国产综合久久久鬼色| www色色色com| 思思热久久成人| 精品视频在线观看| 色九九九九九九| 97伪v| 青青青操| 色情综合网| 欧美日韩香蕉| 久艾草在线精品视频在线观看| 亚洲天堂电影网99999| 欧美A√综合网 | 中文字幕一区二区无码成人 | 欧美性爱免费短视频| 97亚洲在线| 性色高清..……| 精品9区| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 99色综合| 精品超碰国产| 国产女人操逼视频| 高清无码一区二区三区| 91肉片| 欧美亚洲综合高清在线| 久久精品国产97欧美精品亚洲 | 97伦乱| 欧美在线色| 9999亚洲电影| 躁躁日曰躁2020| 欧美色66| 夜夜狼人妻| 看黑人AV不卡| 97色插| 久久久久9久久久久| 中文字幕日韩国产传媒欧美精品| 婷婷色婷婷| 精品久热| 五月天综合在线| 色情综合网| 五月婷丁香| 亚洲国男人的天堂| 麻豆国产尤物AV| 欧美日韩国产在线| 色婷婷综合网| 中文字幕日韩综合| 国产又粗又又黄又猛| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 艳美熟妇先锋一二三区| 色婷婷五月天| 色老汉玖玖爱| 江都AV在线| 久久精品天美| 青青草成人视频在线观看二区 | 久操凹凸视频| 黄色免费网页无码| 粉嫩在线一区二区懂色| 无码少妇精品一区二区60岁老人| 成人午夜视频免费播放| 亚洲久热| 亚洲。日韩。欧美| 亚州久久9| 欧美一品道| 91白虎| 日韩精品在线视频,日韩精品……| 亚洲欧美首页| 欧美自拍偷拍综合图片| 亚洲中文国际强奸字幕| 最近的最新的中文字幕视频| 日产狠狠干| 一区二区三区四区五区高清无码永久视频 | 操高情无码| 欧美精品99久久久| 一区麻豆 高清中文字幕| 久草精品一区| 97se亚洲综合自| av一区二区三区不卡| 欧美人妻精品一区二区| 久久久无码国精品无码三区三区| 欧美色图片91| 日韩成人人妻网站| 一级性爱网| 国产精品视频白浆免费| 亚洲色图久久成人| 亚洲精品白丝| 91亚洲欧洲| 青娱乐国产精品| 日韩av女优在线免费一区| 动漫av中文| 91啪啪| 国产精点久久久成人| 日韩在线AB| 国产熟女自拍| 国产亚洲欧美每日在线| 国产超碰在线| 午夜福利在线合集| 97在线视频免费观看| 国产三级中文有码在线视频| 欧美大香蕉卡久久| 91狠狠狠| ..日韩av毛片精品久久久| 97超碰国产亚洲精品资源| 日韩中文字幕宗合在线| 一二三区操逼国产91| 五月丁香六月婷| 在线观看午夜婷婷久久久久清性观看| 日本不卡五区| 五月婷婷AV| 亚州色阁| 美女熟妇色| 欧美另类色| 亚洲男人天堂手机版| 国产性爱乱伦AV| 久久亚洲不卡一区二区三区| 亚洲激情视频| 五月丁香色情| 久湿久久| 欧美日日操| 亚洲三级网址久久最新| 婷婷五月天激情四射| 亚洲日本韩国在线| 国产精品乱码久久久久久久| 国产黄色在线播放观看| 九九热免费国产视频婷婷伊人五月| 99精品无码| 3p国产色噜噜一区| 欧美最大综合网| 奇米四色影视777久久久| 99999精品成人| V A在线| 色av中文字| 69一区二区三区| 三级三级三级日本99| 91国产丝袜白虎| 久久人人爽人人爽人人片Ⅴ| 熟妇激情| 国产黄色av大片网站| 亚洲熟女偷拍在线观看| 国产精品嫩草影院免费| 男人的天堂2000| 被男人添B超爽视频| 老汉网| 日韩大香蕉AV影片| av一区二区三区四区| 一本一道人妻久久一区二区三区 | 色香天天| 五月婷婷综合在线| 国产尤物在线三区| 亚洲激情久久| 91视频综合网| 蜜桃臀 后入 一区 二区 三区 在线| 夜夜高潮夜夜爽夜夜爱爱一区| 99热18| 麻豆天美一区二区| 欧美亚洲综合色| 91丨国产丨白浆秘 洗澡动漫| 欧美一级欧美三级在线观看| 永久免费观看的毛片的网站| 蜜桃在线观看一区二区三区 | 亚洲男人的天堂一区二区| 强奸乱伦AV一天堂网| 97色色,97综合| 熟女乱伦A| 欧美淫乱视频| 在线黄页看毛片| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 中文字幕精品免费一区二区| 欧美黄色大片在线观看 | 97干在线| 欧美热图99| 精品久久青青草| 蜜乳中文字幕a在线| 国产老熟女| 18禁中文字幕| 国产嫩草精品A88AV| 97超碰碰碰| 成人av性爱电影在线观看| 亚洲激情 欧美色图| 操逼操逼视频操逼| 日韩电影中文字幕| 欧美激情中文字幕另类小说| 日日日日做夜夜夜夜做无码97| 多乙久久久久久| 蜜臀久久99精品久久久电影| 性感女人网页在线观看视频| 色天使亚洲综合在线观看| 四虎精品一区| 天天操天天插| 日韩美女啪啪一区| 欧美色图小说综合| 日韩女优中文字幕| 2018天天干在线视频| 一级AAA片一区二区三区| 玖玖综合.com| 欧美,日韩综合久久| 天操天操夜操夜月月年年操操| 香蕉久久国产AV一区二区| 国内毛片无遮挡国产| 破处bbq| 久操视频免费在线观看| 中文字幕人成乱码熟女香港| 亚洲脚交| 九九热精品免费视频| 成人网站 免费观看| 精品视频在线观看精品| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 久久亚洲天堂| 亚洲情色五月天 | 国产免a费看黄片在线| 国外91| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 国产91丝袜 在线播放| 国产丝袜美女诱惑| 去干网最新版| 色综合国产在线观看| 色色九区| 九七毛片九九毛片| 91撸色网 玖玖网 欧美| 秋霞视频一区二区| www.91理论| 中文一区二区三区影院| 亚洲午夜精品久久久中文影院| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 五月丁香拍拍激情综合三级| www老逼91| 久久国色天香香蕉| 欧美性爱中文字幕无线码| 国产suv精品一区| 色综合潮| 婷婷丁香在线| 人人操人人摸人人看人人干| 另类天堂| 超碰色97| 少妇精品久久久八区九区| 久久超碰免费的| 精品在线观看视频在线| 日韩亚洲精品一区二区| 精品视频在线观看精品| 97超碰中文在线| 91美女視頻| 亚洲精品97中文字幕| 欧美老妇综合网| 天天弄欧美| 国产精品青青草| 狠狠躁AV| 99热这里| 极品色社| 丰满人妻一区二区三区| 狠狠狠狠狠干| 欧美黄色大香蕉一区二区| 精品毛片久久久精品毛片| 曰韩操B| 免费又黄又裸乳的视频| 内射夫妻三片| 国产美女裸体秘 永久无遮挡| 2020久久免费视频| 午夜男女爽爽爽影院视频| 91欧美大片| 国产精品久久久久久亚洲色欲| 97干97色| 日韩免费av片高清无码| 亚欧高清| 国产精品极品美女视频| 中文字幕亚洲热播人妻|