亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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
返回資訊列表
91黄射| 蜜汁欧美| 俄罗斯及免费在线看| 色欲无码人妻日韩欧美精品| 亚洲成人av色网| 精品无吗久久| 欧美一区二区三区不卡高清视频| 亚洲精品中文字幕一区在线视频| 欧美操逼视频二区| 亚洲素人综合| 亚洲在线欧美| 外站AV在线| 91小视频| 超碰这里有精品| 中国操逼无码| 久视频在线观看| 欧美人妻少妇| 韩日精品四区| 色原狠狠天天天| 玖玖爱在线视频免费观看| 99激情视频| 春色综合免费| 亚洲图片偷拍视频区| 欧美与日韩97| 人人弄人人摸| 久草精品一区| 五月香婷婷| 人妻激情视频| 欧美一区91大爱| 98久久超碰| 日本Xx性爱| 欧美青青视频| 欧美性爱十八禁| 午夜精品久久久久久久99热影院| 亚洲动态色图| www被窝色com| 大屁股xxxxx| 亚洲天天精品| 欧美91变态| 男人的天堂2018东京热啪啪啪| 黑人性欧美| 伊人AAA| 日本道不卡| 青青草在线成人视频| 夜夜春夜夜操| www久| 国产性感在线观看| 久久人人舔人人爽舔人人av片| 人妻在线大香蕉| 人妻色偷色噜| 美女黑人91神马| 国产免a费看黄片在线| 黑丝少妇麻豆| 99精品成人免费看| 99少妇内射| 精品夜夜澡人妻无码| 99婷婷一区二区| 亚洲午夜av| 九九碰九九爱97超| 九一国产精品| 天天影视网综合少妇| 日韩兔费看黄片| 蜜桃久久久久久久| 黄片色区软件| 天天狠操| 国产亚洲精品久久久久小| 亚洲精品1区| 欧美日本一区二区a人| 99少妇| 91最新综合| 高跟丝袜AV专区国产| 女上位精品在线| 伊人久久88国产女| 久久婷婷色| 欧美精品久久96人妻无码| m欧洲一级午老| 色欲日韩欧美在线一区| 3PAV乱伦视频| 欧美性夜| 蜜桃狠狠色伊人亚洲综合| 色五月婷婷网| 芊芊操逼视频无码| 欧美 亚洲 综合 制服 另类| 亚洲成人一二三区| 中文字幕一区日韩精| 国产无码高清操逼视频| 人人操人人操人妻人| 99热这里只有精| 综合亚洲欧美精品日韩?v| 97久久超碰国产网站| 干婷婷综合网| 午夜福利av电影在线| 青青久久久| 大香蕉色网| 少妇一级婬片免费放一级a性色.| 久9九综合在线| 女人妻一区| 亚洲AV无码成人精品久久| 精品99999| 亚洲人综合| 久久av网| 免费久久9999| 精品网站99999| 日韩三级一区| 一本精品日本在线视频精品| 九月伊人中文字幕| 日本大香蕉综合网| 丝袜综合网| 嗯嗯啊啊的视频| 台湾肥佬网一区二区三区| 色五月婷婷中文字幕| 欧美人人操人人插| 久久精品区| 无卡一区=区| 亚洲熟女国产综合另类| 六月婷激情福利天堂69| 国产乱色国产精品免费视| 日韩啪啪视频| 2017av无码免费无线播| 先锋激情∨在线视频播放| 最新亚洲黄色免费电影| 成人精品在线免费视频| 人人操人人摸人人看人人插| 国产一线二线三线av| julia中文字幕在线观看| 91啪9色| 嗯嗯嗯好爽| 六月天婷婷| 涩涩涩综合| 国产精品原创巨作?v网站| 九九九热| 久久精品国产亚洲5555| 为用户提供免费看黄网址在线观看| 色哟哟 日韩精品| 国产又黄又粗又猛大片| 懂色中文一区二区三区| 精品成人亚洲午夜电影| av凤凰久久久| 免费少妇一区二区| 综合操逼| 欧美日韩色图片| 四虎影院成年人片| 久热伊人99re| 色制服丝袜夫妻av一区| 久久999久| 国产亚洲日本| 亚洲久草AV色图| 丝袜加勒比| 97伊人| 亚洲国产精品无石码久久| 天天干天天中出av| 天天操妹子| 9久久精品| 五月丁香六月综合缴清无码| 国产精品蜜乳AV| 欧美性爱三区二区| 精品久久視頻在线| 97玖玖人妻| 欧美日韩亚洲高清不卡一区二区三区| 人妻加勒比东京热| 丝袜美女诱惑 91 视频| 九九热午夜欧亚国产视频| 99re28在线观看| 免费人成毛片乱码| 亚洲色图殴美色图激情乱伦| 久久亚洲AV无码专区国产精品 | 亚洲区限制级| 久久九九热| 9997se| 综合 亚洲 欧美| www欧美91| 亚洲 欧美 精品专区 极品| 亚洲91在线播放影院| 超碰在线91| 夜夜草我| 思思热在线视频精品| 中文字幕av久久爽Av| 东京热99999| 翔田千里AV无码秘 三区| 欧美人妻一区| 男人的天堂2010| 亚州高清色综合| 久久黄人人爽视频| 国产探花精品在线| 啊啊啊啊嗯嗯嗯用力好爽 | 91亚洲人| 无码高清专| 极品五月天噜噜| 天堂资源站| 久久久久国产精品久久久| 熟女探花啪啪| 高清无码网址| 国产AB视频| 91丨国产丨白浆秘 洗澡动漫| 午夜亚洲国产理论秋霞| 天天操天天射青青草| 久久久久921| 看免费的黄片| 青青草视频久久久久| 外国免费性情大片| 五月婷婷六月天| 日韩BBN| 亚洲中文字幕久久人妻| 91N五十路| 精品一区二区2| 新久久AV| 东北女人的毛片| 91女优在线观看 | 亚洲情色第一页| 91久久久久| 强奸乱伦av电影| 欧日韩在线观看| 强被迫伦姧在线观看无码网站| 97人人干| 风月影院男女十八禁| 素人一区二区三区日韩| 级品肉射| 久久婷婷亚洲| 欧美美女视频| 五月色丁香| 色爱亚洲| 黄色污污污污污污网站| 懂色Av| 熟女人妻av在线资源,黄色的资源| 97香蕉人人乳| 性久久| 色网在线| 亚洲啪啪视频一区二区| 亚洲视频精选| 久久午夜鲁丝片| 国产肏屁眼视频| 最新日本中文字幕| 国产精品高潮久久AV| 五月天精品| 亚洲97成人在线观看| 又黄又爽在线观看视频 | 人人操人人插人www| 欧美青青视频| 双插性欧美一二三区| 91精品国久久久久久无码| 国产AV毛片| 91激情国产| 最新中文字幕精品在线| 青青青艹在线视频| 天天天天天天天天天天干美女| 91欧美巨乳| 97自拍视频在线| 97亚洲精品| 青青草原狼av| xxx0国产在线播放| 老鸭窝成人免费毛片视频| 91N欧美| 人人贴人人摸| 欧美少妇高潮| 2001天天操| 欧美一区二区福利在线| 精品久久久不卡一区二区| 精品国产一区二区三区香蕉欧美| 久久久999国产精品| 欧美天天插| 欧美草草高清日韩视频| 国产丝袜美腿美女麻豆| 亚洲熟女av日韩熟女| 深夜激情| 男人下部插入女人下部| 国产在线播放成人免费| 超碰在线第一页| 偷拍欧美综合| 人妻熟女av国产网站| 97欧美| 97中文天堂| 日韩欧美tv一区二区在线观看| 男人的天堂1024| 欧美曰韩国产精品| 少妇内射www在线观看视频| 国产馆| 91美女视屏| 操人人| 日韩不卡网操逼中文字幕日韩| 立川理惠被中出无码| 婷婷深爱五月| 蜜臀久久久99久久久久| 99热只有| 激情情色五月天| 蜜臀va69| 久久久久久久九九九九九九| 国产精品区在线12p| 五十路熟女在线不卡观看一区二区| 人人玩人人添人人澡免费| 亚洲码在线中文在线观看| 精品无码一区二区人妻久久蜜桃| 狠狠色丁香| J?P?NESEHD熟女熟妇伦| 999精品乱码| 亚洲少妇免费视频\| 啪啪啪大香蕉| 99re国产中文字幕| 国产一区二区三区白丝| 欧美91视频| 亚洲麻豆av一区二区| 中文字幕第7页| 天综合网欧美| 激情四射五月天| 亚洲熟妇丝袜在线观看| 91久精品| 欧美 亚洲 偷拍自拍| 91殴美| 久久久久女教师免费一区 | 日本幼女18+| 欧美日韩国产中文精品字幕自在自线, | 久久久久人妻二区精品叶可怜| 五十路熟女人妻一区二区在线观看| 国产麻豆一区二三区| 午夜福利久久久噜久噜久久综合| A 在线网址| 東南亚性呦成人伦理资源在线视频| 发朗少妇买婬全视频中文| 精品国产乱码| 超碰综合97在线| 99热这里只有精品99| 三级日韩一区二区三区| 丰满人妻一区二区三区在线| 国产乱弄免费在线视频。| 亚洲精品欧洲精品| 日本女优在线视频福利| 亚洲一级性爱视频免费看| 精品日韩人妻精品一二三区| 欧在线一二区| 亚洲自拍偷拍视频在线| 久草尤物| 一级黄色视频网| 精品人妻一区二区三区在线视频不卡| 日本加勒比无码专区| 久久午夜色播影院免费高清| 在线岛| 精品少妇人妻av久久免费| 亚洲精品国产专区在线观看| 欧美大香蕉专区网| 五月丁香| 嗯……啊…嗯嗯…啊…好舒服| 佐山爱中文字幕| 欧美青青视频| 男人的天堂99| 午夜国产成人精品视频| 岛国网址国产 | 欧日韩不卡视.频| 一区二区久久天天干狠狠| 欧美老妇女内射网址| 男人把坤坤插入女人的下体| 精品少妇人妻| 人人妻人人澡人人爽久久av| 欧美人人曰人人操人人射射| 青青青国产手线观看视频2| 成人97人人超碰人人| 性色av网站| 日韩一级成人毛片免费观看 | 97国产人人| 亚洲资源站| 一二三卡欧美日韩人妻免费精品| 岛国不卡超碰护士AV在线播放| 乱老熟女一区二区三区| 亚洲AV无码天美传媒一区| 玖玖婷婷五月天| 91老司机在线视频免费观看| 97欧美色综合| 大香蕉乱级| 亚洲国产高清福利视频| 久久免费老司机精品| 综合国产97| 国产吹潮女在线观看| 97爱亚洲| 日韩人妻播放| 99re这里只有精品3| 91国产美女丝袜足交精品视频 | 午夜亚洲| 国产精品爆乳懂色蜜乳| 婷婷五月色| 999在线电影香蕉| 极品色社| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 欧美亚洲日本视频久久久| 午夜免费视频1000| 少好三P| 国产精品嫩草影院午夜两性| 国产精品老熟女一区二区| 性欧美另类高清| 超碰97久久观看| 亲子敌伦对白在线播放| 久草视频观看视频在线| 德国一二三不卡| 亚州 综合 色图| 大香蕉久久| 超碰人妻久久| www激情| 熟女高潮合集-永久久久-成人AV| 色97综合中文字幕| 国产久久天堂资源| 日本久久女同性恋视频| 美女啊啊啊啊啊| 亚洲黄色网址视频| 亚爽爽爽爽爽爽爽爽| 色逼综合| renqi久久久久久久久久久久| 人人操人人射人人干| 欧美精品日韩久久久九| 国产九区| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 91久久青青草原精品| 99久久精品国产高潮| 青青操少妇| 久久丁香久草综合网| 亚洲欲色9532548967一区| 91国产丝袜白虎| 欧美极度丰满熟妇hd| 97视频新免费| av婷婷色婷婷色六月| 亚洲激情色片| 精品丝袜无码一区二区三APP| 人人澡人人爽人人精品| 自拍偷拍国产欧美日韩韩| 伊人天堂在线| 亚洲毛片基地专区| 欧美三级免费伊人| 精品国产乱子伦一区二区三区,精品一| 亚洲操人| 男人天堂资源| 日韩懂色网| 眼镜人妻101.com| 最新av在线| aaaa黄片| 精品人妻av区天天看片| 一区二区精品更新提醒| 久久黄色性爱视频| 欧美97av| 人人澡人人爽人人精品| 天天伊人| 久久久久78| 亚洲激情在线一区二区| 欧美综合另类| www.yw尤物| 久久只有精品| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 六月婷婷综合| 试看日韩黄片| 人妻素股| 97久久精品亚洲| 久久久久久99AV无码免费网站| 人妻熟女一区二区三区在线| 免费的很黄很污的全部视频| 中文字幕午夜精品久久久| 992这里有精品| 黄视频免费| 国产又长又大又粗的视频| 91在线页| 日韩簧片免费看| 精品国产72| 亚洲一卡2卡3卡4卡乱码网站 | 日韩欧美成人午夜福利| 超碰吊日色| 九九九久千久久激情蜜桃在线看| 久久久免费一级黄片| 麻豆久久精品亚洲精品88| 天美传媒在线一区| 久久久久13| av网页一区二区三区| 欧美日韩亚洲少妇寂寞影院正在播放 | 啊啊啊啊,啊啊好多水| 丰满人妻-区二区三区免费| 无码 黑人一区二区三区| 精品十八在线观看| 最新亚洲风情电影| 丁香五月电影| 999岛国大片| 国产在线强奸视频| 欧美激情久操网| 欧美特黄视频网站| 五月开心久久AV官网| 伊人久久88国产女| 特级丰满少妇一级AAAA爱毛片| 91黑人狂躁丰满熟妇| 久久精品高清无码一区| 蘋果手機免費看成人Av| 熟女一区二区| 日本欧美成人片AAAA| 欧美精品久久久久久久久88| 日本黄色精品专区网站| 视频国产欧美在线播放| 精品在线蜜臀| 色婷婷在线视频| 精品亚洲国产成人AV制服丝袜| laoshunv91| 夜嗨影院| 老熟妇一区二区三区…| 亚洲在线欧美| 97干在线视频| 久久九九热| 天堂岛av| 大稥蕉免费视频这里只有精品| 亚洲av强奸乱伦| 欧美Aⅴ| 伊人天天久久动态图| 90后后入| 蜜臀99久| 国产精品高潮久久久无码| 男人天堂毛片| 丝袜无码a片| 白丝AV网站| 欧美成人亚洲精品| 精品人妻一区二区三区夜夜| 插入粉嫩少妇视频| 高潮内射在线| 97网址www| 亚洲aw毛茸茸在线 | 亚洲素人网| 诱惑人妻欧美一区在线播放| 岛国人妻少妇av在线观看| 久超超碰| 夜夜夜爽www精品视频| 久草免费在线视频| 久久久九九九| 神马久久午夜| 丰满人妻无码一区二区三区| 97人人操人人摸人人爱| 久久综合婷婷| 中文字幕人妻色偷偷久久皮| 60秒免费小视频| 色婷婷A V一二三四区麻豆综合| 大香蕉中文| 啊啊啊啊啊啊在线观看| 9久久久久| 久久久久久久九九九九九九| 成人av动漫在线观看| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 久久九七| JuliaAnn丝袜熟女系列| 91精品久久久久五月天精品| 欧美后进式| 嗯嗯啊好大| 亚洲国成人情色好看电影| 免费国产| 天天日天天干天天操| 亚洲成人美女无吗| 精品久久大胆人体| 少妇厨房愉情理伦片bd在线观看| 伊人一区二区三区| 最新亚洲黄色免费电影| 欧美视频在线第3页| 精品二999| 99久久免费看精品国产一区| 亚洲少妇综合在线播放| 九区国产| 91c色| 老鸭窝黄色视频网站| 强奸乱伦AV一天堂网| 熟妇人妻精品一区二区视频色欲| 91欧美丨精品丨入口| 一起草三级AV电影在线观看 | 怡红院成人av| 五十路六十路七十路熟婆| 激情综合五月婷婷| 伊人天天久久动态图| 97视频网站在线观看| 69精品| 亚洲色图久久成人| 亚洲一区操| 91总综合网| 中国zzijzzijzzwww精品| 中文高清一区二区的| 97久久天天综合色天天综合色电影| 激情文学小说一区二区| 欧美大香蕉同搞| 青操影院| 大香蕉伊人亚洲| 为用户提供免费看黄网址在线观看| 亚洲第一页欧美| 欧美精品xxxwww| 91老司机视频| 久久人妇| 天天流夜夜操| 永久免费发布性爱网| 色路综合| 亚洲 欧美 另类 综合 偷拍| 在线v中文字幕一区二区三区| 亚洲熟妇A V黑人| 欧美熟女妇同| 亚洲欧洲小说图片视频 | 操逼逼无码| 97超碰欧美中文字幕| 九九玖玖精品| 激情综合网五月婷婷| 美日韩男女操屄视频| 天天干1区2区在线| 91色女| 欧美婷婷五月天| 亚洲综合电影| 日本媚薬中文字幕在线| 亚洲欧美日韩电影网站一区 | 色婷婷基地| 国产成年女人免费视频播放a| 少妇三p| 黄页网站成人免费| 久久久99999久网站| 国产又大又硬又长又粗| 亚洲精品国产熟女久久久久久| 国产AAAAAABBBBB| 18禁久久| 啊啊啊好疼| 8050无码八戒| 青草av在线| 视频分类 国内精品| 日韩欧美中文| 99久久com免费视频′| 91N欧美| 啊啊啊啊啊啊啊国| 久操99| 日本女人操逼| 久久精品视频久久久| 超踫中文字幕| 日韩亚洲美女一区久久| 中文字幕少妇色| 歐美性天天| 色香伊人| 欧美色图99| 情色大香蕉| 啊啊啊好多水| 日韩亚洲精品一区二区| 妺妺跟我一起洗澡没忍住| 最新国产亚洲精品精品国产亚洲综合| 日韩中文字幕视频在线观看| 丁香五月AV| 91亚洲影院综合| 女上位精品在线| 久久久96| 亚洲一卡2卡3卡4卡乱码网站 | 久久国产精品m码| 亚洲人成在线放东京热| www.亚洲成人一区| 免费毛片在线播放| 亚洲美女色图| 亚洲中文字幕熟女| 色五月综合网| 久久久久精| 91n.欧美| 91久久| 中文字幕久久精品一区| AV无码久久久精品| 91熟女丨老女人| 高清不卡一二三区视频......| 中文字幕av亚洲精品| 青女在线| 久久国产视频性吧| 亚洲一区二区久久久久| 极品另类| 亚洲另类色综合网站| 狠狠搞 亚洲91| 国产AV高清AV无码| 亚洲欧洲无码bt精品合集| 正宗无毛一线天嫩逼| 欧美色图片91| 啪啪啪大香蕉| 91快色色色色色| 亚洲双插| 伊人亚洲综合| 97内射偷拍| 99热这里只有精| 丝袜美腿制服人妻二区中文字幕| www国产无码| 国产精品丝袜在线| 国产一区二区精品在线视频| 夜夜操天天肏| 99热这里| 天天综合精品| 99色婷婷| 国产精品午夜高潮呻吟久久av| 国语对白露脸XXXXXX| 亚洲九九视频| 任你干在线视频| 久久久中文版| 欧洲射精91| 美女露胸露奶头| 亚洲操操操| 国产强奸超碰AV| 欧美v日韩v亚洲v最新在线| 日韩欧美麻豆| 国产乱码久久久| 国产精品3| 日韩不卡码| 91殴美大片| 91 国产丝袜在线放观看| 青青操青娱乐| 99热只有这里有精品| 日韩无码黄色片| 极品综合| 天天谢天天干| 艹精品| 无码精品一区二区三区潘金莲| 免费日韩黄片| 欧美日韩另类在线播放| 亚洲第一精品在线视频| 小视频国产| www.伪伪| 成人午夜小视频手机在线看| 秋霞免费AV| 中文字幕一区二区三区视频播放| 黑人精品成人一区二区三区| 亚洲AV成人在线| 日韩一区二区三区四区五区| 首页中文字幕中文字幕免费| 亚洲制服欧美另类内射| 亚洲av强奸乱伦| 日韩一区二区高清在线观看的| 最近2019中文字幕国语免费版| 国产精品一二三在线看| 人、人、摸,人、人、草| 色婷婷综合网站| 五月丁香综合激情| 欧美欲色| 欧美日动态视频| 亚洲图片偷拍欧美| 欧美AB在线| 免费AV中文网在线观看| 日韩综合成人免费视频| 国产一区二区a毛片| 无码免费精品高清| 99老司机精品视频在线观看| 九九夜精品九九在线| 欧美男人的天堂| 久久精品熟妇丰满人妻99| 少妇啪啪自拍| 欧美78p| 欧美人人天天网| 自拍偷拍国产欧美日韩韩| 国产一级αv免费看片| 吻戏激情性巴克| 精品一区二区三区最新| 美女诱惑在线一区| 中国黄色特级精品一区二区三区片| 狼狼色丁香久久婷婷综合五月| 91在线无码精品秘 软件| 国产怡红院| 亚洲精品一区二区三区在线播放| 国产亚洲精品美女久久久| 欧美日韩人妻精品一区二区三区| 激情小说成人日本无码一| 日本成人A片网站| 毛片99-全集电影手机免费观看完整-B029AV | 久久久性少妇| 69天堂| 亚洲h片在线免费观看| 日韩探花精品在线视频| 神马久久中文字幕| 日日插夜夜| 五月婷久久| 大香蕉人妻| 久久久久久久久久久人妻| 青草精品视频一日本久久久久网站| 久久天天性久久伊人| 国产91乱伦| 人妻人妻天天碰| av资源在线观看少妇| 日本欧美中文字幕| 亚洲精品1区| 岛国黄色短视频| 91AV天美在线视频| 99爱久久视频频| 极品尤物在线观看| 97超级久久| 亚洲情色91| 91免费看一区二区三区 | 免费看国产曰批40分钟怎么下载| 精品人妻一区| 俺去久久| 国产97在线视频| 欧美成人免费在线观看| 亚洲男人的天堂一区二区| 日韩一区二区精彩视频| 欧洲精品网| 色九九综合| 欧美成人A√在线一区二区| 九九九九九九亚洲| 天天干天天操天天干天天操| 啊啊啊啊无码| 国产乱弄免费在线视频。 | 欧美日韩狠狠爱| 啊啊啊啊好疼视频| 五月亭亭六月丁香| 人人人人插| 78p欧美| 久久二| 色色五月婷婷| 国产小视频91| 天天色,天天干,天天干| 国产欧美伊人| 国产精品96久久久久久| 精精夜夜| 综合久久久久久久久91| 九九成人精品| 五月婷在线| 一区操逼日比视频| 在线视频亚洲无码| 久久中出在线| 色av中文字| 欧美做爰无码A片视频| 欧美激情综合| 69一区二区| 蜜臀无码一区二区| 亚洲人妻熟妇三十三区| 思思热久久成人| 国产女同视频在线播放| 亚洲97| 2024年最新色情网站在线观看| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 熟女精品一区二区三区| 乱伦av国产| 熟妇色99| 搡老女人老熟女91| 91天天| 日韩一级欧美一级国产一级台湾| 啊啊啊免费视频| 99re在线| 91综合网站| a亚洲欧美色欲| 久久精品国产精品一区| 天天日天天看| 国产精品99999| 好吊色综合| 日韩黄色片子| 美女极品一区二区三区| 久久精视频美日韩在线视频| 中国探花熟女| 亚洲人妻一区二区三区| 中文字幕国产精品1区| 亚洲中文人妻色| 国产又操| 91N五十路| 久久久九九| 日本久久久久久久久久| 日本操逼视频在线| 一个人免费HD91视频| 日韩少妇一区二区三区| 国产精品情侣啪啪| 日产精品久久久一区二区| 97干色天堂| 久久久91福利姬| 亚洲无线观看久久| 欧美视频一区二区在线| 东京热激情视频一二三区| 91影视亚洲| 国产偷拍网站| 亚洲丁香花色| 欧美 综合 亚洲| 国产在线综合福利网站| 日韩av一级黄片| 日韩精品操少妇| 久久精品一区二区三区四区五区| 少妇厨房愉情理伦片bd在线观看| 色牛牛AV| 人妻素股| 中文字幕精品日韩中文字幕| 国产亚洲 中文欧美久久| 国产97/欧美| 欧日a| 狠狠干妹子| 黄色免费网页无码| 色阁阁AV综合网| 大香蕉一区二区在线观看.| 久久久久久久久久久97| 精品对白久久不卡| 精品v日韩欧美国产| 桃色五月天| 天天搞欧美| 亚洲成?V人片在线观看福利| 青木玲在线不卡| 久草免费福利在线播放| 国产成人精品午夜福利| 国产成人bd在线观看| 欧美亚洲丝袜人妻制服99| 久9精品| 91亚州欧美| 国产一区二区三区白丝| 色老久久| 97人妻免费中文字幕| 久久久少妇诱惑精品视频| 久久久久成人亚洲国产| 91久久国产精品| 色色无码| WWW操逼| 99精品综合久久久久五月天| 九九色色| 日韩欧美成人综合在线| 美女爽爽爽刺痛洞洞| 97综合在线| 26uuu国产亚洲综合| 日本中文字幕熟妇| 性色一线| 色婷视频| 人人操人人插人人摸人人干| 欧美偷偷网| 97资源超碰| 成人五月天丁香激情综合| 精品久久久久瑟瑟| 日韩性爱电影一区| 久草精品国产99| 丝袜美腿丝袜| 亚洲图片 激情小说| 极品色www影院| 操啊国产| 玖玖爱影院| 九九九九九九综合| 97一区二区三区视频| 大香蕉在线视频15| 色999;丁香五月| 留下AⅤ黄色片| 国产一级特黄大片处女| 91综合网| 淫荡网址| 蜜臀久久99精品久久久久久酒店 | 女优视频第10页| 尤物一级在线免费观看| 美国日韩黄片| 亚洲欧美第一页| av黄图片在线观看| 九九九九精品精| 91丰满| 97天天| 天天噜| 婷婷超| 明星性猛交ⅹxxx乱大交| 91操熟女视频| 超碰色97| h在线看免费版在线看| 91超级碰碰碰| 日韩AV电影网站| 91 丝袜在线| 久久超碰免费的| 亚洲综合一| 色哟哟av| 九九九九一区| 可免费观看的av毛片中日美韩| 日本视频在线中文字幕| 亚洲国产精品成人综合| 人人操人人搞人人草| 精品黑人一区二区| 五月天伊人| 啊啊啊啊啊好大好舒服想要| 亚洲诱惑天堂| 999热这里只有精品| 嫩呦国产一区二区三区AV| 强奸乱伦av电影| 亚洲aw毛茸茸在线| 久久同城AV| 91精片| 日本人人操人人操| 午夜呻吟欧美| 欧美偷| 亚洲一区二区三区播放在线| 97人人模人人爽人人| 婷婷五月色| 和协无码影院| 蜜区区视频79 | 熟妇视频一区二区三区在线| 国产在线强奸视频| 天天操av懂色| 色色97爱| 国产福利小视频高清在线观看| 色爱国产| B049AV在线播放| 九九五月天| 国产精品一二三在线看| 麻豆福利视频导航| 91bbbbbb| 五月天婷婷色| chaopen97久久| 日韩成人大片在线观看| 岛国人妻少妇av在线观看| 神马九九| 狠狠躁AV| 中文字幕丰满人妻日本| 精品久久99| 亚洲春色一区二区三区| 久久久久久精品免费看A级| 国产av白丝| 91国产操逼视频| 激情露脸爱| 97视频在线播放| 中文字幕在线观看丝袜| 91老熟妇| 亚洲人精品久久久喷水| 亚洲啪啪综合?v一区综合精品区| 啊啊啊啊嗯嗯嗯用力好爽 | 中文字幕在线观看AV| 亚洲高清视频在线免费观看| www.四虎在线| 青青免费在线视频一区| 97欧美色综合| 精品久久視頻在线| 成人五级久久| 黄骗免费网站| 1024亚洲中文字幕久在线看片你懂的 | 一区AV| 亚洲第一页第二页激情| 大香樵伊人网| 黄色成人网久久久久久| 精品国产国产AV| 超碰人人超在线观看| 日韩一二三区| 久噜噜| 国产精品久久伊人| 亚洲情色视频| 人人九九精| 蜜臀av中字字幕网站| 伦伦成年午夜免费视频| 69一区二区三区 | 五月丁香色色网| 偷拍2020| 午夜性生活av免费在线看| 久久超碰、| 九九色婷婷| 成人aⅴ一区二区三区| 欧美色欧美| 极品少妇久久久| 色999偷自拍拍| www.婷婷六月天| 中文字幕一区二区日韩网| www欧美91| 欧美精品亚洲精品日韩传电影| 亚洲图片欧美制度| 欧洲色| 日韩精品区二区三区不卡| 唐山老熟妇露脸啪啪叫| 国产黄色在线播放观看| 中国一级αV| 国产白丝网站| 嫩草伊人久久精品| 黑人中出21连凳花野真衣| 亚洲欲色9532548967一区| 五月丁香激情综合网| 免费视频a级毛片免费视频| 亚洲五月婷| 国产精品99久久久www| 色哟哟综合| 男女性感激情网站| 亚洲成人性爱网站在线播放| 色操逼网| 国产精品宅男免费| 99九九久久| 中文字幕 国产区| 亚洲欧洲另类| 你操综合| 天天射夜夜| 人伦四五区| 2017亚洲天堂| 青娱乐福利99| 一级一性爱免费视频| 蜜乳中文字幕a在线| 岛国在线一区二区三区| 97人人干人人操| 亚洲AV小说| 亚欧美综合网。| 啊啊啊慢点| 久久中文字幕一区不卡| 中日韩欧美精品无码AⅤ一区二区| 午夜丁香| 久久熟女人| 久久、1234| 大香蕉视频啪啪啪啪| 欧美性色欧美| 欧美亚洲一级在线观看| 午夜电影在线观看无码专区| 无码99| 热热色色综合| 免费AV中文网在线观看| 亚洲AV永久无码一区仙野| 4141514逼喷水三级片| 日韩精品亚洲一二三| 日韩av不卡在线看| 中文高清一区二区的| 亚洲天堂人人妻| 麻豆色99999| 操逼视频免费日韩无码| 一区二区三区 丝袜高跟| 97超碰欧美精品| 国模吧 一区二区三区| 欧美一区二区观看在线| 中文字幕十五区| 99久久精品国产系列| 久久九九国产精品| 一道本久久棕合爱| 亚洲自拍青操视频| 亚洲国产美女久久久久| 久操网无码在线| 歐美性天天| 国模不卡| 久久蜜色情在线视频xxx免费观看| 亚洲福利影院一区久久| 男人天堂久久精品| 加勒比综合网| 亚洲综合113页| 强被迫伦姧在线观看无码网站| 少妇被玩视频二三区| 久久夜夜| 精品视频久久久久九九九九9999| 国产夫妻性生活视频| 久久大香蕉| 夜色91| 操逼999| 色香色欲天天综合网天天来吧| 色噜噜人妻av中文字幕| 久久小视频| 国产日韩欧美操逼视频| 精国久久一区二区三区98| 中文字幕性感少妇av| 久久老女人| 青草影院内射高潮| 超碰在线人妻| 天天做天天爱夜夜爽毛片试看| 久草在| 99久久9| 日婷婷| 久久久久久综合久久伊人蜜月| 在线只有精品| 国产一区二区三三视频| 无码精品啪啪啪一区二区三区三州| 志村玲子视频一区二区| 亚洲三区视频| 欧美天天弄| 麻豆a'v电影| 久久久穴999| 色婷婷狠狠| 国产成人精品亚洲日本| 国产精品爱欲| 舔足天天操天天射| 亚洲AV在线资源| 久久久久久久78| 婷婷五月天福利| 日韩少妇一区二区三区| 极品综合| 久久二| 亚洲在线观看| 91强在线播放| 亚洲www91| 日韩ab网| 妇女视频网站| 色女网日韩| 一区久久久二区| 又黑又大又粗| 开心五月婷婷| 92福利社视频| 九九热视频在线观看| 日本午夜久久电影| 99九九精品| 色墦五月丁香| 99热这里只有精品9| 久久久久久AⅤ无码免费肉站| 女同女同恋久久级三级| 亚瑟国产精品久久无码| 人人弄人人摸| 成人小说视频在线精品欧美| 性饥渴少妇av无码毛片| 亚洲欧美不卡线|