免费国产精品自在自线-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
返回資訊列表
婷婷AV丁香| 丁香五月天综合| 国产三级在线播放| 狠狠干狠狠色| 五月丁香啪啪网| 五月丁香激情综合六月涩涩爱| 丁香五月婷婷少妇| 雪千夏麻豆| 99久在线精品| 色五月综合资源推荐| 五月开心婷婷网| 月丁香久久久| 婷婷热色| 日本人人超碰| 精品国产AV色一区二区深夜久久| 九月丁香婷婷| 亚洲综合婷婷| 激情婷婷五月| 97干欧美| 久碰婷婷视频| 色欲婷婷五月天丁香| 色六月天| 九九热这里只有精品12| 色五月天综合| 先锋资源996| 黄网网站在线播放| 美女网黄| www九九| 伊综合蕉| 丁香五月婷婷综合激情啪啪啪啪啪啪啪 | 综合久久婷婷| 五月丁香六月色| 丁香色色五月| 91超级碰人人操| 亚洲熟妇AV乱码在线观看| 九久9精品| 一级操逼内射在线视频| 99精品福利视频| 日日夜夜狠狠婷婷色| 亚州操操| 婷婷无码视频| 91干| 五月婷婷偷| 美女网黄| 天天操天天日天天爱| 欧美天堂久久| 欧美99| 亚洲精品国产成人AV在线| 91pornav在线| 99re热99| 狠狠操天天操| 五月天婷婷色小说| 丁香五月首页| 五月天激情婷婷久久| 思思99精品视频在线观看| 久久久.COM| 日91高清无玛| av婷婷丁香 六月| 色婷婷电影| 97操碰视频| 99热日| 狠狠色网| 中文字幕AV网址| 丁香9月婷婷| 丁香五月玖玖| 伊人久久大香蕉网| 婷婷丁香77777| 婷婷五月激情的图片| 亚洲小视频免费播放| 国产婷伊人| 六月五月天婷婷涩播在线| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 91啪啪视频| 久久思思热| 超碰99在线观看| 91超级碰| 五月开心久久| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 久久性爱视频这里只有精品| 亚洲操精品| 91九色首页| 国产67194| 国产精品久久久久久喷浆| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 五月天婷婷成人网| 月丁香久久久| 99热在这里只有免费精品| 五月婷婷激情综合拍| 婷婷综合五月天亚洲综合| 99热这里有精品| 久久精典| 9色免费网| 久久婷婷综合网| 激情五月综亚网| 欧美丁香婷婷五月天| 99操逼视频| 婷婷大香蕉| 婷婷五月天综合亚洲| 欧美亚洲成人在线| 五月激情综合五月| caop在线视频| 五月丁香视频色色| 天天日夜夜操五月| 五月丁香色婷婷| 久久精品熟女亚洲AV麻豆| 男人的天堂97| 丁香五月天啪啪激情综和网| 色婷久久| 欧美日本黄色| 日日爽夜夜爽| 9色操| 这里只有精品视频222| tingtingzonghewang| 色五月婷婷九月| 婷婷五月天网| 天天操天天爱天天日| 啪啪六月婷婷| 秋霞av吧| 天天做天天爰天天爽天天无遮挡| 国产无套精品一区二区| 98色花堂98t.R| 五月丁香在线偷拍视频| AV中文在线| 九九久久精品國產| 桃色激情网| 人妻久久久久久| 色色五月天丁香婷婷| 丁香五月六月欧美| 久久综合婷婷激情| 91打屁股免费看| 亚洲无码你懂的| 狠狠草婷婷| 婷婷天堂综合| 51成人| 激情五月www| 超碰在线人妻| 狠狠色噜噜狠狠色噜噜噜999| 婷婷五月激情中文字幕| 国产综合久久久777777| 热99免费在线| 婷婷色在线视频| 久9草在线观看视频| www.av视频xx999.com| 丁香五月天婷婷激情| 久草婷婷在线| 天天操屄网| 人妻熟人中文字幕一区二区| 手机看片日日做夜夜| 天天狠天天叉| 国产成人VA| 丁香婷婷大香蕉| 99久久玖玖| 天天爽天天干| 日本片日本片祼观看网站在线看中文版网页在线看 | 能看的av| 去干网最新版本亚洲版| 91九九热| 欧美成人精品A片免费一区99| 九九热内射| A色色| 不卡的AV网站| 99视频激情四射| 久久天堂精品| 色综合九九| 丁香蜜臀黄色婷婷五月天| 9热精品| 色久影院| 亚洲色五月| 五月丁香啪啪激情| 五月天色站| 五月婷婷丁香五月婷婷丁香| 五月丁香婷婷色| 激情综合五月婷婷| 日日夜夜小色哥| 中文字幕人妻AV| 天天操天天曰| 婷婷成人网五月天| 婷婷不卡基地| 五月婷婷久久久| 色色色色色热| 成人色五月天婷婷| 婷婷香蕉香| 色婷婷基地在线| 97人人操在线| 久久这有这里精品| wwww.9免费视频| 五月成人综合| 五月99久久| z色五月播播久久| 久久99jiu9| 五月丁香六月婷婷在线| 久久婷婷六月综合综合| 九九热最新| 国产成人AV在线播放| 亚洲一区国产传媒| 色狠狠色噜噜AV天堂五区| 夜夜骑日日夜夜| 偷拍九九热| 五月丁香香蕉| 91婷婷五月天综合视频| 69久久99精品久久久久| 一本色道久久88综合日韩精品| 6080av| 久久婷鲁| www.色婷婷| 婷婷成人五月天一区| 综合99视频| 九色地址91视频| 亚洲婷婷91丁香| 婷婷射综合| 97碰啪啪| 国产探花AV在线| 婷婷五月天激情综合深爱| 欧美成人猛片AAAAAAA| 天天做天天爱| 婷婷狠狠五月综合| 婷婷,五月天,丁香,第一| 国产熟妇的荡欲午夜视频| 久久丁香五月婷| 日韩无码专区| 中文字幕无码成人电影| 最新无码专区| 婷婷五月天影院| 99热这里有精品2| 日韩黄色电影| 视频一区二区在线| 狠狠干综合| 欧洲亚洲精品| 天天夜夜操| 999久久久国产精品| 狠狠色综合网| 日韩操人| 色色网站在线| 五月婷婷与六月丁香图片激情| 色婷婷4| 午夜成人综合| 亚洲视频无| 日本九九九九| 51国精产品自偷自偷综合| 婷婷精品综合| 六月天六月婷| 婷婷五月俺要去| 五月婷婷久久大香蕉| 国产亚洲AV人片在线| 婷婷久久综合| 91狠狠色丁香婷婷综合久久精品| 四虎成人精品永久免费AV九九| 天天插天天| 在线观看熟女少妇| 欧美A级网站| 天天综合91入口| 思思久久99热只有频精品66| 日本色婷婷| 一区二区免费看| 亚洲人成人五月天| 五月婷婷综合在线观看| 婷婷五月深爱五月| 99愛国产| 五月天久久综合| 久久婷婷六月综合| 色色色色热| 久久这里99| www.狠狠狠狠| 思思久久96热在精品国产,| 久久97| 五月婷婷影视| 一起操 91N.com| 欧美精品狠狠色丁香婷婷| 99热这里有精品| 五月丁香激情综合| 亚洲va成人va成人va在线观看| 九九99免费视频| 亚洲av骚货| 婷婷五月深深爱| 99热成人在线观看| 中文成人在线| 色色色色网站| 天天干天天干天天| av首页在线| 激情五月天婷婷播播久久综合91| 五月天婷婷无码| www久久久久久| 日本乱论99| 秋霞日本免费毛片A片| 97碰碰视频| 亚洲狠狠婷婷| 欧美va精品va老师va| 五月丁香| 日日夜夜狠狠干| 色婷视频| 婷婷五月电影院| 超碰免费在线| 婷婷91视频| 色婷婷综合久久| 99丁香五月| 色色综合院| 九月婷婷色色| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 五月婷婷啪啪| 丁香婷婷基地| 香蕉99网| 五月色情婷婷| 日本五月婷婷| 天天综合色| 日本少妇裸体做爰高潮片| 日韩二区搞逼插逼毛片| 久久性刺激| a色色色色色| 五月天婷婷色播| 99色 | 91亚洲视频| 色九九综合热99| 亚洲第一色网站| 婷婷丁香激情| 久久人人妻| 色青青电影色五月| 激情丁香婷婷| 亚洲精品大片| 图片区 小说区 区 亚洲五月 | www.玖玖婷婷在线| 伍月婷丁香婷| 69精品人人人人| 一二线视频 另类| 婷婷亚洲久久| 色99综合视频| 97人人干人人操| 亚洲永远av在线播放| 久久婷婷色综合| AA片在线观看视频在线播放| 午夜不卡久久精品无码免费| 丁香五月天婷婷91| 天天操天天日天天爱| 丁香五月天在线观看视频| 久久99热只有精品| 亚洲婷婷成人五月天| 丁香五月天的网址。| 激情五月丁香五月| 午夜丁香婷婷| 91九九热| 亚洲超碰在线| 91九九九色在| 国产精品人妻在线网址| 精品视频这里只有精品| 99色最新在线视频网站| 亚洲精品亚洲人成人网| 激情内射人妻1区2区3区| 婷婷丁香五月社区亚洲| 丁香五月婷婷基地| 99.色| 天天做天天爱天天爽综合网| 久久伊人大香蕉| 婷婷丁香五月天综合激情| 婷婷激情五月天激情小说| 久综合| 丁香无五月网| 播五月,色五月,开心五月播放器 | 欧美天天综合网站上去吧| 夜丁香五月婷婷| www.yw色| 色99色| 欧美日韩成人| 成人片在线免费看| 99热这是里只有精品| 99热这里只有免费精品| 亚洲va综合va国产va中文| 99操不停| 五月丁香婷婷国产精品综合| 中文字幕,综合,91| 99热9| 五月天怕怕| 五月婷婷色播视频| 99re这里只有| 97人人妻人人艹| 欧美日韩99| 五月天伊人手机在线播放AV| 久久九九综合| 色吧五月婷婷| 91人操| 五月丁香伊人网| 五月久久婷婷| 98热精品| 婷婷五月天激情小说网站| 日韩在线观看亚洲| 色色9 9| 青青夜夜狠狠夜夜狠狠| 丁香五月色色| 国产小网站| 久久久久99精品成人片| 九九在线视频| Av九九| 亚洲丁香五月天视频| 免费看欧美成人A片无码| 91热视频色网站| 天天综合天天玩夜夜玩天天玩夜夜玩| 亚洲综合99| 国产一区18| 狠狠久综合| 亚洲精品字幕在线观看| www.狠狠| 五月天婷婷网站888| 九九综合色综合| 99热99在线精品| 丁香五月天婷婷在线视频| 99干视频| 五月天婷婷綜合院| 99九九热视频| aaa9区免费在线观看| 丁香六月成人网| 噜噜视频| 婷婷六月激情综合| 手机AVAV天堂看网| 国产69久久久欧美黑人A片 | 九九色人| 99热主页日本| 色欲丁香| 99色婷婷视频| 亚洲激情四射| 夜夜躁爽日日| 开心久久爱五月天| 国产AV一区二区三区最新精品| 狠狠色婷婷| aa久久| 99热欧美偷拍| 丁香五月情| 色色五月天丁香| 99超级碰碰| 欧美网站视频4399| 婷婷五月综合啪| 久热久操久热久草国产91| 婷婷操婷婷干婷婷射| 青青草99re| 五月天精品综合| 九九热123| 综合五月天天天天天五月| 乱精品一区字幕二区| wWw色五月| 99热这里都是精品| 五月丁香六月欧美| 日韩美一级毛卡片| 成人电影AV在线观看| 夜夜大香蕉婷婷丁香| 丁香六月天AV| www.九月婷婷丁香.com| 精品成人在线| www.激情五月| 色狠狠综合网| 狠狠干婷婷| 米奇影视资源婷婷狠狠色激情欧美五月丁香| 色射7856五月天激情四射| 欧美日本日韩| 色爱综合网| 久9久成人精品视频| 色色色色色综合| 超碰女人天堂| 无码激情AAAAA片-区区| 思思热久久久在线| 99九九玖玖| 国产无套精品一区二区| 婷婷五月精品在线| 蜜臀av粉嫩av懂色av| 婷婷亚洲综合| 九九激情综合| 色色色婷| 综合99综合久久久久久久| 五月丁香五月天现场视频| www.狠狠色.com| 亚州精品色情无码A片| 欧美成人日韩| 99WWW免费视频| 色吊丝99| 久久综合播放| 91精品久久久久久久久久久久| 婷婷丁香六月天激情四射网| 97久久婷婷色| 欧美日韩色色| AV在线二十六页| 婷婷综合国产| 99热一本| 97九色视频| 五月天激情综合网| 六月婷婷综合久久| 五月丁香| 国产精品久久久久久亚洲毛片| 丁香六月婷婷久久综合| 91婷婷| 色色色综合| 国产又爽又猛又粗的视频A片| 精品婷婷| 北条麻妃九九九国产精品视频| 人妻丰满精品一区二区A片| 国产肥白大熟妇BBBB视频| 婷婷99中文字幕| 色婷婷久久| 日本久久天堂| 日韩乱轮AV| 特黄三级又爽又粗又大| 日本黄色在线观看| 五月丁香婷婷无码中文| 人妻操在线看| 色婷婷色99国产综合精品| 久久婷婷五月综合| 99热只有| 日本久久9| 亚洲AV第二区国产精品| 久久久久久久五月婷婷六月丁香综合,开心激情综合网 | 色五月婷婷丁香五月| 天天操天天操天天操天天操天天操 | 97久久久免费福利网址| 九九热AV| 开心五月深爱五月婷| 色婷婷五月天天天干天天操天天爽| 亚洲色色香蕉| 91日本在线观看| 色色色热| 五月丁香成人| 超碰猛烈的性猛交| 天天操夜夜玩!| 五月天啪啪| 在线看黄色| 亚洲成人av在线观看| 桃色五月天| 91久久99久久91熟女精品| 五月天综合视频| 99热精品一区| 丁香婷五月| 久久AAAA片一区二区| 五月婷婷丁香啪啪| 97爱综合| 伊人久久大香线蕉亚洲五月天,| 天天插天天射| 欧美电影在线播放| 熟女人妻一区二区三区免费看| 婷婷五月天激情四射| 色综久久久| 91丁香婷婷综合资源| 色五月丁香五月五月婷婷| 精品A√| 久草天堂| 久久aaaaa| 99在线精品视频免费| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 色情五月综合婷婷| 91久久综合亚洲鲁鲁五月天| 91超级碰在线| 婷婷色五月激情| 91精品婷婷国产综合久久| 综合性爱网| 亚洲AVDVD| 婷婷综合色网| 激情久久肏屄视频| 五月婷婷啪| 久99久在线| 噜噜噜噜噜久| 亚洲avjiujiur91| 激情综合网,婷婷| 天天狠狠插| 五月天性色| 99久久精品视频女神1| 丁香五月天BBw| 婷婷五月色网| 老司机日日夜夜青草| 日日色综合| 色噜噜狠狠色综| 亚洲九九夜夜| 99热成人精品| 99热这里只有精品 搜| 好激情在线综合网| 丁香五月综合激情性爱| 99综合网| 国产精品人成A片一区二区| 色135综合网| 色色五月天 亚洲| 玖玖综合玖玖| 九热...av| 婷婷丁香射射| 久久这里只有精品16| 五月天激情AV| 97中文在线| 开心婷婷五月| av不卡网站| 亚洲AV成人无码电影| 超级碰碰碰91| 国产激情综合五月| 深爱激情网综合| 欧美va在线观看| 久久久久久综合88| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品| 1024在线一区| 91热网址| 亚洲第一色网站| 色丁香五月综合网| 五月婷婷基地| 色婷丁香91| 夜夜爱影院| 深爱丁香网| 日夜夜久久| 99综合| 国产精产国品一二三在观看| 色色色色色色五月婷婷| 亚洲综合网区| 深爱五月天| 综合五月婷婷| 人人搡人人| 国产噜一噜天天噜| 婷婷狠狠干| 欧美成人精品A片免费一区99| 国产亚洲AV人片在线| 婷婷在线综合| 97狠狠碰| 亚洲色婷婷婷婷人人爽| 国产精品国产| 人妻久久久久久久久久| 99久久er| 操一区| 丁香五月在线伊人| 啪啪一区| 超碰免费电影| 人人天堂操| 超碰成人av| 天久综合91综合首页| 亚洲午夜视频| 2025年最新亚洲在线欧美| 人人草人人爱| 五月婷婷综合影院| 夜夜操天天爽| 久久er99热精品一区二区| 九九色之九九色88| 99热99热不卡| 欧美交换配乱吟粗大25P| 青996青| 天天操夜夜爱| 亚洲亚洲人成综合网络| 日日噜狠狠| 五月天色丁香| 丁香婷婷浪潮AV久久综合| AV色五月婷婷| 狠狠爱婷婷| 久综合九综合99| 亚洲美女婷婷五月天| 久久精品五月天| 九九热内射| 人妻操逼| 丁香五月在线| 五月丁香综合啪啪| 久久92| AV网址大全在| 亚洲XX日本| 九九色婷婷| 五月综合激情| 夜夜撸日日操| 色噜噜五月天| 99热精品免费| 99re青青草| 激情五月狠狠| 色久一| 五月久久丁香| 日韩青青| 狠狠色综合五月| 五月伊人91| 99精品视频在线| 色色色综合| 丁香婷婷精品视频| 天天干天天拍| 婷婷五月情色| 精品影院| 99秘 在线| 午夜天天精品视频| 天天射天天射一道本日本社区| 人妻少妇色综合| 秋霞黄色一级久久| 国产肥白大熟妇BBBB视频| www.夜夜操.con| 丁香激情五月天| 亚洲小视频免费看| 99九九久久| 狠狠色激情在线| 被男人添B超爽视频| 婷婷五月天无码视频| 这里只有精品久久| 婷婷综合五月色播| 中文字幕人妻一区二区| 2025色婷婷| 九色亚洲| 色五月涩涩婷婷| 操逼六区| 婷婷金品综合视频| 日韩一区二区三区无码| 婷婷五月天VI| 天天摸天天做天天爱天天爽| 亚洲色人妻| 俺去也五月| 激情婷婷人妻| 久久九九Com| 五月丁香六月婷婷在线| 碰超99| 色五月天综合网| 婷婷六月综合在线| 婷婷干| 日韩色五月| 天天日天天舔天天摸| 丁香啪啪| 色五月丁香五月婷婷五月成人网 | 天天干 夜夜爽| 婷婷 伊人 久久| 婷婷五月婷婷| 色综合色色色色色色综合| 日韩AV大全| www久久艹| 欧美99| 美女美女美女三级色天天天天天| 丁香五月综合激情啪啪| www.激情五月| 天天精品视频在线观看视频| www,色综合| 天天爽天天日| 亚洲综合婷婷六月丁香五月| 色天堂在线| 久久久久9| www五月天com| 天天噜天天插| 日韩人人操| 五月丁香| 丁香婷婷中文字幕| 婷婷色五月丁香六月欧美啪| 日韩性爱AV| 色婷婷www| 九九爱看亚洲| 丁香五月激情棕合| 国产91资源在线| caop在线| 国产精品国产VA片国产| 色碰碰| 强辱丰满人妻HD中文字幕| 99热精品在这里| 888精品福利地址| 免费看片在线观看| 亚洲综合五月天婷婷丁香| 五月丁香六月欧美综合网站| 丁香六月天婷婷在线| 五月丁香趴趴| 97啪在线观看视频| 熟女激情五月天| 色婷婷狠狠18| 五月婷婷 六月丁香| 91丨九色丨熟女丰满| 综合福利网| 久久只有18视频| 精品99在线观看| 99热精品一区| 99久久婷婷国产综合精品青桔| 婷婷9月天| 荡乳尤物3HP1V5| 97资源碰碰| 5月丁香啪啪啪| www。五月天。com| 五月丁香六月久久| 97人操人免费视频| 最新婷婷五月丁香| 中文字幕网伦射乱中文| 亚洲色另类| 久久3p| 久久久精品人妻| 99re这里有精品手机在线| 91精品丝袜久久久久久| 2015WWW永久免费观看播放| 猫咪伊人AV| 丁香五月精品| 激情99。| 综合婷婷六月| 入口五月婷婷六月香| 色在线99| 日韩AV中文字幕在线| 91狼友视频在线观看| 国产精品国产成人国产三级| 深爱婷婷网| 婷婷六月综合基地| 丁香婷婷深情五月亚洲| 五月情涩综合婷婷| 五月激情网综合| 超碰AAAAAAV| 这里只有精品热| WWW,五月天| 青青.com| 天天激情5月天亚洲| 天堂资源欧日浪女在线播放| 丁香色成人| 五月天综合久久丁香91| 99热热热国产超碰| 99精品97| 婷婷爱爱蜜臀天天操| 五月天婷婷丁香花| 国精产品一区二区三区| 五月丁香婷婷综合视频| 精品久久婷婷| 蜜桃婷婷狠狠久久| 超碰九九热| 日本3级片偷拍网站| 99在线视频播放| 狼人久草| 天天久久66xxx| 亚洲激情亚洲激情| 玖玖在线资源视频| 五月天婷婷乱| 99热777| 99青青草| 丁香五月婷婷五月| 婷婷五月天综合久久| 色五月五月婷婷| 99爱在线精品视频免费观看| 天天综合精品| 五月花婷婷| 色五月婷婷777| 丁香婷婷五月综合欧美另类| 亚州精品成人片| 秋霞A V毛片| 五月婷婷色色色| 亚洲成人免费电影| 婷婷五月花| 九九成人电影婷婷| www.玖玖婷婷在线| 五月丁香自拍| 激情五月婷黄版| 内射激情在线| 婷婷日日夜夜| 久久久婷婷五月亚洲97号色| 四色五月婷婷| 午夜天堂一区人妻| 9l久久久视频| 爆乳熟妇一区二区三区爆乳照片| 国产成人网址| 五月丁香啪啪激情| 中文不卡一二三区| 亚洲色网址| 婷婷五月天综合网| 亚洲国产精品SUV| 碰超在线九色| 粉嫩av懂色av蜜臀av熟妇| 五月丁香婷婷福利| 色婷五月天综合网| 99re思思| 激情 婷婷 丁香五月天| 97色在线观看视频| av国产精品| 国产精品A片在线| 婷婷色五月激情| 色五月 激情婷婷 综合五月天| 日韩十国产极品久久| 婷婷五月激情欧美| 成人做爰A片免费看视频| 婷婷黄色网| 亚洲综合激情五月久久| 人人看人人摸人人| 成人av播放| 激情小说色五月| 2017狠狠干| 五月丁香综合伦理片| 99啪啪网| 久在线88综合| 99WWW免费视频| 亚洲婷婷婷| 婷婷色九月| 2025超碰| 开心婷婷中文字慕| 丁香六月激情国产| 日本九九九九| 久久久婷丁香五月天激情综合| 99热这里只有精品国产免费| 狠狠插狠狠插| 成人超碰网| 九九99九九99偷拍视频免费看| 99色视频在线观看| 五月婷六月| 九九精品碰| 操人妻90p| 久草五月婷婷| 七七色综合| 日韩一区二区在线播放| 久久99久久99精品免观看粉嫩| 大地资源色婷婷视频在线| AV动漫不卡无码免费| 五月婷婷人妻| 欧美人与性动交CCOO| 狠狠色丁香久久婷婷综合五月| 无码激情精品色婷婷久久久久| 99在线视频资源| 碰碰碰97国产| 五月婷伊人| 久久婷婷亚洲| 超碰chaompinm| 丁香五月黄色| 五月婷丁香亚洲| 五月激情综合网| 国产熟女一区二区三区五月婷| 99热99热不卡| 99热在线观看| 婷婷激情五月天7| 五月丁香色综合| 亚洲精品九九| 激情小说之五月| 91碰碰碰| 另类在线| 婷婷五月丁香91| 五月婷婷亚洲综合在线 | 婷婷激情五月天激情小说| 婷婷丁香射射| 色五月天电影| 久久婷婷五月综合网| 丁香五月婷婷激情视频播放| 精品久热| 五月久久五月激情| 婷婷五月无码| 色婷婷欧美| 99热色精品| 亚洲AV成人无码电影| 亚洲bt丁香五月天婷婷激情小说| 91在线操逼视频| 亚洲五月婷婷在线| 99久久网站| 色五月婷婷天天干| 思思热视频| 97碰免费视频在线| 99精品在线播放| 超碰免费99| 五月丁香自拍| 五月丁香好婷婷A片网| 色五月五月天色婷婷色五月| 另类图片五月天激情| 夜夜操天天干| 丁香色影院| 五月天激情啪啪| 久久99看免费| 国产精品国产| 99九九在线| 九九热AV| 色五月婷色彩免播放器| 丁香五月电影| 天天插天天日天天爽| 日本熟妇乱妇熟色A片蜜桃| 国产欧美婷婷五月| 少妇水多A片太爽了| 久久婷婷五月激情网站| 日日干四虎| 人人视频色| 亚洲天堂AV综合网| 综合五月婷婷| 91久久综合亚洲鲁鲁五月天| 综合啪啪| 色色网站在线免费观看视频| 超碰v| 色色亚卅| 日本97久久久精品| 9|无码久久久久久| 五月婷俺去也| AV大片在线播放| 日本社区五月天激情| 9有码中文| 99爱视频在线观看这里只有精品| 激情五月深爱五月观看| 91男同视频| 日韩在线aaa| 99久久偷拍视频| 中文资源在线a| 狠狠舔| 91无码一起草| 99∨VTV| 久久色区| 亚洲综合网在线| 免费在线观看欧美激情xx小视频| 激情六月丁香| 中字幕视频在线永久在线观看免费| 99在线视频。| 思思99久久| 99re99热| 色婷婷狠狠18yy| 九九99免费视频| 五月婷婷久久开心网| 91热久| 在线日韩视频| 色丁香久综合在线久综合在线观看| 色五月天丁香婷婷色| 思思热在线播放| 69色色视频| 丁香五月91| 97在线观视频免费观看| 婷婷五月天视频| 夜夜爽天天| 丁香六月青青草| 婷婷伊人綜合中文字幕小说| 欧美天天性| 99re视频在线播放| 无码少妇高潮喷水A片免费| 91无码高清| 午夜青草资源| 丁香五月色网| 婷婷无五月无码视频| 色99热| 国产精品成人av在线观看春天| 成人电影在线免费试看| 亚洲精品白浆高清久久久久久| 九九热在线视频| 狠狠五月天婷婷| 夜夜大香蕉婷婷丁香| 成人美女网| 五月婷婷69| 超碰五月婷婷五月天| 久久综合九九| 久久丁香五月| 六月婷五月丁香| 天天摸天天肏| 欧美三级大片AA在线看| 色婷婷亚洲婷婷| 五月婷婷六月丁香| 久久只这里有精品| 婷婷激情小说网| 丁香五月综合久久| 国产精品日本一区二区在线播放| 婷婷五月丁香综合| 丁香五月色欲| 色狠狠六月| 色综合久久久久| 午夜婷婷久久| 亚洲av| 日日操天天操| www久久久久久久97| 互月天综合| 久久五月丁香伊人青草| 久久久.COM| 五月激情综合网婷婷| 九九色色| 亚洲色碰| 亚洲无码11| 久久婷婷综合五月趴| 五月噜噜| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 99热这里只有精品最新网址| 日日操夜夜爽天天天| 91AV婷婷| 久久丁香社| 婷婷九月丁香中文| 亚洲日韩一页精品发布| 可以免费观看的av| 丁香婷婷基地| 五月激情婷婷丁香| 五月天丁香综合久久国产| 女高怪谈在线观看| 蜜乳中文字| 天堂婷婷丁香六月网| 婷婷六月网| 第四色色六月色综合| 看婷婷五月天网| 色五月色五天色情网| 国产婷婷综合| 91日日日| 97碰碰电影| 色青五月天| 丁香婷婷五月人体| 日韩精品99久久| www热久久yy9| 五月丁香AV在线| va亚洲中文在线| 国产一级婬片毛片| 五月天激情婷婷丁香| 婷婷深爱五月天在线| 色综合色欲综合天天免费| 婷五月天天| 国产日韩欧美性生活| 五月丁香激情五月天| 国产日批视频免费播放| 激情婷婷五六月天| peg 2区三区四区的| 先锋男人99资源| 狠狠狠人妻| 亚洲国产精品综合色区| 天天舔天天摸天天透| 五月天六月婷| 五月天激情小说欧美激情| 色丁香影院| 色婷婷亚洲婷婷| 五月丁香亭亭| 久热综合| 日韩成人免费电影| 色色丁香| 97caop| 日韩啪图| 久久久A级视频| 久婷婷五月综合欧美| 国产精品久久..4399| 天天爱天天做天天日| 色综合xx| 婷婷丁香人妻久久在线观看| 五月丁香婷婷AV| 丁香激情四射| 丁香五月色| 欧美电影在线观看| 手机在线视频观看9| 欧美乱码国产一级A片| 99干在线| 久久xxxx| 99热国产这里只有| 啪啪六月婷婷| 日本3级片一区2区| 五月色丁香| 日本啪啪视频HD| 欧美激情伊人| 色九九综合| 丁香五月激情视频在线| Www.狠狠| 97福利视频| 国产在线aaa片一区二区99| 人妻在线网站| 99久在线精品| 开心五月丁香综合久久| 99在线精品视频免费观看20| 婷婷成人AV| 色狠狠色噜噜AV天堂五区| 亞洲自怕| 丁香五月婷婷黑人妻黄色电影院| 亚洲小视频免费看| 五月婷婷免费看| 久久综合性| 老师高潮流白浆喷水的A片| 色香久久| 欧美色六月婷婷| 天天干天天色综合| 综合色播| 久久久噜噜噜操操操| 久久五月激情| 99热99精品在线观看| 色五月婷婷五月天激情综合| 99色热| 亚洲V国产V欧美V久久久久久| 久99久99精品免| 五月情丁香色| 五月天激情国产综合婷婷婷| 亚洲啪啪视频| 在线你懂的亚洲欧| 色欲香综合网| 天天操夜夜操| 香蕉AV777XXX色综合一区| 大香婷婷| 久久久婷丁香五月| 激情综合网激情五月天| 丁香五月大香蕉在线99| 国产ava| 五月天色婷婷基地| 久操热| 97ai婷婷| 开心激情色婷婷五月天| 亚洲性视频| 日本一级淫| 91蜜桃婷婷狠狠久久综合9色| 人妻自慰高清合集| 激情深爱五月天| 99WWW免费视频| 激情五月婷婷色播网| 色综合激情| 丁香五月天狠狠操| 婷婷日日天天| 成人短视频在线观看| 色婷久| 婷婷精品性性性性性性性| 99热精品无码| 五月丁香黄色| 久播影院免费观看电视剧大全最新网| 另类在线| 色综合色五月| 五月天婷婷丁香导航| AA片在线观看视频在线播放 | 六月激情综合| 日本久久人人| 五月天婷婷丁香六月| 国产真实乱了老女人视频| 97操在线视频| 婷婷的色色五月天| 3p九色在线| 色久五月| www.精品99| 丁香五月婷婷偷拍| 狠色色狠网| 色狠狠婷婷| 99热国产国产| 激情网五月天| 色色五月丁香婷婷| 啪啪啪综合网| 成人操呦av| 99re思思热久久| 噜噜操操| 啪色综合| 青青草Avb在线| 欧州色色| 中文字幕无码AV| 五月婷丁香久久久| 五月天婷婷丁香| 中文字幕婷婷| 91一起艹| 九九99热| 在线观看亚洲视频影院| 色开心五月丁香| 久色婷婷200| 99精品丰满| WWW五月| 久9热插入| 噜噜色婷婷| 婷婷五月丁香性爱| 亚洲天堂aaa| 99热官网| 色婷婷成人在线| 四川BBB搡BBB搡多人乱亂| 丁香婷婷精品视频| 99这里都是精品| 人妻操逼视频。| 91久操| 激情婷婷五月女| 777精品久无码人妻蜜桃| 九九家庭影院| 久久精品99国产精品日本| 五月丁香久久| 亚洲五月婷婷| 6080av| 丁香狠狠干| 99热这里只有精品最新网址| 色吧网综合| 婷婷亚洲综合| 98色花堂98t.R| 五月天激情四射| AV堂狠狠干| 白人荫道BBWBBB大荫道| 亚洲综合色五月| 色婷婷精| 开心激情站| 色婷婷丁香综合中文字幕| 丁香六月五月天| xxxx五月| 熟妇高潮一区av| 天天做 天天爱| Caop在线| 香蕉综合网| 这里只有精品日韩精品| 玖玖婷婷色欲| 亚洲热热视频| 9久精品视频| 久久婷婷影院| 久久五月婷天天干| 91精品国产日韩91久久久久久国模| 强伦轩人妻一区二区电影| 亚洲激情亚洲激情 | 激情五月www| 991精品在线视频| 91久久久久久久久18| 日日射天天射| 99热九九在线| 91九色国产| 六月激情婷婷综合| 国产露脸150部国语对白| 97丁香五月| 久操人妻| 日韩啪啪视频| 深爱激清网| 亚洲思思热久| 激情都市另类| 99色视频| 国产亚洲在线观看| 99久操视频| 婷婷五月天久久久| 79成人网| 激情伊人五月天|