免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

MySQL到BigQuery數(shù)據(jù)同步:CDC如何彌補周期同步的漏失

MySQL到BigQuery數(shù)據(jù)同步:CDC如何彌補周期同步的漏失 MySQL 到 BigQuery 的數(shù)據(jù)同步最容易被低估的問題就是時間窗口。無論是定時導(dǎo)出還是按updated_at增量拉取本質(zhì)上都屬于 periodic syncs。它們的共同點是數(shù)據(jù)庫里的變化并不會等待調(diào)度任務(wù)開始也不會按周期整齊地落入邊界。一次刪除、一條字段被改回舊值、一張表在夜間被大批量 UPDATE 后又改回來這些事件都可能發(fā)生在兩批同步任務(wù)的間隙最終 BigQuery 里的數(shù)據(jù)既不是源表的真實狀態(tài)也不是任何歷史時刻的真實狀態(tài)。CDCChange Data Capture通過讀取 MySQL binlog把每一條數(shù)據(jù)變更作為事件流送到 BigQuery正好從機(jī)制上補上了這個缺口。這篇文章圍繞周期同步會漏什么、binlog 為什么能避免漏、落地時要注意什么展開適合正在設(shè)計數(shù)據(jù)管道、給數(shù)倉接增量數(shù)據(jù)或者被批量任務(wù)數(shù)據(jù)不一致問題困擾的開發(fā)者與數(shù)據(jù)工程師。1. 周期同步在 MySQL 到 BigQuery 場景下到底漏了什么1.1 常見的三種周期同步寫法先看最常用的三種同步方式它們并不只是實現(xiàn)細(xì)節(jié)不同能捕獲的數(shù)據(jù)變化粒度也完全不同。第一種是全量導(dǎo)出覆蓋。直接把 MySQL 表導(dǎo)出成文件或通過 SQL 拉取寫入 BigQuery 臨時表再覆蓋目標(biāo)表。這種方式能保證目標(biāo)表最終狀態(tài)一致但同步窗口很長且 BigQuery 做覆蓋時下游可能讀到一半數(shù)據(jù)。數(shù)據(jù)量一旦上億這個方案基本不可持續(xù)。第二種是按自增 ID 增量拉取。記錄max(id)每次只拉大于該 ID 的行像這樣SELECT * FROM orders WHERE id :last_max_id ORDER BY id;這個方案只能捕獲新增數(shù)據(jù)。業(yè)務(wù)表一旦發(fā)生 UPDATE主鍵 ID 不變增量 SQL 永遠(yuǎn)拉不到這一行。DELETE 更不會出現(xiàn)在結(jié)果里。第三種是按更新時間戳增量拉取SELECT * FROM orders WHERE updated_at :last_sync_ts;這是目前最常見的周期同步方案前提是業(yè)務(wù)表有updated_at字段并且所有寫入路徑都正確更新這個字段。實際項目里這個前提經(jīng)常被破壞某些批量導(dǎo)入腳本沒有更新updated_at某些框架寫入時沒有映射該字段于是出現(xiàn)數(shù)據(jù)明明變了增量 SQL 卻查不到的問題。1.2 周期同步一定會錯過的幾類變更物理刪除是最典型的一類。DELETE 之后這條記錄不再存在于表中任何基于當(dāng)前表狀態(tài)的 SELECT 都無法發(fā)現(xiàn)它曾經(jīng)存在過。全量對拍能發(fā)現(xiàn)問題但只能事后補救而且對拍本身在大表上成本極高。沒有更新時間字段或者更新時沒有寫入時間戳也是一類。訂單表如果通過第三方系統(tǒng)直接改庫或者 DBA 手工執(zhí)行 UPDATE 時沒有維護(hù)updated_at那么增量邊界從一開始就是錯的。同周期內(nèi)狀態(tài)回跳同樣會被掩蓋。假設(shè)訂單在 00:00:10 從pending改為paid00:00:20 又改回pending。周期任務(wù)在 01:00 運行拉到的最終狀態(tài)還是pending。從業(yè)務(wù)角度看中間那次paid狀態(tài)也曾經(jīng)是真實數(shù)據(jù)但周期同步完全感知不到。高頻更新更不用說。一張促銷表每秒更新幾千行周期任務(wù)每隔 5 分鐘拉一次單行在周期內(nèi)被反復(fù)更新后最終拉到的只是最后一次值中間所有取值全部丟失。1.3 為什么不是多跑幾次就能解決周期同步的失敗模式是邏輯性漏數(shù)據(jù)不是漏跑任務(wù)。把調(diào)度頻率從小時改成分鐘只是縮小時間窗口并沒有改變讀取當(dāng)前表狀態(tài)的本質(zhì)。一張表在周期內(nèi)發(fā)生了 100 次更新周期同步只能看到最后一行binlog 能看到 100 個事件并且每個事件都保留前鏡像和后鏡像。這就是原理層面的差異。周期同步試圖通過查詢結(jié)果反推變化而 binlog 是 MySQL 自己記錄的寫操作流水賬。流水賬不會因為業(yè)務(wù)表沒有updated_at就缺頁也不會因為 DELETE 后記錄消失就抹去歷史。1.4 三種方案的能力對比維度全量快照增量字段輪詢binlog CDC刪除事件全量對拍后才發(fā)現(xiàn)通常無法發(fā)現(xiàn)每條 DELETE 都有對應(yīng)事件更新歷史只有最后狀態(tài)只有最后一次變更每次 UPDATE 都有前鏡像和后鏡像對業(yè)務(wù)表要求無必須有updated_at等字段無binlog 與業(yè)務(wù)表結(jié)構(gòu)獨立實時性取決于調(diào)度周期取決于調(diào)度周期秒級到分鐘級可配置對源庫壓力大全表掃描代價高中等取決于索引較小讀取日志而不是反復(fù)掃描表從這張表能看出周期同步不是慢而是漏。CDC 的價值不是讓同步更快而是讓變化過程本身可見。2. binlog 為什么能捕捉每一次變化CDC 的原理2.1 binlog 是什么binlog 是 MySQL 的二進(jìn)制日志記錄所有改變數(shù)據(jù)庫內(nèi)容的操作包括 INSERT、UPDATE、DELETE以及部分 DDL。MySQL 主從復(fù)制、崩潰恢復(fù)、數(shù)據(jù)恢復(fù)都依賴它??梢岳斫鉃?MySQL 把每一次寫操作按順序?qū)懙揭槐玖魉~上。binlog 并不是默認(rèn)可用的。MySQL 5.7 中l(wèi)og_bin默認(rèn)關(guān)閉8.0 默認(rèn)開啟但不同發(fā)行版和云廠商的默認(rèn)值可能不同落地前必須先確認(rèn)。如果 binlog 沒有開啟后續(xù)所有 CDC 方案都無從談起。2.2 ROW 格式給 CDC 提供了什么binlog 有三種格式STATEMENT、ROW、MIXED。STATEMENT 格式記錄的是 SQL 語句本身例如UPDATE orders SET statuspaid WHERE id1001;。這種格式日志量小但無法可靠還原每一行在語句執(zhí)行前后的具體值。MIXED 格式是兩者的混合MySQL 會根據(jù)語句類型自動選擇但對于 CDC 場景依然不夠穩(wěn)定。CDC 要求使用 ROW 格式。ROW 格式下binlog 直接記錄行的變化包括字段級的前鏡像和后鏡像。具體來說INSERT 事件包含插入后的完整行數(shù)據(jù)。UPDATE 事件包含變更前的整行數(shù)據(jù)和變更后的整行數(shù)據(jù)。DELETE 事件包含刪除前的整行數(shù)據(jù)。這意味著 CDC 消費者不僅能知道某張表發(fā)生了變化還能拿到 哪一行的哪個字段從什么值變成什么值。2.3 CDC 連接器如何消費 binlogDebezium、Flink CDC 這類工具在原理上會偽裝成 MySQL 從庫。它們通過 MySQL 的復(fù)制協(xié)議從主庫拉取 binlog并把 binlog 里的二進(jìn)制事件解析成結(jié)構(gòu)化的 JSON 變更事件。連接器需要記錄自己的消費位點。傳統(tǒng)方式是記錄 binlog 文件名加偏移量例如mysql-bin.000023的position 45123。更可靠的方式是使用 GTID即全局事務(wù)標(biāo)識符。GTID 能唯一標(biāo)識每個事務(wù)即使 binlog 文件被清理只要 MySQL 實例保留了完整的事務(wù)歷史連接器也能定位到正確的起點。CDC 連接器通常具備先快照再增量的能力。首次啟動時它會先讀取一次源表全量數(shù)據(jù)記錄當(dāng)時的 binlog 位點之后繼續(xù)從該位點消費增量從而保證從啟動那一刻起不遺漏后續(xù)變更。2.4 從 binlog 到 BigQuery 的完整鏈路一個常見的生產(chǎn)架構(gòu)是MySQL master - binlog - CDC Connector (Debezium / Flink CDC) - Kafka Topic - 流處理或?qū)懭氤绦?- BigQuery Storage Write API / Load Job - BigQuery Table也可以簡化為MySQL master - Flink CDC - BigQuery 目標(biāo)表無論采用哪種架構(gòu)核心都是從日志讀取變化而不是定時查詢表。這也決定了后面的環(huán)境準(zhǔn)備、配置、驗證和排錯方式。3. 前期準(zhǔn)備MySQL、BigQuery 和權(quán)限一項都不能省3.1 版本與前置條件在配置 CDC 之前先確認(rèn)環(huán)境是否滿足基本條件組件要求說明MySQL5.7 或 8.0開啟 binlog5.7 建議顯式開啟8.0 確認(rèn)默認(rèn)配置BigQuery數(shù)據(jù)集、目標(biāo)表、服務(wù)賬號建議單獨建服務(wù)賬號避免共用管理員賬號CDC 工具Debezium 或 Flink CDC版本需要與 MySQL 和 Kafka 版本匹配網(wǎng)絡(luò)源庫與數(shù)倉側(cè)連通私網(wǎng)優(yōu)先公網(wǎng)場景需要做好傳輸加密如果源 MySQL 是云數(shù)據(jù)庫還需要查看云廠商是否允許開啟 binlog 保留策略、是否開放復(fù)制賬號權(quán)限。有些托管數(shù)據(jù)庫默認(rèn)不開放REPLICATION SLAVE這是接入 CDC 前最容易發(fā)現(xiàn)的阻塞點。注意開啟 binlog 并切換為 ROW 格式后binlog 日志量通常會變大磁盤占用和復(fù)制延遲都會上升。生產(chǎn)環(huán)境切換前需要評估磁盤余量。3.2 修改 MySQL 配置下面是一份最小可用的 MySQL CDC 配置示例[mysqld] server_id 1001 log_bin /var/log/mysql/mysql-bin.log binlog_format ROW binlog_row_image FULL expire_logs_days 7 # MySQL 8.0 可用以下參數(shù)控制 binlog 保留時長 # binlog_expire_logs_seconds 604800每個參數(shù)的作用server_idMySQL 實例在復(fù)制拓?fù)渲械奈ㄒ粯?biāo)識。CDC 客戶端也會占用一個 server-id不能與主從庫中其他節(jié)點重復(fù)。log_bin開啟 binlog并指定日志文件路徑。binlog_formatROW讓 binlog 記錄行級變更。CDC 必須使用 ROW 格式。binlog_row_imageFULL讓 UPDATE 事件包含整行前鏡像和后鏡像。如果設(shè)置為 MINIMALbinlog 只包含被修改的字段和主鍵CDC 拿不到完整舊行和新行。expire_logs_days控制 binlog 文件保留天數(shù)。保留太短CDC 位點落后時可能追不上保留太長磁盤占用過大。常見建議是 3 到 7 天具體要結(jié)合源庫寫入量和磁盤容量調(diào)整。修改配置后需要重啟 MySQL。重啟前確認(rèn)max_allowed_packet等參數(shù)不會限制大事務(wù)的 binlog 傳輸。3.3 創(chuàng)建 MySQL CDC 賬號建議為 CDC 單獨創(chuàng)建一個賬號避免使用 rootCREATE USER cdc_user% IDENTIFIED BY strong_password; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO cdc_user%; FLUSH PRIVILEGES;三個權(quán)限的含義SELECT用于 CDC 工具首次啟動時的全量快照以及讀取表結(jié)構(gòu)信息。REPLICATION SLAVE允許該賬號通過復(fù)制協(xié)議讀取 binlog這是 CDC 的核心權(quán)限。REPLICATION CLIENT允許執(zhí)行SHOW MASTER STATUS、SHOW BINARY LOG STATUS等命令用于確認(rèn)位點信息。不要把ALL PRIVILEGES都授出去。CDC 賬號只需要讀取能力不需要寫源庫。3.4 BigQuery 側(cè)準(zhǔn)備BigQuery 側(cè)需要準(zhǔn)備數(shù)據(jù)集、目標(biāo)表和服務(wù)賬號。在 Google Cloud Console 中先創(chuàng)建數(shù)據(jù)集例如analytics。目標(biāo)表建議在接入 CDC 之前就定義好字段類型盡量與 MySQL 類型對應(yīng)。如果后續(xù)依賴 BigQuery 自動加列容易遇到 schema 不一致導(dǎo)致寫入失敗。服務(wù)賬號需要授予 BigQuery Data Editor 或更細(xì)粒度的角色。把服務(wù)賬號的 JSON 密鑰下載到寫入服務(wù)所在機(jī)器并通過環(huán)境變量GOOGLE_APPLICATION_CREDENTIALS指向密鑰文件。BigQuery 是列式存儲目標(biāo)表 schema 在寫入前就要對齊。CDC 事件字段如果比目標(biāo)表多需要做過濾如果少目標(biāo)表多出的列會使用默認(rèn)值或 NULL。4. 最小落地鏈路Debezium 捕獲 binlog程序?qū)懭?BigQuery4.1 兩種常用的技術(shù)選型常見方案有兩種方案鏈路適合場景Debezium KafkaMySQL - Debezium - Kafka - 寫入程序 - BigQuery已有 Kafka 基礎(chǔ)設(shè)施需要多消費方Flink CDCMySQL - Flink CDC - BigQuery Sink團(tuán)隊熟悉 Flink希望用 SQL 處理流下面以 Debezium Kafka Python 消費者為例把鏈路拆開看。這樣更容易理解每個環(huán)節(jié)的職責(zé)。Flink CDC 只是把 Debezium 和流處理合并到一個框架里原理一致。4.2 Debezium connector 的配置Debezium 通過 Kafka Connect 運行一個典型配置如下{ name: mysql-orders-connector, config: { connector.class: io.debezium.connector.mysql.MySqlConnector, database.hostname: 10.0.0.10, database.port: 3306, database.user: cdc_user, database.password: xxxx, database.server.id: 5400, database.include.list: ecommerce, table.include.list: ecommerce.orders, database.history.kafka.bootstrap.servers: kafka:9092, database.history.kafka.topic: schema-changes.ecommerce, topic.prefix: mysql, include.schema.changes: true } }關(guān)鍵參數(shù)database.server.idDebezium 會占用一個 server-id。它必須與 MySQL 現(xiàn)有主從庫、其他 CDC 實例的 server-id 不沖突否則連接會被 MySQL 拒絕。database.include.list/table.include.list限定監(jiān)聽的庫表。只同步需要的表能顯著減少 binlog 解析壓力。database.history.kafka.topicDebezium 用這個 topic 記錄表結(jié)構(gòu)歷史。binlog 里的舊事件在解析時可能依賴歷史 schema因此這個 topic 不能隨意刪除。topic.prefix生成 Kafka topic 名稱的前綴。最終 topic 名稱一般是{topic.prefix}.{database}.{table}。4.3 變更事件長什么樣Debezium 輸出的變更事件是一段 JSON核心結(jié)構(gòu)如下{ before: { id: 1001, status: pending }, after: { id: 1001, status: paid }, source: { db: ecommerce, table: orders, server_id: 1001, ts_ms: 1719900000123 }, op: u }op字段表示操作類型op 值含義事件內(nèi)容cINSERT只有afteruUPDATE有before和afterdDELETE只有beforer快照讀取類似 INSERTafter為快照行注意DELETE 事件沒有after。寫入 BigQuery 時如果目標(biāo)表要反映刪除必須自己定義刪除策略比如寫入一條帶刪除標(biāo)記的記錄或者通過主鍵 MERGE 刪除目標(biāo)行。4.4 寫入 BigQuery 的示例程序下面是一個最小 Python 消費者示例從 Kafka 讀取 MySQL 變更事件批量寫入 BigQueryimport json from google.cloud import bigquery from kafka import KafkaConsumer PROJECT my-project DATASET analytics TABLE orders client bigquery.Client(projectPROJECT) table_ref client.get_table(f{PROJECT}.{DATASET}.{TABLE}) def process_event(msg): payload json.loads(msg.value()) op payload.get(op) if op in (c, r): return payload[after] if op u: return payload[after] if op d: before payload[before] before[_is_deleted] True return before return None consumer KafkaConsumer( mysql.ecommerce.orders, bootstrap_serverskafka:9092, group_idbigquery-sync, auto_offset_resetlatest, enable_auto_commitFalse, ) rows [] batch_size 500 for message in consumer: row process_event(message) if row is not None: rows.append(row) if len(rows) batch_size: errors client.insert_rows_json(table_ref, rows) if not errors: consumer.commit() rows [] else: print(errors)這個示例說明的是思路不是完整生產(chǎn)代碼。insert_rows_json適合小規(guī)模驗證生產(chǎn)環(huán)境更推薦使用 BigQuery Storage Write API并配合監(jiān)控、重試和死信隊列。enable_auto_commitFalse是為了避免消息未成功寫入就提交位點減少丟失風(fēng)險但代價是重復(fù)消費因此目標(biāo)表必須容忍重復(fù)。4.5 如果團(tuán)隊已經(jīng)用 Flink可以考慮 Flink CDCFlink CDC 可以把上面的鏈路壓縮成一個 SQL 和一套連接器。用 Flink SQL 創(chuàng)建 MySQL CDC 源表CREATE TABLE mysql_orders ( id INT, user_id INT, amount DECIMAL(10, 2), status STRING, updated_at TIMESTAMP(3), PRIMARY KEY (id) NOT ENFORCED ) WITH ( connector mysql-cdc, hostname 10.0.0.10, port 3306, username cdc_user, password xxxx, database-name ecommerce, table-name orders, server-id 5400-5406, scan.incremental.snapshot.enabled true );scan.incremental.snapshot.enabled在較新版本默認(rèn)開啟。它讓 Flink CDC 以分片方式并行快照大表不需要像舊版本那樣先對全表加鎖再讀取對大表更友好。源表創(chuàng)建后可以再創(chuàng)建 BigQuery Sink 表通過INSERT INTO完成同步。具體 Sink 類名和參數(shù)取決于連接器版本落地前要以當(dāng)前使用的 Flink 和連接器文檔為準(zhǔn)。5. 怎么驗證 binlog 同步?jīng)]有漏數(shù)據(jù)5.1 先確認(rèn) binlog 真的開了進(jìn)入 MySQL 命令行執(zhí)行SHOW VARIABLES LIKE log_bin; SHOW VARIABLES LIKE binlog_format; SHOW VARIABLES LIKE binlog_row_image;預(yù)期結(jié)果中l(wèi)og_bin為ONbinlog_format為ROWbinlog_row_image為FULL。還可以執(zhí)行SHOW BINARY LOG STATUS;如果輸出包含當(dāng)前 binlog 文件名和 position說明 binlog 文件正在正常寫入。5.2 驗證 Kafka 收到了哪些變更先用 Kafka 自帶的控制臺消費命令觀察 MySQL 變更是否進(jìn)入 topickafka-console-consumer.sh \ --bootstrap-server kafka:9092 \ --topic mysql.ecommerce.orders \ --from-beginning然后在 MySQL 中分別執(zhí)行一次 UPDATE 和一次 DELETEUPDATE orders SET status paid WHERE id 1001; DELETE FROM orders WHERE id 1002;正常情況下消費端會看到op為u和d的兩條事件。這一步直接驗證了周期同步最難做到的能力刪除和更新都能被捕獲。5.3 驗證 BigQuery 目標(biāo)表觀察 BigQuery 目標(biāo)表是否有新數(shù)據(jù)寫入。可以通過控制臺查詢也可以執(zhí)行SELECT COUNT(*) FROM my-project.analytics.orders; SELECT MAX(updated_at) FROM my-project.analytics.orders;必須注意一個容易誤判的地方BigQuery 目標(biāo)表不會因為收到了 DELETE 事件就自動刪除對應(yīng)行。如果寫入程序只是把after或before以追加方式寫入刪除事件只會變成一行帶標(biāo)記的數(shù)據(jù)。要真實反映刪除目標(biāo)表需要按主鍵做 MERGE或者通過分區(qū)覆蓋實現(xiàn)。驗證時先明確自己的目標(biāo)表語義是追加明細(xì)還是鏡像源表。5.4 延遲監(jiān)控指標(biāo)從 binlog 到 BigQuery 的同步不是一次性的必須持續(xù)監(jiān)控。常見指標(biāo)包括指標(biāo)含義告警建議Kafka consumer lag消費程序落后的消息數(shù)持續(xù)增長則告警Debezium 位點與當(dāng)前 binlog 的文件間隔連接器是否在追趕超過 binlog 保留期則高風(fēng)險端到端延遲事件寫入 MySQL 到進(jìn)入 BigQuery 的時間差根據(jù)業(yè)務(wù)要求設(shè)置閾值BigQuery 寫入錯誤率schema 不匹配等寫入失敗立即告警把位點落后和consumer lag 持續(xù)增長作為關(guān)鍵告警能提前發(fā)現(xiàn)大事務(wù)、網(wǎng)絡(luò)抖動或消費程序故障。6. 數(shù)據(jù)到達(dá) BigQuery 后模式映射、DDL 和冪等才是真正的坑6.1 MySQL 與 BigQuery 類型映射字段類型映射是 CDC 鏈路里最容易踩坑的部分。下面是常見映射關(guān)系MySQL 類型BigQuery 類型注意事項INT / INTEGERINT64無符號 INT 可能超過 INT64 有符號范圍BIGINTINT64超過 2^63-1 的數(shù)據(jù)要改用 NUMERIC 或 STRINGDECIMAL(p, s)NUMERIC / BIGNUMERIC金額字段不要用 FLOAT精度會丟失DATETIMEDATETIME無時區(qū)語義按原值寫入TIMESTAMPTIMESTAMP建議統(tǒng)一按 UTC 存儲VARCHAR / TEXTSTRING長度和編碼要注意JSONJSONBigQuery 需要字段模式為 JSON 或先轉(zhuǎn)成 STRINGTINYINTINT64 / BOOL看業(yè)務(wù)語義確定最容易出問題的是 DECIMAL。MySQL 中的DECIMAL(10, 2)如果映射成 BigQuery 的 FLOAT640.1 這樣的值可能出現(xiàn)精度誤差。正確做法是映射為 NUMERIC。TIMESTAMP 也容易出問題。MySQL 的TIMESTAMP有會話時區(qū)概念CDC 事件里的ts_ms可能是 UTC 時間而業(yè)務(wù)字段本身可能是本地時間。建議在寫入端統(tǒng)一規(guī)范避免目標(biāo)表同一列混入不同時區(qū)的數(shù)據(jù)。6.2 DDL 變更會打斷 CDC當(dāng) MySQL 表結(jié)構(gòu)變化時CDC 鏈路會面臨兩個層面的問題。第一Debezium 需要依賴database.history.kafka.topic中的 schema 歷史來解析 binlog 里的舊事件。如果這個 topic 被刪除或清理連接器可能無法反序列化舊的 binlog 事件。第二BigQuery 目標(biāo)表的 schema 不會自動跟隨 MySQL DDL 變化。MySQL 加了一列CDC 事件里出現(xiàn)了新字段但 BigQuery 目標(biāo)表沒有這一列寫入就會報錯。處理建議是把 DDL 納入變更流程先審查 MySQL DDL 對同步鏈路的影響。先在 BigQuery 目標(biāo)表補充或調(diào)整 schema。再在 MySQL 執(zhí)行 ALTER TABLE。同步完成后核對事件是否正常。對于大表的 ALTER TABLE還可能導(dǎo)致源庫鎖表和復(fù)制延遲。生產(chǎn)環(huán)境做主從切換時要評估 DDL 對 binlog 位點的影響。注意不要依賴 BigQuery 自動加列來處理所有 DDL 變更。自動加列在不同版本和連接器里行為不一致且不能處理列重命名、刪除、類型變更等復(fù)雜操作。6.3 至少一次語義下重復(fù)是正常的binlog CDC 鏈路通常提供 at-least-once 語義。網(wǎng)絡(luò)閃斷、消費程序重啟、位點提交失敗都可能導(dǎo)致同一事件被重復(fù)消費。因此目標(biāo)表必須能接受重復(fù)。常見做法按主鍵去重寫入前先判斷目標(biāo)表是否已有該主鍵。使用 BigQuery MERGE按主鍵更新目標(biāo)行。在記錄中增加事件版本字段如event_ts_ms或 GTID寫入時取較新的事件。下面是 BigQuery MERGE 的簡化思路MERGE my-project.analytics.orders AS t USING changes AS s ON t.id s.id WHEN MATCHED THEN UPDATE SET status s.status, amount s.amount WHEN NOT MATCHED THEN INSERT (id, user_id, amount, status, updated_at) VALUES (s.id, s.user_id, s.amount, s.status, s.updated_at);MERGE 在處理刪除事件時還可以加一個WHEN MATCHED AND s._is_deleted TRUE THEN DELETE分支。但 MERGE 的成本比流式追加高適合對一致性要求高、更新頻率可控的場景。如果表更新量極大需要考慮分區(qū)覆蓋、冷熱分離等方案。6.4 亂序事件怎么處理同一個主鍵的多條變更在 Kafka 中如果分布到不同分區(qū)消費程序收到的順序可能和源庫事務(wù)提交順序不一致。比如先提交了statuspaid后提交了statuscancelled亂序可能導(dǎo)致目標(biāo)表最終停在paid。處理方式Kafka Topic 按主鍵 hash 分區(qū)保證同一主鍵路由到同一分區(qū)。寫入端使用 binlog 里的ts_ms或 GTID 做排序只接受更新的事件。如果業(yè)務(wù)允許短暫延遲可以在寫入端做窗口緩沖按主鍵排序后批量提交。如果源表存在刪主鍵后重新插入同一主鍵的場景還需要區(qū)分刪除后插入和舊 UPDATE 后到否則可能出現(xiàn)舊數(shù)據(jù)覆蓋新數(shù)據(jù)的現(xiàn)象。這種情況下GTID 或事務(wù) ID 是更可靠的順序依據(jù)。7. 常見問題排查從現(xiàn)象倒推 binlog 鏈路故障7.1 現(xiàn)象連接器啟動時報權(quán)限不足或無法讀取 binlog可能原因MySQL 賬號缺少REPLICATION SLAVE權(quán)限。連接器配置的 server-id 與現(xiàn)有從庫沖突。binlog 未開啟或者binlog_format不是 ROW。排查命令SHOW VARIABLES LIKE binlog_format; SHOW GRANTS FOR cdc_user%; SHOW PROCESSLIST;處理方式核對 MySQL 配置和賬號權(quán)限修改后重啟連接器。server-id 沖突通常會在 MySQL 錯誤日志里看到A slave with the same server_uuid/server_id as this slave has connected to the master之類的信息。7.2 現(xiàn)象任務(wù)運行一段時間后Kafka 里有歷史事件但新事件遲遲不來可能原因Kafka Connect 或連接器進(jìn)程掛掉后位點沒有正確恢復(fù)。MySQL 實例重啟導(dǎo)致 binlog 文件名變化連接器找不到舊位點對應(yīng)的文件。table.include.list配置了大小寫敏感的表名實際表名大小寫不一致。排查方式kafka-consumer-groups.sh --bootstrap-server kafka:9092 --describe --group bigquery-sync重點看CURRENT-OFFSET、LOG-END-OFFSET和LAG。如果 consumer lag 為 0 但新數(shù)據(jù)沒進(jìn)來檢查連接器日志里 binlog offset 是否還在推進(jìn)。必要時做一次 重新快照 增量 的初始化。7.3 現(xiàn)象BigQuery 寫入報錯字段不存在或類型不匹配可能原因MySQL DDL 新增了列BigQuery schema 沒有同步。DECIMAL 字段映射成了 FLOAT64導(dǎo)致精度丟失或?qū)懭胧?。MySQL JSON 字段映射到了 BigQuery STRING但事件里是 JSON 對象。排查方式SELECT column_name, data_type FROM my-project.analytics.INFORMATION_SCHEMA.COLUMNS WHERE table_name orders;處理方式定位是哪一列不匹配先同步 schema再重放失敗事件。不要直接丟棄報錯事件否則會在對賬時發(fā)現(xiàn)數(shù)據(jù)缺口。7.4 現(xiàn)象同步延遲持續(xù)增長可能原因源庫執(zhí)行了大事務(wù)例如一次 UPDATE 超過十萬行binlog 事件量巨大。消費程序單線程寫入 BigQuery寫入速度跟不上源庫變更速度。網(wǎng)絡(luò)帶寬不足或者 BigQuery 寫入配額受限。處理方式在源庫側(cè)避免一次性更新超大范圍拆成小事務(wù)。寫入端改用批量并行寫并啟用 Storage Write API。增加監(jiān)控觀察 binlog 保留時間是否充足。如果消費端位點落后太遠(yuǎn)而 binlog 文件已經(jīng)過期可能需要重新快照。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲乱码日产精品BD| 四虎国产精品永久在线国在线| 五月激情射| 91人碰| 婷婷99| 色啪综合| 另类激情首页| 婷婷五月天激情影片| 日本道久久91| 国产69精品久久久久999小说| 五月丁香成人网| 综合亚洲色色| 欧美三级欧美一级| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 欧美25p| 97干在线| 六月撸婷婷| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 能看的av| 人人草开心五月天| 激情五月六月婷婷| 开心五月婷婷在线视频免费观看| 18av天堂| 91狠狠色丁香婷婷综合久久| 操操精品| av五月丁香| 欧洲色| 狠狠狠五月婷婷六月丁香| 丁香九月综合激情| 色婷婷五月综合色婷婷| 天天干人人奸97| 97在线视频人妻九色| 六月婷婷激情小说网| 婷婷五月丁香91| 丁香五月婷婷影视先锋| 激情六月婷婷啪啪| 超极99精品| 高清无码.com| 狠狠五月激情在线| 最新午夜理论片| 亚洲综合网 665566| 91夫妻网站九色| 色色色99| 欧美性猛交XXXX乱大交极品| 五月丁香啪啪| 99热这里只有精品9| 亚洲精品va| 丝袜人妻| 26uuu四色| 成年人夜夜喷水| 一级无码作爱片| 人碰人人人玩91| 99激情视频| 99热这里只有免费精品| 5月丁香六月情| wuyuedingxiang99| 先锋资源 996| 五月婷婷婷| 六月综合婷婷开心伊人| www.99热在线| 五月天婷婷影院| 九九大香蕉黄色影院| 日韩精品无码AV| 电影91久久久| 啪啪操操| 免费AAAAA网| 久操激情| 五月婷婷色丁香| 精品视频99看在线视频| 色噜噜狠狠狠综合曰曰曰| 五月天激情开心网| 5月婷婷五月天| 丁香五月婷在线观看| 操操操操操电影网| 五月丁香影院| 丁香六月激情综合| 日韩啪图| 久久综合婷婷| 天天做天天爱综合| 五月丁香婷婷综合| 色情激情五月婷婷| 久久性爱视频| 颜射 精品性爱av| 婷五月丁香| 婷婷十月丁香| 天天做夜夜爽| 伊人综合婷婷| 九九九九九九九九九九九九九九九九九九九在线视频 | 99精品在线下载| 337午夜福利| 久热这里只有精品性色AV| 免费国产VA国产免费| 婷婷欧美色| 岛国av电影网站| 六月婷婷八月丁香| 极品人妻VIDEOSSS人妻| 99热亚洲精品| 五月丁香五月丁香| 日韩 中文 欧美| 人妻内射麻豆视频| 婷婷五月天综合色| 开心五月婷婷| 亚州色婷婷| 99视频在线精品免费观看2| 久久婷婷激情| 色射影院| 五月婷婷激情久久| 五月停停999| 丁香涩涩爱| 亚洲六月婷| 欧美日本日韩| 六月婷婷色宗合| 婷婷丁香成人| 亚洲精品无AMM毛片| 国产激情综合| 人人操人人爽成人AV| 五月婷婷丁香| 婷婷九月狠狠色| 亚州精品久久久久AV无码| 久久精品99国产精品日本| 久久五月丁香激情综合| 91久久久久久久| 99ri视频在线播放| 丁香婷婷性久久| 色播五月| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 丁香五月成人| 天天激情| 精品久热| 婷婷无五月无码视频| 色XX综合网| 情色五月天 网站| 99caobi| 99∨VTV| 9191avse| 六月婷在线| 五月丁香六月情| 色色自拍视频网站| 婷婷五月丁香基| 操逼棍操逼| 日韩久久视频| 婷婷天堂视频| 99热在线播放| 日本啪啪天堂| 综合网五月| 伊人婷婷激情| 五月天婷婷青青| 欧美精品啪啪| www.五月丁香| 丁香六月激情综合| 淫视馆aV二区一区| 亚洲午夜av| 中文字幕按摩做爰| 色伦专区97中文字幕| 99re鈥哸鈥唙| 五月婷婷六月色| WWW,激情五月天,COM| 尤物一区二区| 亚洲超碰青涩| 狠狠综合网| 久久网思思| 香蕉婷婷色五月| 97自拍99| 色婷婷色99国产综合精品| 色色色五月婷| 日韩在线观看网址| 激情婷婷五月在线合集| www.丁香五月| 乱女乱妇熟女熟妇综合网站| 久久婷中文字幕| 踪合专区啪啪| 无码四色色色| 久草天堂| 97碰人人操| 丁香婷婷色九月| 久热黄色| ss99热| 播五月丁香六月| 色五月丁香六月欧美综合| 丁香狠狠| 91久久久久久久| www超碰| 激情婷婷人妻| 偷拍五月丁香| 五月丁香婷婷三级| 激情五月天婷婷视频| 五丁香激情综合| 99爱在线精品视频免费观看| 99久久思思| 开心激情综合| 精品夜夜澡人妻无码AV| 99人人干| 久久视频在线视频| 久操乱| 久久人操| 丁香五月六月久久综合| 丁香五月婷婷视频| 欧美日本免费一道免费视频| 丁香五月激情啪| 99丁香五月婷| 成人AV网站在线| 情欲综合网| 久99在线视频| 亚洲色五月| 九九超碰人人| 啪啪婷婷五月天激情| 六月综和久久| 人妻操逼视频| 五月婷婷之婷婷| 丁香五月花| 99热福利| 五月丁香伊人网| 五月天五月天激情网| 99啪啪| 五月婷亚洲精品AV天堂| 亚洲看av的网站| 99免费在线视频| 在线观看av网站| 99精品热视频| 91性人人| 久99久视频精品| 99综合免费视频| 久久99热免费最新版| 色欧美一级| 97干欧美| 五月色婷| 97久久人人| 五月丁香六月激情| 五月婷婷之综合激情| 亚洲激情五月天| 男人大jjc女人免费视频| 九九综合| 久热69| 五月婷高清视频| 99色视频在线| 五月丁香啪啪网| 国产69久久久欧美黑人A片| 99热综合在线| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 深爱综合网| 超碰在线国产| 99视频日韩| 九九热视频这里只有精品| 狠狠色狠狠色综合日日91| 一区二区中文字幕| 男女99免费视频| 久久婷出差欧美色两性综合网| 99国产精品白浆在线观看免费 | 五月丁香色| 午夜一区| 婷丁香久综合| 婷婷五月av| 五月综合精品| 五月婷婷色男女| 99人妻碰碰碰久久久久禁片| www.yw色| 色婷婷先锋| 丁香激情合作五月| 超碰国产在线| 亚洲狠狠色丁香婷婷综合久久| 手机AVAV天堂看网| 婷婷狠狠综合网入口| 日韩在线观看亚洲| 桔色成人在线| 激情五月综合第一页| 八戒青柠影视剧在线观看| 天天性视频| 国内久久亭亭| 综合色播| 操骚货在线| 五月天激情网图片 - 百度| 色九九七七| 九九色综合| 26uuu亚洲欧美日本| 99精品高潮| 日逼影音先锋AV男人资源站| 日本久久人| 丁香五月天天哦| 丁香六月成人| 秋霞九九无码| 色色色.com| 99色人| 天天色综网| 色综合久久88色综合天天99| 丁香激情网| 久久色婷婷| 丁香五月天黄色片| 狠狠色综合网站久久久久| 婷婷综合五月色播| 亚洲综合视频天天精品| 五月天综合色| 婷婷成人AV| 色 免费网站视频| 开心激情久久久久久久| 天天日夜夜B久久| 激情五月婷婷老师| 婷婷五月天AV在线| 那里有AV网址| www.国产色| 大香蕉久| 久久国产色| 中文字幕永久免费| 婷婷五月天色色| 婷婷色九月| 婷婷天堂综合| 99精品热| 欧美一级色| 五月婷婷激情四季| 欧美怡红院黄站| 天天干-天天日| 综合色色五月| 色色色.COM| 9热在线视频| 另类小说五月天| 五月丁香大相交| 另类激情五月| 玖玖视频福利| 亚洲成av人影院| 激情五月婷婷综合视频| 万月丁香狠狠爱| 色婷婷成人| 九九自拍网| 婷婷激情在线| 操操操www.com| 成人在线二区| 日本狠狠干| 噜噜噜噜婷婷五月天| 99热这里只有精品一区| 日韩另类| 色播五月天天| 五月丁香人妻| 可以直接看的AV| 日本ww亚洲| 人人综合91网| 亚洲黄色影视| 伊人五月天在线| 91啪啪视频| 免费视频WWW在线观看网站| 久久婷婷五月天亚洲欧美| 91九色无码日韩| 极品少妇高潮啪啪AV无码| 五月WWW| 操逼视频一区| 久久99日本精品视频免费观看| 99视频| 97婷婷丁香| 97五月天婷婷| 亚洲av日韩无码| 亚洲九九99精品视频在线播放| 色在线99| 亚洲色欲欧美一区二区三区| 婷婷激情97| 99久久久久| 日日操,夜夜爽| 国产婷伊人| 欧美日韩国产伦精品日韩人妻一| 五月婷婷之婷婷| 人人操日| 91操黄| 色五月激情综合| 激情五月天婷婷久久久久久久久久久| 无码碰碰| 丁香五月天激情网| 日本精品干| 一级七香蕉| VA色婷婷| 色婷婷丁香| 欧美色97| 六月丁香综合| 六月丁丁香| 九九99热久久精品66中文字幕| 婷婷噜噜| 狠狠狠狠狠| 激情五月丁香五月| 色色网五月激情| 色爱综合视频| 激情五月伊人婷婷| 亚洲色综合| 成熟妇人A片免费看网站| 玖玖婷婷综合| 久久婷婷操| 超碰在线视屏| 99人人干人人| 五月丁香六月情亚洲| 九九AV在线| 俺五月| 男人天堂伊人五月丁香| 亚洲激情高潮| 色噜噜狠狠色综合日日免费| 五月婷婷新网站| 国产日韩欧美性爱| 人妻五月天激情开心网| 婷婷五月天日本无码| 激情综合亚洲| 色五月婷婷成人视频| 激情小说视频图片| 婷婷综合久久| 亚洲视频99| 九热视频在线精品15| 五月色综合网| 色播五月丁香综合| 欧美黄色韩日网| WWW色色色COM| 亚洲色情在线| 日韩AV一区二区三区| 都市激情小说婷婷| www.久久色.com| 99日这里只有精品| 91碰碰碰久久久久| 夜夜骑天天操| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 五月叮香啪| 色婷婷播放| 日日日影院| 激情综合色五月丁香| 天天成人五月天| 日韩精品AV一区二区三区| 久久婷婷成人视频| 99色爱| 亚洲精品性色| 伊人五月天久久| 99热都是精品| 激情久久久久久| 亚洲成人综合在线| 五月天亚洲最大成人| 99精品在线观看| 日日夜夜青青草| 日本4399天堂中出| 99色网站| 色婷婷影院| 色狠狠综合| 丁香五月婷婷成人色区| 久久久色情| 五月色导航| 久777| 婷婷日日夜夜| 伊人久久婷| 婷婷五月激情中文字幕| 1995年关宝慧版蜘蛛女| 2022人人操人人看| 天天干天天插| www,婷婷| 丁香花色色网| 在线18av | 色婷婷五月视频| 久99在线视频| 噼里啪啦完整版中文在线观看 | 99啪啪网| 99色综合| 色五月婷婷五月| 色五月琪琪| AA片在线观看视频在线播放| 直接看的AV| 丁香色六月婷婷| 九九无码| 丁香婷婷激情| 丁香六月视频| 98色花堂98t.R| 免费黄色片子| 婷婷性爱五月天| 丁香色色网| 九九婷婷激情综合网| 色五月激情五月开心五月| 色情婷婷| 欧美男女婷婷| 99色视频| 99热精品观看| 99爱视频免费看| 色婷久九| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 久久久91| 丁香影院五月综合| 久草热在线视频| 在热视频精品| 五月婷婷五月丁香综合| 国产亚洲网站在线| 天天日色情| 天天爽天天操| 噜噜噜精品欧美成人在线观看| 久久久久久久8| 荫道BBWBBB高潮潮喷| 99视频激情四射| 六月丁香五月激情网| 26UUU欧美激情一区二区| 国外亚洲成AV人片在线观看| 久久久久久久97| 操射国产日本| 色人五月婷婷| aⅤ79成人片| www久久久久久| 亚洲无AV在线中文字幕| 99精色| 丁香婷婷深情五月亚洲| 色情一区二区播放| 天天噜天天爱| 99热91| 91婷婷在线观看| 婷婷五月激情黄色| JAPANRCEP老熟妇乱子伦视频 | 琪琪秋霞| 久久婷婷五月| 日韩色久| 91久久综合| 青青艹b| 成人.在线日韩| 久色资源| 91精品久久久久久综合五月天| 五月丁香婷婷综合网| 日韩综合大黄| www.五月天婷婷姐姐| 99色视频| www久久久| 五月婷婷综合久久| 婷婷丁香九月| 国产免费一区二区三区三州老师F1F1.CC | 一区二区免费看| 色五月综合激情| 亚洲婷婷婷| .操區COm| 色久在| 成久综合视频| 人妻久久做| 99熟女| 久久婷婷五月天蜜桃| 美女91一起草| 69精品人人人人人人| 婷婷久久爱| 五月婷婷黄色网址| 影音先锋男人av资源站| 在线色婷婷| 丁香五月欧美婷婷| 成人国产网站| www.yw色| 九九九热精品| 色色精品色| 好好干Av| VA国产在线综合网站| 激情五月第四色| 干亚洲天堂| 亚洲视频在线观看99| 蜜乳9188| 色五月婷婷激情五月| 九九爱看亚洲| 五月五婷婷| 狠狠草狠狠草| 婷婷五月综合网| 99热大香蕉| 中文字幕成人| 婷婷97狠狠成人网站| 国产黄大片在线观看画质优化| 欧美三9久九观看| 九九九干精品| 99碰网站| 五月丁香啪啪啪免费看| 天堂婷婷丁香六月网| 久久性爱视频这里只有精品| www.五月丁香| 婷婷五月天激情文学| 开心五月天激情网| 激情五月黄色| 日本丁香久在线| 婷婷视频网| 天天爱天天做天天舔| 米奇影视五月天| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 99热精品网| 97色永久免费视频| 新99思思视频| 激情五月天激情小说| 日韩操逼大片| 亚洲日韩一页精品发布| 99re青青草| 99精品久久久| 99亚洲大片精品永久在线观看| 五月婷视屏在线观看| 99色色| 九月色婷婷| 美女被操一区二区| 亚洲中文字幕AV| 丁香五月综合图片在线观看| 99精品无码| 99色在线视频| 久久九九精彩| 人人干天天操五月丁香| 婷婷五月天视频| 亚洲午夜AV| 99re在线免费视频| 久久杏爱视频| 九九干视频| 免费无码毛片一区二区A片| 久久99草五月婷婷| 亚洲色9| 天天色色天天| 天天干,夜夜爽| av免费在线网站| 精品无码色| 色婷婷丁香五月| 久久er99热精品一区二区| 激情久久综合网| 国产夫妻操逼内射视频| 14色综合婷婷| 天天色中文字幕女优AV| 丁香六月激| 婷婷婷婷婷婷婷五月丁香| 欧美精品999| 99热九九在线| 国产精品蜜臀99| 99综合网| 久久久久久久久久久44| 99热只有国产在线精品| 久久九九免费视频| 六月丁香狠狠爱| 国产美女最新VA在线免费观看| 日韩成人中文字幕| 91av视频在线观看最新网址| 婷婷五月天激情小说网站| 日本久久综合| 91打屁股视频网站| 婷婷开心五月| 亚洲中文AV| 怕怕av| 婷婷的久久网站| 激情婷婷视频在线| 国产资源91在线| 538在线精品| 久热9| 99九九视频| 九 九九九AV| 夜夜天天久久婷婷| 日本99视频| 激情性爱五月天| 99热免费| 婷婷五月天精品| 激情婷婷网| 日本女色人人| 五月婷婷,六月激情| 激情www| 婷婷丁香花五月天| 99riAv1国产在线观看| www.刺激色网站www.| 伊人AV五月婷| 久久久久久婷| 丁香婷婷色情社区成人小说| 欧美十二区| 丁香五月天五码婷婷| 国产精品99久久久久久久女警| 色五月天影视| 丁香六月婷婷综合| 丁香六月婷婷五月天| 五月亭亭六月天| 五月天色图| 五月婷色| 26UUU| 色色色综合| 就要爱综合| 日日夜夜天天综合| site:901-07.com| 99热首页| 无码天天操| 精品亚洲国产成AV人片传媒| 中文字幕 久久9999| 99五月香婷婷丁香在线视频| 天天xxxxxx天天日| 欧美久久久久久久久中文字幕| 日日夜夜婷婷| 色婷婷超碰| 啊V视频在线观看| 99操视频| 亚洲成人在线播放| 激情五月天小说视频| 嫩草免费视频| 日日爽夜夜爽| 超碰99在线| 图片区 小说区 区 亚洲五月| 天干天天干天天天天天| 日操夜操天天操不卡| 亚洲第一第二网站| 欧美性久| 欧洲色| hd五月婷婷在线| 欧美一级a| 婷婷五月天播播| 97碰超级人人看| 亚洲激情婷婷| 丁香婷婷色五月合集| 婷婷五月天丁香久久| 五月丁香激情综合啪啪| 色久婷婷五月| 欧美三级视频| 综激情网| 五月夜丁香| 4438全国最大视频成人网站在线观看| 丁香五月激情啪| 色9色| 日本在线wwww| 可以直接看的AV| 婷婷色五月天综合网| 岛国操B不卡在线| 俺去也五月天婷婷| 可以免费看的av网站| 99久久视频| 99自拍视频| 五月天天爱| 五月丁香成人网| 一本久久婷婷| 久热超碰| 婷婷日日夜夜| 亚洲小视频免费观看| 久久99草五月婷婷| 色色色色色色色色网站| 丁香五月五婷| 蜜乳9188| WWW·色色色·COM| 日本精品人妻无码77777| 99综合| 深爱激情小说五月婷婷| 视频一二区| 疯狂做受XXXX高潮A片| 2017人人操| 九九一综合精品| 97婷婷丁香| 99热 日韩| 综合色色色| 色99在线视频| 久久五月激情网| 99在线视频播放| 激情五月四色| 天天干天天插| 热久国产| 色色色色色网站| 婷婷五月丁香六月伊人网| 婷婷va| 亚洲午夜成人av电影网| 五月婷婷婷婷| 亚洲人成色A777777在线观看| 天天橾日日橾夜夜橾17| 婷婷久久综合| 国产精品美女| 久久亭亭电影| 牛牛热这里只有jingpin| 99re思思热久久| 六月丁香激情| 五月婷婷婷婷网| 亭亭色天香| 婷婷中文字幕| 丁香蜜臀黄色婷婷五月天| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 五月综合色| 在线播放成人网站| 狠狠狠狠狠狠色| 99久久极情精品一区| 丁香婷婷五月六月天| 丁香五月六月久久综合| 99欧州偷拍视频| 色色影院黄大片| 久久九九色| 婷婷丁香激情综合色情| 久热视频A.| av在线免费播放| 激情久久综合| 91狠狠综合久久| 超碰亚洲天堂| 日本色婷婷| 激情网五月婷婷| 婷婷五月天激情综合深爱激情| 激情淫乱男女| 99碰网站| 色色色综合| 日日干天天爽| 久久国产色| 思思re99视频在线观看| 狠狠色噜噜狠狠| 17.c黄色| 日日插日日干| 久热这里只有精品99re| 影音先锋777xfplay色资源网站| 婷婷综合在线观看视频| 深爱激情网噜噜色| 五月婷久久在线| 伍月婷婷六月丁香| 337午夜福利| 五月天婷婷无码视频| 日韩色色视频www| 五月好婷婷| 久久久久久久久人妻| 激情五月天激情小说| 色七七色九九| 五月天婷婷综合| 色天堂在线| 亚洲av综合网| 久久这里只有精品热在99| 伊人99热| 丁香五月手机在线| 99热这里是精品| 久久9热好| 日韩精品呦呦va| 六月丁香婷婷大香蕉| 亚洲综合另类| 超碰在线91| 婷婷另类开心| 久草xx性爱视频| 色五月婷婷亚洲| www.日本91| 99精品视频网站| 免费看欧美成人A片无码 | 五月丁香六月婷婷在线小说视频| 亚洲 无码 中文字幕 中出| 日日操日日爽| 色激情五月| 亚洲激情五月| 日韩在线观看网址| 五月婷婷国产| 亚洲操人| 五月天成人网婷婷| 久久激情五月婷婷| 久色网| 99视频| 欧美日韩精品一区二区三区钱| 激情综合99| 免费国产VA国产免费| xfplayav在线| 九九99香蕉在线视频播放| 精品五月天| 婷婷丁香九色| 狠狠色五月| 久久久久久草黄色片AV在线观看| 久色五月| 香蕉婷婷| 操逼五月婷婷| 97精品自拍| 五月亭亭六月激情| 五月综合在线| JAPANRCEP老熟妇乱子伦视频 | 99热97| 99色嘟嘟精品网站| 久久资源网五月婷| 婷婷成人五月天一区| 五日激情综合| 99色色| 激情四射婷婷色色色| 青青操avbb| www.99热| 亚洲乱码日产精品BD| 2017人人操| 午夜爱爱爱成人| 亚洲色图五月丁香| 亚洲欧洲另类图片| 激情99热| 色婷婷五月天堂资源| 五月丁香婷婷久久| 999热这里只有美国精品| 影音先锋噜一噜| 丁香五月成人在线| 夜夜干夜夜操| 99色.com| 久久婷婷婷婷伊人| 99这里都是精品6| 色原狠狠综合| 日韩av干| 人妻久久久久久久| 亚洲婷婷激情综合激情999精品| 丁香五月天婷婷久久| 激情综合网址| 亚洲影院婷婷色| 色色婷五月天| 色综合久| 97热久久| 日日日日操| 极品人妻VIDEOSSS人妻| 变态另类9| 青青草成人网| 成人久碰| 五月婷成人网| 色五月在线观看| 三级毛片7979| 六月综合在线| 夜色热久| www.狠狠色.com| 99性色| 国产精品成人AV在线| 噜噜色婷婷| 五月婷久久久久综合| www.sd-xiangsu.cpm| 91丨九色丨东北熟女| 日本3级片一区2区| 五月激情婷婷在线| 色狠狠婷婷| 狠色狠色狠色狠色狠色网| www激情| 中文字幕av久久爽一区| 日本色色网站| 色 五月 天 婷婷 丁香 九月| 99爱免费视频| 日韩ww| 狠狠干激情五月| 五月丁香激情综合| 婷婷激情五月吧| 天天日,天天插| 久久视频婷婷视频| 97色婷婷成人综合在线观看| 中文字幕成人影视| 丁香五月婷婷六月丁香| 九九超日本| 色婷婷成人| 久久天堂色| 日韩1区2区| 久热99久热| 日本人人xxx| 一区二区乱视频码| www激情com| 伊人超碰在线| 97热这里只有精品| 五月天丁香婷婷社区| 色五月五月婷婷| WWW·色色色·COM| 国产激情在线| 色噜噜夜夜夜综合网| 99久在线视频| 九九国产视频| 激情丁香五月| 精品婷婷五月天| 国产精品涩涩涩视频网站| 婷婷色播综合五月| 欧美综合五月天婷婷tin| 亚洲色综合性| 婷婷丁香五月天熟女丝袜| 99热亚洲| 丁香六月色婷婷| 丁香五月婷婷六月| 色亚洲中文| 亚洲三级无码| 天天日天天干天天天| 色99免费视频中文| 噜噜色五月| 五月丁香| 国产亚洲成AV人片在线观黄桃| 天天插夜夜爽| 丁香影院五月综合| 67194中文字幕| 婷婷色婷婷| 天天做天天爱天天爽| 五月天全国最大成人网| 婷婷五月另类网站| 久热99热| 五月婷婷伦理| 久久XX日本综合| 激情五月综合婷婷| 久热婷婷| 亚洲欧洲中文日韩久久AV乱码| 99思思热只有在这里看| 91热网址| 91一起操| 停停五月天激情网| 熟女网站久久| a久久| 五月丁香五月婷婷在线观看| www99久久| 久久婷五月天| 99er热精品视频| www.99久| 99riav 亚洲| 亚洲色婷婷| www.激情五月天.com| 婷婷六月偷拍| 五月天激情四射| 久久人妻情侣| 综合久久高清| 国产精品久久久久久久久久久久| 丁香六月婷婷综合欧美| 91超级碰碰碰| 久久精品熟女亚洲AV麻豆| 香蕉视频91| 少妇久久诱惑视频| 久草五月婷婷| www,黄色在线,con| 久久综合中文字幕| 五月婷婷六月爱| 色蜜婷婷| 内射人妻视频国内| 色婷婷五月天成人网| 丁香五月天婷婷久久| 午夜丁香六月婷| 五月天综合网| 天天综合色丁香| 五月天综合区| 99热国产精品| 9999热免费视频视频| 欧美日韩aaa| 激情五月婷婷丁香| 插插插丁香五月婷婷| 色色色色区| 99超超碰| 欧美99| 五月激情婷婷在线| 国产婷婷五月中文字幕高清| 熟女91九色| 99久久97| 婷婷六月天| 色色激情网| 久久五月天色| 丁香五月婷婷六月婷| 亚洲无线视频| 婷婷六月天| 在线看的免费网站| 中文字幕永久在线| 五月天婷婷丁香| 色五月六月婷婷| 激情综合自拍五月婷婷色五月| 超碰99热精品| a毛片二逼wwwwwwwwww| 丁香五月成人| 亚洲黄色影视| 日日夜夜干| 99免费视频网| 天天干-天天日| site:pzdcoin.com| 日本色天堂| 丁香五月综合无码趴趴| 亚洲狠狠终合停停终合| 丁香五月激情综合| 91久久久久久久| 激情第四色| 五月天网站亭亭| 五月婷婷丁香在线视频| 四色 爱 婷婷 精品 亚洲 五月天| 97人人超| yellow视频在线观看91| 国产综合81p| 狠狠色丁香久久综合婷婷亚洲成人福利 | 色婷婷色五月另类综合| 丁香五月另类色婷婷麻豆| 97碰碰电影| 青青色com久久| 99热99日天天干| 色五月婷婷在线观看第一页舔| 五月天综合在线| 激情婷婷五月天| 色色色色色色色色综合网| 玖玖无码中文| 五月停停色色丁香| 色七七九九| 99国产精品久久久久久久久久久| 天天爽天天摸天天爱| 婷婷五月天伊人| 婷婷爱五月天| 色婷婷亚洲五月天| 亚洲视色| 另类小说激情五月天| 色五月女| 99热首页| 久操97| 五月丁香成人| 99视频久久| 久操人妻| 婷婷天天色| 久久九色| 97精品人人A片免费看| 亚洲精品久久久久AV无码| 亚洲无AV在线中文字幕| 午夜性做爰电影| 风流少妇A片一区二区蜜桃| 欧美性猛交 XXXX 乱大交| 中文字幕日产A片在线看| 黑人糟蹋人妻HD中文字幕| 夜精品无码A片一区二区蜜桃| 成人做爰高潮A片免费视频| 五月日韩中文字幕| 亚洲精级| 美国天天操无码| 婷婷综合97| 色色五月天婷婷| 99久久黄色顶级视频| 丁香成人综合| www色五月天| www婷婷| 成人AV在线网站| 99色天堂| 天天日天天久久青青| 激情婷婷护士激情| 97碰碰在线观看视频| 五月婷婷丁香| 2025中文在线视频字幕免费观看| 色婷婷五月天激情综合| 成人超碰AV| 丁香五月婷婷操逼| 91丨九色丨国产打屁股| 天天干天天爽| www.sezonghe| 天天干,天天舔| 色一情一乱一乱一区9| 免费观看全黄做爰的视频 | site:hcxsz888.com| sewuyuetingtingiii| 江苏少妇性BBB搡BBB爽爽爽| 色婷婷狠狠18禁| 五月六月婷婷| 婷婷五月AA五月在线| 九九操操| 久久视频婷婷| 久草婷| 国产精品第一国产精品| 五月丁香六月综合激情 | 国产真人做爰视频免费| 人妻熟妇国产精品| 五月婷婷开心网| 五月婷婷开心综合| 呦呦v线| 可以免费看av网站| AV电影在线播放| 91九色精品| 综合色视频| 日韩欧美成人网| A片试看120分钟做受图片| 丁香成人五月天| 伊人久久大香线蕉av最新| 五月天播播| 色色色色色色色色综合网| 99精品在线下载| 欧洲激情五月天| ji'qing'luan'ren'lun| 深爱 五月天| 人人玩人人橾| 五月开心婷婷极品激情| 超碰chaompinm| 超碰人人超碰| 99在线视频资源| 九九热re99re6在线精品| 哇嘎成人久久| 99视频91| www.久久久久久| av激情在线| 69久久99精品久久久久| 色色婷婷婷丁香五月天| 色综合av超碰| 久久久久久久久久久44| 极品九九九九九九| 超碰在线中文字幕| 免费黄色AV| 狼人狠狠操| 亚洲激情av| 97在线视频观看| 天天综合色丁香| 五月综合激情图片| 五月婷婷激情69| 色狠狠色综合| 婷婷六月综合激情| 国产激情在线| 97超碰综合| 五月天丁香| 国产欧美精品AAAAAA片| 亚洲狠狠爱婷婷| 亚洲图色五月天| 久热超碰91| 91狠狠色丁香婷婷综合久久精品| 天天摸.天天mo| 能看的AV网站| 亚亚州久久高潮| 五夜丁香| 日本色色色| 欧美性生交XXXXX无码小说| 免费视频1区| 六月婷婷网| WWW.天天日| 色婷婷丁香AV综合| 天天做天天爱天天爽综合网| 色欲影香| 中文字幕在线日亚州9| 丁香五月狠狠在线观看| 人人超碰99| 久久97| 亚洲九九99精品视频在线播放| 天天日综合| 亚洲色网址| 99热人人艹| 五月丁香成人| 丁香五月婷婷成人色区| 一级黄色尤物综合视频手机在线观看| 久久激情天堂| 禁欲电影完整版在线播放| 色五月婷婷91在线| 五月丁香综合| 国产精品视频久久99| 五月丁香欧美综合| 少妇性按摩无码中文A片| 91趴趴| 天天弄天天爽| 五月丁香婷婷六月| 亭亭玉月丁香| 五月婷视频在线观看| 色色五月天激情| 亚洲激情精品| 99热精品无码| 九九综合88| 五月丁色AV| 久婷五月| 秋霞AV吧| 草草视频91| www.五月.com| 久久99热这里只频精品6学生| 人人97操| 色婷婷丁香五月天在线视频| 五月激情小说| 久久艹 五月天| 欧美一级色| 天天综合在线网| 五月婷婷六月色| 99久久精彩视频| 日韩AAA| 大香蕉AV在线| 免费成片在线观看| 亚洲AAA| 夜夜操天天干| 97碰碰电影| 99精品在线下载| 婷婷五月丁香五月| 热99精品视频| 亚洲第一色区| 禁片二区| 一本色道久久88加勒比—| 久香草视频在线观看| 99精品视频网| 六月婷婷色色色| 色女伊人| 爱99干99| sisi热国产| 五月丁香啪| 久久9精品视频| 天天狠天天叉| 99热热热天天人人人超超碰| 色色热99| 人人叉久| 久久亚洲婷婷| 99爱视频| www九九热| 久久亚洲无码| 青草青草久9视频在线视频| 婷婷成人综合五月| 亚洲激情综合| ay2区| 久99热| 亚洲av网站| 五月丁香琪琪| 无码髙清| 99热综合网| 久热天堂| 丁香五月婷婷在线观看| 99在线资源视频| 五月丁香婷婷激情| 欧美搡BBBBB摔BBBBB| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 天天天干夜夜夜操| 99九九精品| 色综合久久久久| 丁香五月婷婷啪啪啪| 综合色色网| 天天色播| 青草五月天| 激情丁香久久| 99久在线精品99re8热| 五月丁香啪啪| 激情五月天色播| 欧美色色色色色色色色色色影视| 五月天丁香| 天天草婷婷五月| 夜夜嗨一区二区三区直播内容| 秋霞影音91人妻久久|