日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

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

MySQL到BigQuery數(shù)據(jù)同步:CDC如何彌補(bǔ)周期同步的漏失 MySQL 到 BigQuery 的數(shù)據(jù)同步最容易被低估的問題就是時(shí)間窗口。無論是定時(shí)導(dǎo)出還是按updated_at增量拉取本質(zhì)上都屬于 periodic syncs。它們的共同點(diǎn)是數(shù)據(jù)庫里的變化并不會(huì)等待調(diào)度任務(wù)開始也不會(huì)按周期整齊地落入邊界。一次刪除、一條字段被改回舊值、一張表在夜間被大批量 UPDATE 后又改回來這些事件都可能發(fā)生在兩批同步任務(wù)的間隙最終 BigQuery 里的數(shù)據(jù)既不是源表的真實(shí)狀態(tài)也不是任何歷史時(shí)刻的真實(shí)狀態(tài)。CDCChange Data Capture通過讀取 MySQL binlog把每一條數(shù)據(jù)變更作為事件流送到 BigQuery正好從機(jī)制上補(bǔ)上了這個(gè)缺口。這篇文章圍繞周期同步會(huì)漏什么、binlog 為什么能避免漏、落地時(shí)要注意什么展開適合正在設(shè)計(jì)數(shù)據(jù)管道、給數(shù)倉接增量數(shù)據(jù)或者被批量任務(wù)數(shù)據(jù)不一致問題困擾的開發(fā)者與數(shù)據(jù)工程師。1. 周期同步在 MySQL 到 BigQuery 場景下到底漏了什么1.1 常見的三種周期同步寫法先看最常用的三種同步方式它們并不只是實(shí)現(xiàn)細(xì)節(jié)不同能捕獲的數(shù)據(jù)變化粒度也完全不同。第一種是全量導(dǎo)出覆蓋。直接把 MySQL 表導(dǎo)出成文件或通過 SQL 拉取寫入 BigQuery 臨時(shí)表再覆蓋目標(biāo)表。這種方式能保證目標(biāo)表最終狀態(tài)一致但同步窗口很長且 BigQuery 做覆蓋時(shí)下游可能讀到一半數(shù)據(jù)。數(shù)據(jù)量一旦上億這個(gè)方案基本不可持續(xù)。第二種是按自增 ID 增量拉取。記錄max(id)每次只拉大于該 ID 的行像這樣SELECT * FROM orders WHERE id :last_max_id ORDER BY id;這個(gè)方案只能捕獲新增數(shù)據(jù)。業(yè)務(wù)表一旦發(fā)生 UPDATE主鍵 ID 不變增量 SQL 永遠(yuǎn)拉不到這一行。DELETE 更不會(huì)出現(xiàn)在結(jié)果里。第三種是按更新時(shí)間戳增量拉取SELECT * FROM orders WHERE updated_at :last_sync_ts;這是目前最常見的周期同步方案前提是業(yè)務(wù)表有updated_at字段并且所有寫入路徑都正確更新這個(gè)字段。實(shí)際項(xiàng)目里這個(gè)前提經(jīng)常被破壞某些批量導(dǎo)入腳本沒有更新updated_at某些框架寫入時(shí)沒有映射該字段于是出現(xiàn)數(shù)據(jù)明明變了增量 SQL 卻查不到的問題。1.2 周期同步一定會(huì)錯(cuò)過的幾類變更物理刪除是最典型的一類。DELETE 之后這條記錄不再存在于表中任何基于當(dāng)前表狀態(tài)的 SELECT 都無法發(fā)現(xiàn)它曾經(jīng)存在過。全量對(duì)拍能發(fā)現(xiàn)問題但只能事后補(bǔ)救而且對(duì)拍本身在大表上成本極高。沒有更新時(shí)間字段或者更新時(shí)沒有寫入時(shí)間戳也是一類。訂單表如果通過第三方系統(tǒng)直接改庫或者 DBA 手工執(zhí)行 UPDATE 時(shí)沒有維護(hù)updated_at那么增量邊界從一開始就是錯(cuò)的。同周期內(nèi)狀態(tài)回跳同樣會(huì)被掩蓋。假設(shè)訂單在 00:00:10 從pending改為paid00:00:20 又改回pending。周期任務(wù)在 01:00 運(yùn)行拉到的最終狀態(tài)還是pending。從業(yè)務(wù)角度看中間那次paid狀態(tài)也曾經(jīng)是真實(shí)數(shù)據(jù)但周期同步完全感知不到。高頻更新更不用說。一張促銷表每秒更新幾千行周期任務(wù)每隔 5 分鐘拉一次單行在周期內(nèi)被反復(fù)更新后最終拉到的只是最后一次值中間所有取值全部丟失。1.3 為什么不是多跑幾次就能解決周期同步的失敗模式是邏輯性漏數(shù)據(jù)不是漏跑任務(wù)。把調(diào)度頻率從小時(shí)改成分鐘只是縮小時(shí)間窗口并沒有改變讀取當(dāng)前表狀態(tài)的本質(zhì)。一張表在周期內(nèi)發(fā)生了 100 次更新周期同步只能看到最后一行binlog 能看到 100 個(gè)事件并且每個(gè)事件都保留前鏡像和后鏡像。這就是原理層面的差異。周期同步試圖通過查詢結(jié)果反推變化而 binlog 是 MySQL 自己記錄的寫操作流水賬。流水賬不會(huì)因?yàn)闃I(yè)務(wù)表沒有updated_at就缺頁也不會(huì)因?yàn)?DELETE 后記錄消失就抹去歷史。1.4 三種方案的能力對(duì)比維度全量快照增量字段輪詢binlog CDC刪除事件全量對(duì)拍后才發(fā)現(xiàn)通常無法發(fā)現(xiàn)每條 DELETE 都有對(duì)應(yīng)事件更新歷史只有最后狀態(tài)只有最后一次變更每次 UPDATE 都有前鏡像和后鏡像對(duì)業(yè)務(wù)表要求無必須有updated_at等字段無binlog 與業(yè)務(wù)表結(jié)構(gòu)獨(dú)立實(shí)時(shí)性取決于調(diào)度周期取決于調(diào)度周期秒級(jí)到分鐘級(jí)可配置對(duì)源庫壓力大全表掃描代價(jià)高中等取決于索引較小讀取日志而不是反復(fù)掃描表從這張表能看出周期同步不是慢而是漏。CDC 的價(jià)值不是讓同步更快而是讓變化過程本身可見。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 會(huì)根據(jù)語句類型自動(dòng)選擇但對(duì)于 CDC 場景依然不夠穩(wěn)定。CDC 要求使用 ROW 格式。ROW 格式下binlog 直接記錄行的變化包括字段級(jí)的前鏡像和后鏡像。具體來說INSERT 事件包含插入后的完整行數(shù)據(jù)。UPDATE 事件包含變更前的整行數(shù)據(jù)和變更后的整行數(shù)據(jù)。DELETE 事件包含刪除前的整行數(shù)據(jù)。這意味著 CDC 消費(fèi)者不僅能知道某張表發(fā)生了變化還能拿到 哪一行的哪個(gè)字段從什么值變成什么值。2.3 CDC 連接器如何消費(fèi) binlogDebezium、Flink CDC 這類工具在原理上會(huì)偽裝成 MySQL 從庫。它們通過 MySQL 的復(fù)制協(xié)議從主庫拉取 binlog并把 binlog 里的二進(jìn)制事件解析成結(jié)構(gòu)化的 JSON 變更事件。連接器需要記錄自己的消費(fèi)位點(diǎn)。傳統(tǒng)方式是記錄 binlog 文件名加偏移量例如mysql-bin.000023的position 45123。更可靠的方式是使用 GTID即全局事務(wù)標(biāo)識(shí)符。GTID 能唯一標(biāo)識(shí)每個(gè)事務(wù)即使 binlog 文件被清理只要 MySQL 實(shí)例保留了完整的事務(wù)歷史連接器也能定位到正確的起點(diǎn)。CDC 連接器通常具備先快照再增量的能力。首次啟動(dòng)時(shí)它會(huì)先讀取一次源表全量數(shù)據(jù)記錄當(dāng)時(shí)的 binlog 位點(diǎn)之后繼續(xù)從該位點(diǎn)消費(fèi)增量從而保證從啟動(dòng)那一刻起不遺漏后續(xù)變更。2.4 從 binlog 到 BigQuery 的完整鏈路一個(gè)常見的生產(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)核心都是從日志讀取變化而不是定時(shí)查詢表。這也決定了后面的環(huán)境準(zhǔn)備、配置、驗(yàn)證和排錯(cuò)方式。3. 前期準(zhǔn)備MySQL、BigQuery 和權(quán)限一項(xiàng)都不能省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ù)賬號(hào)建議單獨(dú)建服務(wù)賬號(hào)避免共用管理員賬號(hào)CDC 工具Debezium 或 Flink CDC版本需要與 MySQL 和 Kafka 版本匹配網(wǎng)絡(luò)源庫與數(shù)倉側(cè)連通私網(wǎng)優(yōu)先公網(wǎng)場景需要做好傳輸加密如果源 MySQL 是云數(shù)據(jù)庫還需要查看云廠商是否允許開啟 binlog 保留策略、是否開放復(fù)制賬號(hào)權(quán)限。有些托管數(shù)據(jù)庫默認(rèn)不開放REPLICATION SLAVE這是接入 CDC 前最容易發(fā)現(xiàn)的阻塞點(diǎn)。注意開啟 binlog 并切換為 ROW 格式后binlog 日志量通常會(huì)變大磁盤占用和復(fù)制延遲都會(huì)上升。生產(chǎn)環(huán)境切換前需要評(píng)估磁盤余量。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 保留時(shí)長 # binlog_expire_logs_seconds 604800每個(gè)參數(shù)的作用server_idMySQL 實(shí)例在復(fù)制拓?fù)渲械奈ㄒ粯?biāo)識(shí)。CDC 客戶端也會(huì)占用一個(gè) server-id不能與主從庫中其他節(jié)點(diǎn)重復(fù)。log_bin開啟 binlog并指定日志文件路徑。binlog_formatROW讓 binlog 記錄行級(jí)變更。CDC 必須使用 ROW 格式。binlog_row_imageFULL讓 UPDATE 事件包含整行前鏡像和后鏡像。如果設(shè)置為 MINIMALbinlog 只包含被修改的字段和主鍵CDC 拿不到完整舊行和新行。expire_logs_days控制 binlog 文件保留天數(shù)。保留太短CDC 位點(diǎn)落后時(shí)可能追不上保留太長磁盤占用過大。常見建議是 3 到 7 天具體要結(jié)合源庫寫入量和磁盤容量調(diào)整。修改配置后需要重啟 MySQL。重啟前確認(rèn)max_allowed_packet等參數(shù)不會(huì)限制大事務(wù)的 binlog 傳輸。3.3 創(chuàng)建 MySQL CDC 賬號(hào)建議為 CDC 單獨(dú)創(chuàng)建一個(gè)賬號(hào)避免使用 rootCREATE USER cdc_user% IDENTIFIED BY strong_password; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO cdc_user%; FLUSH PRIVILEGES;三個(gè)權(quán)限的含義SELECT用于 CDC 工具首次啟動(dòng)時(shí)的全量快照以及讀取表結(jié)構(gòu)信息。REPLICATION SLAVE允許該賬號(hào)通過復(fù)制協(xié)議讀取 binlog這是 CDC 的核心權(quán)限。REPLICATION CLIENT允許執(zhí)行SHOW MASTER STATUS、SHOW BINARY LOG STATUS等命令用于確認(rèn)位點(diǎn)信息。不要把ALL PRIVILEGES都授出去。CDC 賬號(hào)只需要讀取能力不需要寫源庫。3.4 BigQuery 側(cè)準(zhǔn)備BigQuery 側(cè)需要準(zhǔn)備數(shù)據(jù)集、目標(biāo)表和服務(wù)賬號(hào)。在 Google Cloud Console 中先創(chuàng)建數(shù)據(jù)集例如analytics。目標(biāo)表建議在接入 CDC 之前就定義好字段類型盡量與 MySQL 類型對(duì)應(yīng)。如果后續(xù)依賴 BigQuery 自動(dòng)加列容易遇到 schema 不一致導(dǎo)致寫入失敗。服務(wù)賬號(hào)需要授予 BigQuery Data Editor 或更細(xì)粒度的角色。把服務(wù)賬號(hào)的 JSON 密鑰下載到寫入服務(wù)所在機(jī)器并通過環(huán)境變量GOOGLE_APPLICATION_CREDENTIALS指向密鑰文件。BigQuery 是列式存儲(chǔ)目標(biāo)表 schema 在寫入前就要對(duì)齊。CDC 事件字段如果比目標(biāo)表多需要做過濾如果少目標(biāo)表多出的列會(huì)使用默認(rèn)值或 NULL。4. 最小落地鏈路Debezium 捕獲 binlog程序?qū)懭?BigQuery4.1 兩種常用的技術(shù)選型常見方案有兩種方案鏈路適合場景Debezium KafkaMySQL - Debezium - Kafka - 寫入程序 - BigQuery已有 Kafka 基礎(chǔ)設(shè)施需要多消費(fèi)方Flink CDCMySQL - Flink CDC - BigQuery Sink團(tuán)隊(duì)熟悉 Flink希望用 SQL 處理流下面以 Debezium Kafka Python 消費(fèi)者為例把鏈路拆開看。這樣更容易理解每個(gè)環(huán)節(jié)的職責(zé)。Flink CDC 只是把 Debezium 和流處理合并到一個(gè)框架里原理一致。4.2 Debezium connector 的配置Debezium 通過 Kafka Connect 運(yùn)行一個(gè)典型配置如下{ 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 會(huì)占用一個(gè) server-id。它必須與 MySQL 現(xiàn)有主從庫、其他 CDC 實(shí)例的 server-id 不沖突否則連接會(huì)被 MySQL 拒絕。database.include.list/table.include.list限定監(jiān)聽的庫表。只同步需要的表能顯著減少 binlog 解析壓力。database.history.kafka.topicDebezium 用這個(gè) topic 記錄表結(jié)構(gòu)歷史。binlog 里的舊事件在解析時(shí)可能依賴歷史 schema因此這個(gè) 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 時(shí)如果目標(biāo)表要反映刪除必須自己定義刪除策略比如寫入一條帶刪除標(biāo)記的記錄或者通過主鍵 MERGE 刪除目標(biāo)行。4.4 寫入 BigQuery 的示例程序下面是一個(gè)最小 Python 消費(fèi)者示例從 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)這個(gè)示例說明的是思路不是完整生產(chǎn)代碼。insert_rows_json適合小規(guī)模驗(yàn)證生產(chǎn)環(huán)境更推薦使用 BigQuery Storage Write API并配合監(jiān)控、重試和死信隊(duì)列。enable_auto_commitFalse是為了避免消息未成功寫入就提交位點(diǎn)減少丟失風(fēng)險(xiǎn)但代價(jià)是重復(fù)消費(fèi)因此目標(biāo)表必須容忍重復(fù)。4.5 如果團(tuán)隊(duì)已經(jīng)用 Flink可以考慮 Flink CDCFlink CDC 可以把上面的鏈路壓縮成一個(gè) 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 以分片方式并行快照大表不需要像舊版本那樣先對(duì)全表加鎖再讀取對(duì)大表更友好。源表創(chuàng)建后可以再創(chuàng)建 BigQuery Sink 表通過INSERT INTO完成同步。具體 Sink 類名和參數(shù)取決于連接器版本落地前要以當(dāng)前使用的 Flink 和連接器文檔為準(zhǔn)。5. 怎么驗(yàn)證 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 驗(yàn)證 Kafka 收到了哪些變更先用 Kafka 自帶的控制臺(tái)消費(fèi)命令觀察 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;正常情況下消費(fèi)端會(huì)看到op為u和d的兩條事件。這一步直接驗(yàn)證了周期同步最難做到的能力刪除和更新都能被捕獲。5.3 驗(yàn)證 BigQuery 目標(biāo)表觀察 BigQuery 目標(biāo)表是否有新數(shù)據(jù)寫入??梢酝ㄟ^控制臺(tái)查詢也可以執(zhí)行SELECT COUNT(*) FROM my-project.analytics.orders; SELECT MAX(updated_at) FROM my-project.analytics.orders;必須注意一個(gè)容易誤判的地方BigQuery 目標(biāo)表不會(huì)因?yàn)槭盏搅?DELETE 事件就自動(dòng)刪除對(duì)應(yīng)行。如果寫入程序只是把a(bǔ)fter或before以追加方式寫入刪除事件只會(huì)變成一行帶標(biāo)記的數(shù)據(jù)。要真實(shí)反映刪除目標(biāo)表需要按主鍵做 MERGE或者通過分區(qū)覆蓋實(shí)現(xiàn)。驗(yàn)證時(shí)先明確自己的目標(biāo)表語義是追加明細(xì)還是鏡像源表。5.4 延遲監(jiān)控指標(biāo)從 binlog 到 BigQuery 的同步不是一次性的必須持續(xù)監(jiān)控。常見指標(biāo)包括指標(biāo)含義告警建議Kafka consumer lag消費(fèi)程序落后的消息數(shù)持續(xù)增長則告警Debezium 位點(diǎn)與當(dāng)前 binlog 的文件間隔連接器是否在追趕超過 binlog 保留期則高風(fēng)險(xiǎn)端到端延遲事件寫入 MySQL 到進(jìn)入 BigQuery 的時(shí)間差根據(jù)業(yè)務(wù)要求設(shè)置閾值BigQuery 寫入錯(cuò)誤率schema 不匹配等寫入失敗立即告警把位點(diǎn)落后和consumer lag 持續(xù)增長作為關(guān)鍵告警能提前發(fā)現(xiàn)大事務(wù)、網(wǎng)絡(luò)抖動(dòng)或消費(fèi)程序故障。6. 數(shù)據(jù)到達(dá) BigQuery 后模式映射、DDL 和冪等才是真正的坑6.1 MySQL 與 BigQuery 類型映射字段類型映射是 CDC 鏈路里最容易踩坑的部分。下面是常見映射關(guān)系MySQL 類型BigQuery 類型注意事項(xiàng)INT / INTEGERINT64無符號(hào) INT 可能超過 INT64 有符號(hào)范圍BIGINTINT64超過 2^63-1 的數(shù)據(jù)要改用 NUMERIC 或 STRINGDECIMAL(p, s)NUMERIC / BIGNUMERIC金額字段不要用 FLOAT精度會(huì)丟失DATETIMEDATETIME無時(shí)區(qū)語義按原值寫入TIMESTAMPTIMESTAMP建議統(tǒng)一按 UTC 存儲(chǔ)VARCHAR / TEXTSTRING長度和編碼要注意JSONJSONBigQuery 需要字段模式為 JSON 或先轉(zhuǎn)成 STRINGTINYINTINT64 / BOOL看業(yè)務(wù)語義確定最容易出問題的是 DECIMAL。MySQL 中的DECIMAL(10, 2)如果映射成 BigQuery 的 FLOAT640.1 這樣的值可能出現(xiàn)精度誤差。正確做法是映射為 NUMERIC。TIMESTAMP 也容易出問題。MySQL 的TIMESTAMP有會(huì)話時(shí)區(qū)概念CDC 事件里的ts_ms可能是 UTC 時(shí)間而業(yè)務(wù)字段本身可能是本地時(shí)間。建議在寫入端統(tǒng)一規(guī)范避免目標(biāo)表同一列混入不同時(shí)區(qū)的數(shù)據(jù)。6.2 DDL 變更會(huì)打斷 CDC當(dāng) MySQL 表結(jié)構(gòu)變化時(shí)CDC 鏈路會(huì)面臨兩個(gè)層面的問題。第一Debezium 需要依賴database.history.kafka.topic中的 schema 歷史來解析 binlog 里的舊事件。如果這個(gè) topic 被刪除或清理連接器可能無法反序列化舊的 binlog 事件。第二BigQuery 目標(biāo)表的 schema 不會(huì)自動(dòng)跟隨 MySQL DDL 變化。MySQL 加了一列CDC 事件里出現(xiàn)了新字段但 BigQuery 目標(biāo)表沒有這一列寫入就會(huì)報(bào)錯(cuò)。處理建議是把 DDL 納入變更流程先審查 MySQL DDL 對(duì)同步鏈路的影響。先在 BigQuery 目標(biāo)表補(bǔ)充或調(diào)整 schema。再在 MySQL 執(zhí)行 ALTER TABLE。同步完成后核對(duì)事件是否正常。對(duì)于大表的 ALTER TABLE還可能導(dǎo)致源庫鎖表和復(fù)制延遲。生產(chǎn)環(huán)境做主從切換時(shí)要評(píng)估 DDL 對(duì) binlog 位點(diǎn)的影響。注意不要依賴 BigQuery 自動(dòng)加列來處理所有 DDL 變更。自動(dòng)加列在不同版本和連接器里行為不一致且不能處理列重命名、刪除、類型變更等復(fù)雜操作。6.3 至少一次語義下重復(fù)是正常的binlog CDC 鏈路通常提供 at-least-once 語義。網(wǎng)絡(luò)閃斷、消費(fèi)程序重啟、位點(diǎn)提交失敗都可能導(dǎo)致同一事件被重復(fù)消費(fèi)。因此目標(biāo)表必須能接受重復(fù)。常見做法按主鍵去重寫入前先判斷目標(biāo)表是否已有該主鍵。使用 BigQuery MERGE按主鍵更新目標(biāo)行。在記錄中增加事件版本字段如event_ts_ms或 GTID寫入時(shí)取較新的事件。下面是 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 在處理刪除事件時(shí)還可以加一個(gè)WHEN MATCHED AND s._is_deleted TRUE THEN DELETE分支。但 MERGE 的成本比流式追加高適合對(duì)一致性要求高、更新頻率可控的場景。如果表更新量極大需要考慮分區(qū)覆蓋、冷熱分離等方案。6.4 亂序事件怎么處理同一個(gè)主鍵的多條變更在 Kafka 中如果分布到不同分區(qū)消費(fèi)程序收到的順序可能和源庫事務(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)象連接器啟動(dòng)時(shí)報(bào)權(quán)限不足或無法讀取 binlog可能原因MySQL 賬號(hào)缺少REPLICATION SLAVE權(quán)限。連接器配置的 server-id 與現(xiàn)有從庫沖突。binlog 未開啟或者binlog_format不是 ROW。排查命令SHOW VARIABLES LIKE binlog_format; SHOW GRANTS FOR cdc_user%; SHOW PROCESSLIST;處理方式核對(duì) MySQL 配置和賬號(hào)權(quán)限修改后重啟連接器。server-id 沖突通常會(huì)在 MySQL 錯(cuò)誤日志里看到A slave with the same server_uuid/server_id as this slave has connected to the master之類的信息。7.2 現(xiàn)象任務(wù)運(yùn)行一段時(shí)間后Kafka 里有歷史事件但新事件遲遲不來可能原因Kafka Connect 或連接器進(jìn)程掛掉后位點(diǎn)沒有正確恢復(fù)。MySQL 實(shí)例重啟導(dǎo)致 binlog 文件名變化連接器找不到舊位點(diǎn)對(duì)應(yīng)的文件。table.include.list配置了大小寫敏感的表名實(shí)際表名大小寫不一致。排查方式kafka-consumer-groups.sh --bootstrap-server kafka:9092 --describe --group bigquery-sync重點(diǎn)看CURRENT-OFFSET、LOG-END-OFFSET和LAG。如果 consumer lag 為 0 但新數(shù)據(jù)沒進(jìn)來檢查連接器日志里 binlog offset 是否還在推進(jìn)。必要時(shí)做一次 重新快照 增量 的初始化。7.3 現(xiàn)象BigQuery 寫入報(bào)錯(cuò)字段不存在或類型不匹配可能原因MySQL DDL 新增了列BigQuery schema 沒有同步。DECIMAL 字段映射成了 FLOAT64導(dǎo)致精度丟失或?qū)懭胧?。MySQL JSON 字段映射到了 BigQuery STRING但事件里是 JSON 對(duì)象。排查方式SELECT column_name, data_type FROM my-project.analytics.INFORMATION_SCHEMA.COLUMNS WHERE table_name orders;處理方式定位是哪一列不匹配先同步 schema再重放失敗事件。不要直接丟棄報(bào)錯(cuò)事件否則會(huì)在對(duì)賬時(shí)發(fā)現(xiàn)數(shù)據(jù)缺口。7.4 現(xiàn)象同步延遲持續(xù)增長可能原因源庫執(zhí)行了大事務(wù)例如一次 UPDATE 超過十萬行binlog 事件量巨大。消費(fèi)程序單線程寫入 BigQuery寫入速度跟不上源庫變更速度。網(wǎng)絡(luò)帶寬不足或者 BigQuery 寫入配額受限。處理方式在源庫側(cè)避免一次性更新超大范圍拆成小事務(wù)。寫入端改用批量并行寫并啟用 Storage Write API。增加監(jiān)控觀察 binlog 保留時(shí)間是否充足。如果消費(fèi)端位點(diǎn)落后太遠(yuǎn)而 binlog 文件已經(jīng)過期可能需要重新快照。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲综合射| 日韩精品黄片免费观看| 情色五月天久久久| 99性爱| 精品午夜福利导航| 性欧美精| 800zy一区二区| 囯戸精品高潮呻吟旡码| 亚洲色天堂九9| 麻豆国产尤物AV| 精品视频在线观看精品| 国产免费小视频| 伊人久久国产免费观看视频| 婷婷色中文字幕| 久久无码一区二区二三区性色| 97超碰美国| 亚洲 自拍偷拍 欧美| 欧美色九九| 97在线观视频免费观看| 妇女视频网站| 丁香五月天婷婷姐| 另类在线| 啊啊啊操一区| 五月天婷婷色色| 一区二区三区黄色片a| 97国产|免费| 韩日精品福利视频一区不卡在线免 | 日本97久久| 人妻 制服 日韩 中文 在线| 黑操B| 五月婷婷六月天| 亚洲日韩美女中文字幕乱| 欧美成人免费在线观看| 精品国产乱码久久久久久网站入口| 后入人妻一区| 精品人人| 欧美三级免费伊人| 久久99国产综合精品女同| 丁香五月婷婷啪啪| 99热免费| 亚洲综合色网| 99热这里是精品| 亚洲AV永久无码一区仙野| 家庭乱伦性爱av| 日小BB小视频| 中国国产精品一区视频| 欧美探花网| 精品无码一区二区三区| 天天射天天操天天干天天吃2018| 曰韩人妻中文字幕在线| 三男一女不戴套的A片| 国产美女高潮视频| 亚洲电影中字一区二区| 国产成年精品高清在线观看91| 亚洲高清视频在线免费观看| 亚洲黄色视频在线观看视频| 岛国黄片网站| 蜜臀久久99精品久久久久久-DVD原版全| 亚春色色| 嗯啊视频免费在线观看| 婷婷视频在线免费观看| 丁香五月偷拍| 国产肏屁眼视频| 天天看高清麻豆| 97久久国产亚洲精品超碰热| 欧亚 另类 久| 超碰97网站| 在线视频97| 影音先锋日本一区二区| 国产精品懂色tv影视免费观看| 2017天天插| 日韩激情电影中文字幕| 1024人妻熟女一区二区三区| 日本淫色网| 日韩精品熟妇| 哈哈操 大香蕉| 91精品人妻一品二品三品| 91综合网站| 国产又猛又粗又爽又黄| 99这里有精品| 亚洲诱惑| 曰韩人妻中文字幕在线| 日韩一性一交一A片俄罗斯| 91精品国产高清久久久久久,亚洲成人 | 青娱乐国产剧情av一区| 亚洲黄色影视| 成人热久久精品| 超碰97男女| 日本中文字幕不卡视频| 91粉嫩萝控精品福利网站_精品影音先锋国 | 色99色| 亚州操操穴网| 夫妻日逼| 成人免费在线网站| 欧美页片| 家庭乱伦网站国产| 日本美女性生活久久久久久久 | 外国免费性情大片| 亚洲日韩美国人妻| 欧美|91色综合| 天天舔九色婷婷| 亚洲玖玖爱| 国产一区二区成人av在线播放| 九九黄色网| 欧美传媒一区| 久久av无码| AV电影在线播放| 精品久久久九九九孕妇| 天天天操天天天爱| 亚州免费啪啪视频| 久久最新视频免费观看| 91天天爽| 亚洲人妻中文高清| 日本不卡二三区| 蜜臀久久99精品久久久久久成人小说 | 欧美少妇色图| 久草精品国产蜜臀| 久久久97| 在线观看十八禁| 欧美BT 亚洲色图| 美女视频尤物网在线看| 日韩精品9999| 9ⅰ久久久天天| A 在线网址| 7月婷婷综合| 欧美日韩在线小说| 大吊色| 97超碰国产亚洲精品| 干我久操| 中文在线久久字幕| 日本欧美韩国国产在线| 四虎免费看黄| h无码动漫在线观看| 加勒比海成人视频网| 国产精品国产亚洲区艳妇糸列| 精品色色| 国产又粗又长的视频| 亚洲精品久久久久久久蜜桃臀| 欧美手机在线综合| 97久久久| 天天躁日日躁成人字幕aⅴ| 国产不卡精品91| 久久久久久久强迫| 69精品人人人人| A片大香蕉在线| 好爽,再快点啊哈嗯嗯嗯嗯| 蜜臀久久99精品久久久久久无删减| 97免费视频在线观看视频| 家庭乱伦国产| 国产97在线播放| 91丨九色丨国产打屁股| 91操熟女| 亚洲男人天堂网站| 爱干爱射网啊啊啊| 国产欧美岛国精品一区| 亚州熟女乱伦| 青青草伊人久久| 久久国产热视频97电影| 超碰美女97| 天天淫人人妻日日色| 成人av福利在线观看| 日韩久久艹| 天天躁日日躁AAAXX| 精品少妇一区二区| 日本裸体久久色噜噜| 亚洲AV性爱电影| 国产夫妻性生活视频| 欧美亚洲综合色| 亚洲黄色视频在线观看视频| 另类欧美色| 韩日男人的天堂| 三级色综合| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 曰本人妻人人澡人人夹| 欧美 亚洲精品首页| 九九热免费视频| 日日操免费视频| 一本色道久久综合亚洲二区三区| 欧美亚洲第1页| 久久一区二区高清免费| 欧美91在线| 91精品婷婷国产综合久久竹菊| 开心五月激情网| 免费观看性欧美一级| 国产美女自拍AV| 搡老女人老91妇女熟女| 日韩欧美成人大香蕉| 午夜福利视频在线一区| 国产二区三区免费视频| 亚洲图片欧美偷拍| 欧美图片校园春色| 日韩精品三级片长长久久| 这里只有精品视频在线| 天天干天天操天天干天天操| 亚洲无码太久| 欧美97在线欧| 嗯嗯啊啊啊好爽| 久久同城AV| 欧美精品双插| 色偷偷色偷偷欧美日韩| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 成人电影一区| 欧美少妇熟女| 欧美亚洲日本激情在线| 久久久精品视频免费观看| 夜夜草我| 一区二区免费电影久久| 精品欧美А∨无码黑人大荫蒂| 操东北女人| 久久这里只精品| 丝袜狠狠草尤物 91| 国产成人精品午夜福利| 99re99视频在线免费观看| 国产欧美伊人| 超碰97精品在线| 麻豆一区二区AV天美| 东北操逼| 热的中文 热的有码 热的国产| 磁力99AV| 久久久久9999妇女| 热久日综合| 看日韩美女二区三区免费操逼视频 | 国产午夜在线观看视频| 岛国免费视频在线| 另类小说综合网| 亚洲av无码国产精品字幕| av黄图片在线观看| 国产在线综合网| 9久在线视频只有精品| 另类图片综合| 美女尤物人人操| 国产亚洲精品美女久久久m| 多乙久久久久久| 人人插人人摸人人| 婷婷色综合| 日本91白丝| 久久天天摸| 东北女人av| 欧美熟妇精品黑人巨大一二三区| 搞中出视频在线观看| 乱码熟妇人妻久久久| 日本淫穴在线| 日本ZZ高免费A级视频| 加勒比伊人综合| 欧美综合网1| 亚洲激情深爱文学小说网站| 青青草福利视频| 69国产对白刺激| 亚洲精品九九九| 无码直播久久久| 99热在线观看| 天无日色综合| 青青草久草AV| 亚洲人妻久久| 十八禁啪啪视频| 又粗又长又爽在线观看| 久久久婷| 久久久性爱视频| 国产AV中文| 国产特级毛片AAAAAA高潮流水| Blackedraw视频一区二区| 性爱久久| 亚洲日韩熟女人妻高清在线| 久久视频,这里只有精品 | 亚洲中文字母在线播放| 九九九九九九亚洲| 一区二区不卡| 亚洲一区二区av| 无码高清少妇久久| 久久精品人体AV| 久久精品国产99国产精品亚洲| 亚洲天堂久| 尤物av网站免费在线播放| 婷婷激情五月天小说网| 亚洲AO在线| 夜夜爽夜夜摸夜夜操免费视频| 97爱| 日韩久久三区| 99re99在线视频| 精品国产一区二区三区香蕉欧美 | 国产白丝av| 欧美日本一区二区a人| 大香蕉啪啪网| 四虎在线视频| 97天堂| 欧美激情欧美精品| 91天美| 天天天天天干夜夜夜夜夜操| 日本黄色天堂| 成年人三级黄色片视频| 天美av在线观看| 天美久久久久| 欧美激情中文字幕另类小说| 亚洲成人精品久久久| 九九热九九| 啊啊啊啊嗯嗯嗯用力好爽| 男人的天堂欧美| 欧美色图亚州激情| 男人天堂无码| 久久久新亚洲AV| 国产中出内射一区二区| 日韩精品人妻一| 欧美人妻少妇| 亚洲97超碰| 久久性爱网站| 日本幼女18+| 在线观看一级α片刺激高潮视频| 国产精品久久久鸭无码的功能| 天综合网| 欧美色图第一页| 精品日韩中文在线| 啊视频在线| AV男人天堂网| 久久精品美女一区| 色网1| 91色色网站| 亚州伊人色综台| 亚州男人的天堂| 亚洲av国产av综合av卡| 无码色| 夜夜嗨老熟女AV一区二区三区| 久久精品国产Aⅴ| 极品白嫩美女白浆成人福利在线看| 91艹逼精品| www.亚洲黄色| 亚洲丝袜色| 97免费视频在线| 看看小穴| 国产亚洲精品玖玖玖在线观看| 亚洲女人毛茸茸91| 成片免费观看视频大全| 色淫网站优优视频| 欧美午夜精品久久久久久3D| 97亚洲欧美| 920日本午夜免费| 无码操逼视频一下| 亚洲在钱| 日本天天吊| 日韩欧洲操屄视频| 91老熟女91老女人| 天天干,天天日| 一区二区视频在看| 亚洲AV不卡在线观看| 婷婷五月天丁香| 九一综合网| 精品一区二区人妖| 熟女探花啪啪| 97欧美色| 久久综合日韩亚洲欧美| 秋霞久久亚洲精品成人| 亚洲h片在线免费观看| 欧美自拍网| 欧美精品91| 日本人妻中文字幕| 亚洲色图欧美激情| 欧美少妇一区二区三区| 精品成人亚洲午夜电影| 超碰95| 青青草一本道福利视频| 日韩av免费一级电影| 欧美一区二区传媒| 中文字幕丝袜美腿| 亚洲欲色9532548967一区| 一类av片在线看| 亚洲av综合色区无码一| 国产精品探花在线| 黄片免费看黄片免费看| 九月激情婷婷| 伊人丁香五月婷婷| 久久久久久亚洲Av无码| 久久久少妇| 色综九九九一区| 男人亚洲天堂| 在线观看成人性爱免费小视频| 99精品国产户外露出| 亚洲一区二区AV| 中文字幕乱妇免费视频| 男人天堂无码| 人妻少妇久久中文| 无码天堂| 岛园激情| 极品粉嫩一区二区| 欧美一区二区三区大综合| 亚洲综合网图| 热久日综合| 青青草日本中文字幕| 欧美日韩亚洲电影| 丰满人妻一区二区三区色-百度| 中文字幕人妻资源在线| 好吊色综合| 亚洲高清视频在线免费观看| 91九色蝌蚪在线观看| 一级二级三级黑人无码| 亚洲综合另类| 亚洲AV乱码专区国产噜噜亚洲| 五月婷视频| 99国产天美| 97欧美日韩精品| 九九热av| 精品日韩中文在线| 亚洲天堂色图| 国语少妇精| 欧美性爱一级操| 亚洲九九爱| 天天操夜夜操狠很操| A V少妇特黄三级| 岛国天天午夜影院传媒网| 国产精品第一区第一页| 97色婷| 打av高清| 日韩综合无码色欲vv| 久久综合18p| 狠肏骚人妻| 午夜传煤十二区精品| 欧美日韩不卡a片| 啊啊啊啊啊啊好湿好爽视频| 久久久久夜夜夜夜| 日本日皮视频逼| 揉揉揉夜夜| 美女诱惑爱爱| 日本成人A片网站| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 久久精品区| 久久五月天婷婷| 欧美一级专区免费大片| 欧美三级中文字幕hd| 91中文字幕在线观看| 国产精品岛国片在线观看| 1级午夜影院费免区| 深夜激情无码| 精品国产乱码久久久久久蜜臀| 欧美天天干| 久肏视频字幕| 日韩久久超碰色| av强奸乱轮| 另类欧美| 国产精品九9| 精品日韩人妻视频| 国产九九九九九九| 性色国产东北露脸精品视频| 97色色婷婷| 国产无马在线| 日本不卡一二区| 国产怡红院| 亚洲字幕一区二区| 国产精品久久aV| 人妻少妇久久| 99热思思| 夜夜草天天| 久久超碰av在线| 天天爽爽爽爽| 在线岛| 中出91视频| 蜜桃久久久久久久久久久久| 中文字幕精品一区二区精品| 精品国产丝袜一区二区三区乱码| 蜜臀99久久国产| 欧美视频激情久久久久久| 久久25| 先锋精品av色鲁| 99精品欧美一区二区三区桃色| 少妇无码999| 最新av网站在线观看| 久久精品老司| 色诱中文字幕| 强奸乱伦中文字幕AV| 天天澡天天爽日日AV| 加勒比aⅴ| 日韩色香| 欧美亚洲首页| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 精品亚洲国产成人精品| 三级三级三级a级全黄三| 99在线免费公开视频| 黄色网址在线免费观看| 五月天综合网| 人妻密肉在线观看| 亚洲自拍欧美国产首页网曝| 免费97视频| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 久久毛卡| 激情小说五月天| 嗯~啊~快点 死我视频| AV中文在线| 欧美一区二区观看在线| 97天天爽| 国产一级操B视频| 综合影视国产无码| 白丝AV网站| 亚洲色图8| 色青青久久影视| 欧美18 在线观看| 人人么人人操| 六月婷婷色综合| 熟女中出视频| 成人区人妻精品一| 91爆操视频| 国产久久视频| 国产久久久久久| 大香网站| 国产综合久久久鬼色| 蜜臀AV成人精品蜜臀AV久久| 中文字幕AV中出| 日韩成人人妻网站| 亚洲国产综合图区中文字幕| 午夜精品久久久久久久久久蜜桃 | 蜜臀99久久精品久久久久| 九九九九热| 99热99色| 国产乱人妻精品入口| 亚洲色宗合| 日本中文字幕在线视频| 蜜臀一二三区| 中国操逼无码| 伊人操操| 国产激情av女片自拍| 亚洲成人色情五月天丁香花| 国产成人无码a| 亚洲激情色片 | 91性网| 欧美成人黄网色网站| 99热国产精品| 国产精选三级在线观看| 国产免费一区| 国产免费一区在线观看| 欧美色图片| 天天综合网1| 黑人精品成人一区二区三区 | 91美女视频直播| 国产成人99久久亚洲综合| 亚洲精品97中文字幕| 综合色99| 果冻传媒A片麻豆熟妇人妻| 日日玩天天干| 丁香五月综合| 国产美女销魂在线观看不卡| 92大香蕉| 岛国小电影| se..亚洲欧美| 用力操死我| 国产 日韩 另类 视频一区爱| 国产精品九九九| 乱人乱色一区二区三区免费| 亚洲欧美清纯| 综合久久六月久久婷婷| 粉嫩av在线| 亚洲国产97| 精品人妻av区天天看片| 亚洲色图伊人网| 亚洲色图91欧美日韩| 亚洲欧洲精品视频发布| 国产成人超碰在线| 东京热综合久久一区二区| 极品色电影院| 97大色网| 色婷婷蜜臀av| 最新中文字幕精品在线| 日韩成人无码| 国产乱伦视频污| 欧美精品黑人猛交高潮| 国产99999久久精品| 亚洲三级网址久久最新| 精品91摸| 4141514逼喷水三级片| 色婷婷基地| 久久一区二区三区入口| 日韩人成网站在线播放| 国产精品一区二区手机看片| 成年人黄色| 韩日欧亚a级| 淫纸中9区| 91欧| 色在线69堂| 啊啊啊啊操死我了| 九九热精彩视频| 啊啊啊啊二区好大| 黄呦呦在线| 在线综合 亚洲 欧美中文字幕| 97福利视频| 99热国产| 天天淫人人妻日日色| 国产精品自拍xxxx| 黄片在线免费在线观看| 操逼啊啊啊91| 亚州色图狠狠干| 蜜臀久久99精品久久综合| 久久黄黄| 一道本东京热加勒比一区二区三区| 欧美老熟另类| 精品妇女一区二区三区| 亚州色图第三区| 亚洲情色五月天| 欧美激情超碰777| 超碰1997| 欧美日韩人妻精品系列一区二区三区| 天天爱天天操| 黄色操人| 欧美日韩国产另类综合| 夜色AV无码手机在线影院 | 在线情色电影 91大| 91 综合 色| 天天日天天干天天摸天天操| 日本精品五区| 欧美18 在线观看| 国产A v无码专区| 亚洲超碰在线| 亚洲AV无码久久精品蜜桃小说| 啊啊啊久久久视频| 欧美97爱| 强奸乱伦日韩AV| 黄色AAAAA欧美| 丁香九月婷婷| 蜜臀久久99精品| 日本中文字幕一区| 亚洲精品人体| 亚洲免费在线探花| 国产女人与拘做受视频免费| 2017天天插| 高潮的A片激情扒开一区| 亚洲天堂 视频你懂的| 亚洲激情网| 91nbbbbbb| 亚洲成成熟女人综合一区二区| 1人人看人人摸人人操| 岛国黄色大片网站| 综精品久久久aaaa| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 少妇超碰在线| 你草精品在线视频| 天啪| 国产精品天干天干综合网麻豆 | 成人26uuu| 国产操伦| 久久9 9 9精品| 欧美日韩亚洲少妇寂寞影院正在播放 | 精品日韩中文在线| 天天干天天操天天拍| 妇女视频网站| 91精品国产91久久青草| 一起草精品人妻| 久超超碰| 久久欧美激情| 国产亚洲日韩在线三区黑人| 高清不卡国产| 夜夜欢天天干| 天天日少妇逼AV| 久久综合久色欧美综合狠狠| 午夜福利一区二区影院| 黄页18禁| 清纯唯美亚洲综合| 久久久A∨| 超碰九九| 精品少妇一区二区三区在线视频| 香蕉免费一区二区三区不读| 五月天人妻综合| 天天色综亚洲91污| 香蕉av一区二区三区| 天天激情综合站| 一区二区三区四区姦女| 人人操人人干xxx| 日韩女模中文造逼| 国产精品国产| 亚洲黄色a级片| 久久视频,这里只有精品 | 精品欧美乱码久| 色婷婷九月| 亚洲情色 自拍| AV麻豆免费一区| 五月天色图影视| 亚洲日韩美女丝袜美腿人妻视频| 99热这里是精品| 综合亚洲网| 亚洲熟女av日韩熟女| 日韩中文字幕2020| 日欧操屄| 激情小说亚洲图片| 免费啪啪啪网站18岁| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 国产视频一区二区免费| 亚洲欧洲第二视频在线观看色图| 日韩无码黄色片| 欧美亚洲韩国视频十五区| 色噜噜人妻丝袜a∨先锋影| 天天操熟妇| 五月婷婷丁香六月| 96久久久| 欧美日韩天堂| 嫩草影院在线观看精品 | 中文字幕亚洲永久精品| 亚洲一区中文字幕| 亚洲欧美国产日本一区二区三区| 超碰在线免费一区二区三区| 99啪| 国内毛片婷婷六月色| 全国男人天堂网| 久久手机好看网站| 激情国产乱伦Av| 韩国女主播青草福利视频| 狠狠操官网| 欧美女同在线| 九九九综合精品| 亚洲强奸乱伦影视网| 亚洲国产熟妇综合色专区| 91在线视频免费中出| 韩国免费播放一级毛片| 日韩三级在线观看mp4| 国模艳艳啪啪一区| 99热在线只有精品| 殴美日韩m| 偷看洗澡一二三区美女| 国内精品嫩模A∨私拍小视频| 亚洲日韩久久精品一区| 国产成人无码网站在线视频| 青青操网| 97精品国产精品免费观看| 免费看A片毛毛片在线播| 久久久久久97| 五十路熟女工口| AV电影在线播放| 日韩操啪| 亚洲资源一区| 欧美日韩人人精品| 久久99网站| 性色AV网站| 中文字幕一区二区三区蜜桃视频| 大香蕉综合| 日韩免费高清大片在线| av天堂电影网| 婷婷五月成人| 国产尹人在线视频免费| ji熟女.com| 色97欧美| 91精品婷婷国产综合久久竹菊| 香蕉在线一区二区三区| 偷窥自拍A片| 午夜精品久久久久久久第一页按摩| 一区二区视频你懂的| 十八禁网站在线| 亚洲一区二区三区四区视频| 最新日本中文字幕| 久久久久久加勒比| 精产品久久| 亚洲激情色片 | 久久久9品一区二区三区| 亚洲一区二区三区欧美日韩| www.91理论| 99999精品| 久操频道免费在线呗看| 国产在线激情| 国产精品在线网站| 中文字幕综合人妻| 综合一区中亚洲国产成人综合精品| 后入人妻无码| 日韩无码服务区| AV中文字幕剧情1区2区3| 超碰97男人| 欧美老妇综合网| 中文字幕版| 亚洲成人免费中文字幕| 女优大全 - 91n| 亚洲一区制服诱惑| 啊啊在线| 久久超碰av在线| 久久九七| 一二三啪啪专区| 久久女人一区二区三区| 日本精品一区三区| 亚洲高潮少妇| 五月天激情四射| 亚洲最大网站av| 狠狠综合| 五月激情视频| 日本三级黄页| 91国产大片| 少妇人妻精品| 色哟哟av网址| 2017天天操天天日| 日日嗨AV一区二区夜夜| 久热精品在线| 亚洲精品人体| 999热日韩精品| 99久久99久久免费精品蜜臀| 秋霞操逼片| 97超碰热线| 啊啊好多水| 黑人粗大V S日韩女优视频| 精品丰满熟妇人妻一区 | 三级激情网站| 国产成人网站在线观看| 99热这里只有精| 97爱b| 丝袜美腿丝袜| 性色av大全| 97人人模人人爽人人| 免费久久精品麻豆一区二区av| 日韩精品99999| 91黑人无码激情在线| 国产剧情AV不卡在线观看| 色色色综合| 亚洲熟女乱熟乱熟妇综合网二区| 九九九只有精品| 尤物av网站免费在线播放| 精品成人动漫一区二区| 浪人综合网| 日本在线不卡123| 91影视亚洲| 久久久青青草| 色五天伊人| 亚洲国产精品久久久久久久久久| 啊啊啊不要啊啊受不了了视频在线| 青青操日韩| 人妻啪| 性吧在线视频| 今日头条成人一区二区三区四虎精品| 91亚洲不卡一区| 国产午夜福利合集| 国产后入| 中文字幕一区二区三区高清| 伊人成人中文字幕久久网| 97色97好| 久久伦理视频久久大香蕉视频| 天天干嫩逼网| av片在线观看免费播放| 欧美综合在线91| 婷婷色香伊人| 日本岛国黄色网址| 97视频620| 国产一区二区在线看| 我要去看2个日本美女.com曹逼| 亚洲最大无码中文字幕网站| 国产一区二区三区不卡手机在线| 亚洲欲| 天天草天天日| 五月婷婷综合网| 玖玖资源视频一区二区三区| 国产绿奴视频在线观看| 四虎AV在线观看| 大白逼三四级| 国产日产精品久久快鸭的功能介绍| 国产欧美美女免费观看视频| 久久久999| 人人天天欧洲| 欧美熟妇精品黑人巨大91| 极品白嫩美女白浆成人福利在线看| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 偷拍新久久| 欧美少妇性爱网站| 久草精品国产蜜臀 | 久久鲁夜| 国产激情视频一区区三区| 伊人影院中文字幕| 欧美暴力猛交| 人人操肉肉| 久久久不能久久久久| avav青青草久久夜| 国产精品三级视频网站 | 九九九九精品精| A久久| 91高潮| 国产黄a三级三级三级av在线看| 色香天天| 91亚·色| 日欧操屄| 看黑丝美女操逼青青网站| 成·人免费午夜在线观看| 欧美偷拍| 婷婷色色网| 美国三级日本三级久久99| 安微少妇操BBB| 嫖老熟女A片一二三区| 国产精品69久久久久久久 | 亚洲色偷偷色噜噜狠狠99网| 日韩无码AB| 高清无码在线播放网站| 97 九色| ji熟女.com| 国产性感在线观看| 手机在线A片| 久久国产精品91| 国产性爱在线视频一区二区| 欧美美女后入| 日本操嫩b网| 床戏久久久av一区二区麻豆| 花野真衣| 日韩性爱毛片操骚逼| 国产精品网站免费| 东北熟女91| 麻豆AV96熟妇人妻| 日韩99精品视频综合区| 大香蕉欧美日韩| 婷婷伊人五月| 欧美在线伊人色| 亚洲色棕合| 国产欧美伊人| 成人一级性爱| 熟妇艹鸡八| 免费a级毛片av无码久久精品中文字幕| 亚洲一二三精品久久网| 风流老熟女一区二区三区l| 亚洲欧美97√| 神马久久久久眼| 五十路六十路素人熟女| 亚洲激情欧美色图| 色婷婷久久| 涩涩这里只有精品视频| 丝袜av一区二区三区| 大香蕉视频一二三区| 亚洲精品一区二区免费在线观看| 五月大香蕉| 亚洲h片在线免费观看| 亚洲视频精选| 青草影院内射高潮| 欧亚乱色熟一区二区三四区| 久久一级无码精品毛片6| 色欲av国内精品久久久久久| 国产第11页| www.97在线| 超碰国产精品久| 少妇久久久久久久久| 日韩综合色网| 久久日本熟妇熟色高清| 五月丁香婷婷啪啪| 岛园激情| 97亚洲色图| 天天拍天| 粉嫩粉嫩一区性色AV片| 91精品无码久久久久久久| 色婷视频| 啊v在线观看视频| 亚洲日韩黑丝| 国产情色第一第二页在线观看| 国产人妖的免费的视频| 国产强奸乱伦第1页| 人妖欧美一区二区| 日夜干射色啊| 玖玖视频在线资源一区二区三区| 加勒比久久综合网高清| 人人操人人操人人人操| 69精品| 91美女国产在线| 色偷综合| 2017大香蕉国产精品久久| 冬京热男人的天堂| 日本福利二区视频| 亚洲无码一区二区三区三州| 国产精品久久久鸭无码的功能| 国产尤物AV尤物在线观看不卡| 色操逼网| 亚洲 无码 偷拍| 永久免费观看的毛片的网站| 五月天亚洲色图| 97精品免费视频网站| 亚洲美女精品九九视频| 一区二区影视| 深夜国产福利| 91久| 亚洲资源网| 国产一区二区久久| 污电影在线观看| 欧美青青草视频| 日本最新1区2区3区| 国产中文日韩欧美一区二区三区人妻丝袜美腿| 超碰综合色| 美女网站黄页| 久久后入制服| 久久粉色| 欧美亚洲高清| 亚洲一区日韩精品| 久久五月天婷婷丁香中文字幕| 欧美αv.com| 太久视频| 蜜乳成人AV| 超碰在线观看av不卡| 黄色小视频日本txt| 91精品伊人久久久大香线蕉91| 人人干人人搞人人摸| 国产超碰| 国产精品亚洲美女久久久久| 99精品在线| 亚洲欧美另类少妇精品| 色噜噜人妻av 中文字幕| 97国产超湿| 啊啊啊啊啊好大好舒服想要| 麻豆天美在线喷水AV| 精吧天堂| 97日韩超碰超碰中文字幕| 蜜臀一区二区三区在线| 亚洲日韩在线a不卡99精品| 乱伦一区二区三区‘| 女人被添高潮免费视频| 色五月首页| 天色综合网| 丰满熟女人妻一区二区三五十一路| 99re在线视频国产| 99re99| 干我久操| 欧美日韩操逼嗦吊| 操逼网免费无码视频| 色性综合| 免费农村成人少妇人妻Aa一区二区视频| 国产熟女| 亚洲资源一区| 伊人影院日本| 亚洲AV秘 精品久久老牛影视| 99爱视频| 天堂资源站| …中文字幕亚洲乱,97人妻无码费视…| 欧美综合另类| www.黄色在线| 日韩三级网址| 99热导航| 欧美色图电影| 日韩av在线免费网站| 18一区二区三区| 91中出在线| 国产中文大片资源中文字幕| 六月丁香网| 小草精彩毛片| 麻豆天美AV传媒第一页| Sekablack无码一区| www超碰| 东京热99999| 热99这里有精品综合久久 | 亚洲av国产av综合av卡| 国产激情久久| 少妇99| 国产无码精品高清| 久久亚洲不卡| h色99999| 青青青国产手线观看视频2| 天天干,天天日| 国产AB视频| 18禁看网站一区| 日韩另类色图| 亚洲毛片久久| 91精品久久综合熟女| 欧美天堂亚洲电影院一区在线播放| 殴美色网| 色播丁香| 97欧美日韩综合| 人人射人人操人人摸| 韩日巨乳美女免费视频在线观看| 久久精品国产亚洲AV清纯| 五月丁香综合| 另类一区| 台湾佬中文娱乐网久久久久久久久久com | 国内亚洲高清无码| 青娱乐亚洲热| 亚洲熟女一区二区| 国产福利精品最新在线 | 精品久久視頻在线| 国产精品乱码久久久久久久久| 久久久中文| 亚洲色性| 五月天婷精品激情| 天天看人人操屄犊摸阴| 98人妻精品一区二区色欲| 在线啊啊啊啊| 天美传媒av在线| 另类TS人妖一区二区三区| 欧美老妇综合网| 成人97人人超碰人人| 97视频在线视频| 九九探花视频在线观看| 欧美一二级| 亚洲欧美激情在线视频| 欧美激情 亚洲色图| 五月婷在线| 深爱伊人影院| 亚洲色图91欧美日韩| 欧美亚洲情色| 黑人黄片在线免费观看| 青青草影视蜜久久| 97干在线视频| 久久久无码精品人妻二区| 亚洲综合小说另类图欧美视频激情小说色五月天 | 欧美不卡在线美女| 亚洲AV成人精品网站在AV| 欧美|91色综合| 综合网亚洲在线| 国产 亚洲 丝袜 制服| 日本免费二区三区| 欧美少妇熟女| 青娱乐亚洲自拍| 亚洲自拍小说| 色色激情五月天| 精品国产Av无码久久久伦古装| 精品国产少妇高潮视频| 乱伦熟妇一区二区| 久久噜| 超碰碰碰碰| 乱性AV| 九九九不卡| 久久久久久性爱视频| 国产野战露脸在线播放| 天堂av最新电影网| 在线啊啊啊啊| 夜嗨影院| 9999久久久| 久久夜精品一区二区三区| 抽插无码高清一区| 99这里只有精品国产| 亚洲第一页欧美| 中文字幕美女91| 凹凸 69堂 在线播放| 九九久久一区二区三区| 五月综合婷婷久久网站| 国产真实子伦对白| 97视频免费在线| 日韩AV中文字幕电影| 日本肏逼视频在线观看| 国产区日韩区在线观看| 941超碰| 色一射色一射| 欧美,日韩,亚洲视频| 91老熟女| 国产精品午夜福利| 97色视频在线| 99热综合| 国产免费一区在线观看| 亚洲密乳AV| 另类图片五月天| 干b在线性社区| 91在线精品| 影音先锋日本乱伦| 麻豆区久久久久亚| 久久久不能久久久久| 91GD.COM| av在线一区二区三区| 草草电影院| 成·人免费午夜在线观看| 成人免费在线网站| 欧美资源| 欧美热图99| 国产日产欧产美韩系列麻豆免费| 伊人网av| 日韩亚洲欧美中文字幕| 蜜桃天美传媒AV一区二区三区| 国产乱码精品久久久久久| 欧亚乱色熟一区二区三四区| 欧洲色色| 思思热免费视频观看| 亚洲精品国语在线播放| 婷婷探花久久精品一区| 欧美综合 站| 欧美中文字幕一区 | 最新国产精品久久精品| 乱伦1色页| 变态乱伦伪娘灌肠一区二区| 噜噜噜亚洲精品| 久久精品人体| 麻豆国产免费影片| 天堂v无码免费视频| 国产精品乱码久久| 天美91| 国产精品高朝久久久久久久| 美女高潮视频91| 亚洲Av噜噜一区二区三区妖精| 精品超碰国产| www.色婷婷.com|