国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成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
返回資訊列表
97超碰国产亚洲精品| 久久九九精品一区二区| 国产v片在线免费观看| 男人的天堂va在线| 91高清欧美| 又大又大又大又粗爽高潮观看| 蜜臀网 一区| 一区操逼| 97操综合| 国产熟女二区| 久久天天艹| 成人性爱电影网| 国产极品999| 免费人成毛片乱码| 中文字幕亚韩| 亚洲成人在线高清| 精品蜜乳AV免费观看| 东京热免费视频| 91亚洲黑人| 91模特在线观看| 午夜大香蕉| 久久国产99精品72福利 | 人人天天干干| 天天躁日日躁xxxxx| 日韩在线地址一| 男人的天堂在线有码| 1769国内精品视频| 蜜臀99久久精品久久久久| 嫩草黄页| av激情亚洲五月天| 国产97av| 日韩99神马视频片| 欧美一区二区成人一卡| 亚洲色资源| 欧美五区| 午夜呻吟欧美| 亚洲av在线免费观看| 狠狠色综合网| 富二代亚洲精品99| 伊人久久久日韩一区| 精彩视频日韩| 亚洲第一二区另类图| 国产精品欧美激在线| 熟妇一区二区三区| 伊人色综合超碰| 久久久久白虎| 久啪视频| 亚洲中文字幕熟女| 麻豆成人影音在线| 乱伦熟妇一区二区| 亚洲一二三| 老鸭窝亚洲毛片| 啊啊啊在线观看免费视频| 性色av一区二区| 免费亚洲国产精品久久一区| 国产日韩久久| 五月天大香蕉| 天天摸夜夜摸| 五月天成人综合| 小草精彩毛片| 久久超碰亚洲人| 精品欧美日韩在线观看| jizz啪啪| 99热婷婷| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 色五月AV| 欧美夜夜狠| 麻豆AV96熟妇人妻| 青娱乐国产剧情av一区| 小视频玖玖| 小草精彩毛片| 伊香蕉综合久久久久久久噜噜噜| 91爆操视频| 精品久久久中文字幕不| 欧美成人一区二区三区在线播放| 黄页网站免费高清在线观看| 图色综合网| 99热线麻豆| 国产精品免费日韩| 啊啊啊好大好湿| 综合久久久久久久久91| 99热精品免费| 亚洲双插| 国产成人无码久久精品| 亚洲棕合电彰| 精品久久久高清无码| 自拍盗摄一区| 中文字幕久久婷婷丁香五月天 | 国产精品无码久久久久2028| 中文字幕精品人妻丝袜| 肏逼福利网站| 99热这里是精品| 中国一级操逼视频| 欧州一区二区三区四区| 99性爱视频| 一区二区三区四区姦女| 国产传媒操逼视频| 欧美另类天堂| 欧美第一页性| 蜜乳中文字幕a在线| 婷婷丁香五月综合| 天天射日日干| 97 视频在线| 成人一道本免费视频| 99啪啪| 亚洲色系另类精品国产| 99久在线精品99re8a| 亚洲精品影视老司机| 中文字幕精品亚洲熟女| 四虎884a| 蜜桃传媒一区二区亚洲| 九色视频91| 色悠久久久av| 高潮内射在线| 激情第四色| 国产91精品福利在线| 中文字幕97| 啊啊啊好疼| 大香蕉色网| 激情丁香五月| 狠狠五月天| 秋霞欧美性爰视频| 亚洲四虎熟女精品| 中国探花熟女| 在免费jIzzjIzz在线视频| 秋霞网—男女啪啪亚洲免费体验区| AA级电影三区| 日本精品一区二区三区四区的功能| 后入国产| 99少妇| 欧美 亚洲 综合 制服 另类| 日本黄色裸日本黄色裸体 | 国产91福利小视频在线观看| 久久精品区| 一本大道久| 91熟女视频网| 久久久四区| 搡老女人老熟女91老熟女综合网| 国产精品夜夜| V A在线| 亚洲成成熟女人综合一区二区| 久久人妻无码毛片A片麻豆| 亚洲日韩欧美一区二区| 极品出轨视频网站| 天美传媒AV在线播放| 九九九九精| 亚洲精品国语在线播放| 成人免费看吃奶视频网站| 无码丰满熟妇一区二区浪潮AV| 国产又黄又粗的视频| 色欲三区| 熟女人妻久久中文字幕一二区| 人人人人人人少妇| juliaann丝袜大战黑鬼| 欧美激情精品久久久久久| 美女好片色日本| 日韩在线观看三级电影| 亚洲天堂AV在线播放| 亚洲网自拍| 美女诱惑在线一区| 丝袜美腿av女优在线| 日本乱人伦片中文三区| 亚洲色图殴美色图激情乱伦| 国产精品亚洲四五区在线观看| 色婷五月| 黑人精品久久97| 欧美劲爆第一页| www.99中文字幕| 78操B| 亚洲一区二区在线观看91| 爽极品影院| 亚洲色图大香| AV女优男人的天堂| 围产精品一区二区三区视频播放| 精品免费1| 97伊人超碰| 日韩乱中文 | 久久久久久波多野吉衣高潮| 男人天堂新| 中文字幕中文字幕一区二区| 91肉丝| 国产亚洲精品美女久久久久久2021| 亚洲超碰在线| 一级AAA片一区二区三区| 大香蕉视频一二三区| 亚洲国产无码精品首页久久久| 欧美成人色| 婷婷色色五月天福利| 97人人射| 少妇一区二区三区| 青青青操| 精品人妻免费观看| 久久久久久波多野吉衣高潮| 中文字幕高清精品一区| 久久亚洲熟妇在线视频| 亚洲图片激情综合另类| 97视频在线视频| 强奸乱伦Av网| av影院十区| 玖玖爱影院| 欧美人人天天网| 99热线麻豆| 熟女突然公开看18禁影片| 日韩有码回春沙龙第一页| 永久免费发布性爱网| 亚洲日韩熟女人妻高清在线| 国产精品久久久久久久久AV大片| 亚洲欧美天| 啊啊啊操一区| 人人贴人人摸| 麻豆 亚洲 97| 欧美亚洲日韩人妻在线观看| 亚洲电影中字一区二区| 午夜毛片高清免费不卡| 啊啊啊好爽快点啊啊啊嗯嗯| wwwxxx日本爽| 欧美78P| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 99久久精品无码一区二区毛片免费| 啊啊啊好湿久久| 亚洲福利中文字幕在线| 性无码专区2020| 在线色资源| 精品人人| 五月天伊人| 欧美激情性久久久久久| 91狠狠综| 在线不欧美| 天天操天天日青青草超碰av| 色av中文字幕| 91在线限制级| 密臀在线免费观看| 亚洲精品国产日韩无码AV永久免| 亚洲天堂人人妻| 人人做人人妻人人夜视频| 午夜福利一区二区影院| 91无码人妻精品一区二区三区蜜桃| 久久综合日韩亚洲欧美| 丁香久久| 亚洲宅男天堂| 欧美日韩丝袜| 91一区二区| 日本色色网| 日韩av影片在线观看| 手机在线视频国内精品| A 在线网址| 久久亚洲欧美中文字幕国语| 色色色日本| 91福利网在线观看| 亚洲一曲日韩精品| 亚洲一区二区精品福利| 性爱1区| 91超级碰碰| 日韩精品一区二区三区四虎影视| 婷婷五月在线视频| 日本天堂网| 大香蕉五月天婷婷| 中文字幕在线观看网页| 久草网站免费在线观看| 国产九九九九九九九九| 亚洲激情综合| 欧美老妇综合网| 校园春色中文字幕AV| 午夜欧美J进J出白浆流出久久久| 老汉网| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 最新国内自拍av免费| 中文字幕一区二区日韩网| 日本精品无码三级网站| 日本3级一区二区免费| 强奸乱伦 亚洲一区| www.色操逼| 久久人妻| 少妇干B| av天堂影视中文在字幕在线中文 | 婷婷情色综合网| 91总综合网| 国产污视频麻豆传媒一区二区| 亚洲男人的天堂网| 欧美综合网| 91精品人妻电影| 青青草亚洲一区 | 免费超碰97久久| 亚洲欧美人妻| 人人扣人人操| 色综合 加勒比| 欧美日韩国产成人高清| 99热这里只有精品8| 中国小夫妻勾搭露脸淫荡对白| 久久精视频美日韩在线视频| 日本一二区免费| 超碰精品97| 亚洲操人| 伊人欧美大香蕉视频| 久久久久久久伊人精品| 国产极品久久久| 精品人妻一二三| 大香蕉啪啪啪| 夜夜欢天天干| 中亚精品极乱| 欧美色综合| 日韩美脚一区二区网站| 国产传媒日韩欧美| 91视频观看网站| 男人的天堂2018| 日韩av三四区| 丁香六月激情| 天堂精品一区| 色婷婷丁香五月| 久插综合| 亚州精人品大香蕉| 国产精品青青草| 91日韩| 亚洲91网。| 亚洲欧洲小说图片视频| 天美传媒AV在线播放| 2020中文字幕| 国产乱伦亚洲| 91狠狠狠| 亚洲欧美另类少妇精品| 国产成人精品无码久久| 91天堂| 欧美日韩婷婷中文| 日本一级黄色电影| 日韩激情电影中文字幕| 四虎免费视频| 久久本道| 亚洲一区中文字幕一区| 成人小说另类在线| 亚州色图片在线色| 欧美精品第3页| 欧美日韩色综合网| 天天综合中文字幕 91| 美女AV一区二区| 激情综合久久| 404操逼福利视频| 伊人天天久久动态图| 操啊国产| 96久久久久| 欧美在线视频观看一二三四区高清| 亚洲色色色| 美国一区二区三区视频| 欧美性爱精品七区| 神马麻豆福利院| 抽插一区二区视频| 久湿久久 | 色婷婷小说| 操逼视频免费日韩无码| 日逼逼免费看| 亚洲性爱电影| 久久99深爱久久99精品| 国产小黄片在线免费观看| 亚洲情欲| 天美传媒AV在线播放| 亚洲影视高清第一页| 久久ww| 大地资源在线观看中文第二页| 91深夜夜| 国产浮力影院第1页| 日本一级婬片试看三分钟| 最新无码国产| 国内偷拍精品一区二区| 欧美黄色手机在线观看| 玖玖爱在线视频免费观看| 日韩无限资源| 日韩欧美大力操| 精品无码不卡视频| 久久少妇人妻| 欧美日韩中国x| 色97国产69香蕉| 99热在线只有精品| 中文字幕精品探花视频| 国产视频一区二区三区在线免费观看| 色黄污美女啪啪啪免费网站| 日韩三A大片在线观看| 26uuu国产亚洲综合| 日韩免费三级黄片电影| 午夜福利视频在线一区| 色五月婷婷五月天| 殴洲老熟女| 九九九九一区| 亚洲性爱乱操x| 久久一级无码精品毛片6| 天天摸,夜夜摸| 一级性爱啪啪视频| 国产精品一区二区黄片| 老熟女区| 丰满人妻一区二区三区免费| 亚洲天堂五月天国产| 成人午夜小视频手机在线看| 五月丁香综合| 97网站在线观看 | 婷婷六月色开| 亚洲狠狠入| 神马久久中文字幕| 97精品国产97久久久| 天天干天天日天天射黄色片| 色综合大香蕉| 欧美一级黄色18片免费看| 91亚洲黄色网| 超碰精品国产无码| 亚洲 日本 一 二 三| 伦理日韩国产久久| 午夜福利国产欧美日韩夜夜| 伊人色综合网| 青草一区二区| 亚洲色吧网| 少妇精品久久久八区九区| 大香蕉黄色一级片免费看| 99色综合| 亚洲色图 欧美| 99日韩| 加勒比无码毛片| 亚洲欧美国产其他二区| www. 男人天堂成人在线| 俄罗斯一区二区视频在线观看| 成人夜夜爽| 天天做天天爱| 伊人97色天使| 日韩人妻有码免费视频| 青青欧美| 日韩午夜啪啪视频| 乱伦熟女区| 啊啊在线| 久久婷婷在线观看视频| 欧美偷拍区| 无码九九九九| 精品女人999| 2018天天日天天日| 午夜毛片高清免费不卡| 国产精品久久久久av| 欧美综合色,www| 久妇网| 亚洲成人性| 大色网久久| 丁香五月激情综合| 精品人体无圣光凹凸| av草草在线电影| 啊啊啊网站| 国产精品网站www| 日本 免费 一区二区三区 久久香蕉| 夜夜躁狠狠躁日日躁av| 欧亚日韩三区| 青草青青久久久久久国产| WWW啪啪的com| 亚洲精品欧美专业| 激情干在线| 精品无码秘 人妻一区二区| 日本999精品| 亚洲天堂电影精品一区| 国产一级不卡在线观看| 国产白丝av| 加勒比综合a∨| 熟女自慰久久久| 天天弄天天操| 丰满的三级少妇欧美久久久| PMv在线观看| …亚洲黄色厕厕女女在线播…| 青木玲在线不卡| 蜜臀久久99精品久久综合| 成人免费福利在线观看| 天天弄天天操| surenchaopeng| 熟女在线视频| 中文字幕加勒比海高清无码免费视频| 涩五月婷婷| 一本道综合色图| www色色com| 97色婷| 操逼日韩无码| 情侣开房子拍 日韩无码 女的很漂亮| 久久久久9| 欧美色婷婷| 久热超碰| 欧美日韩资源在线| 乱老熟女一区二区三区| 屌妞视频久久久久久久久久久久| 伊人青青一区成人视频在线观看区| 久久久草成人网站久久久草成人久久久草久久久| 2019久久久久久久久福利| 嫩草影院在线观看精品| 欧美日韩香蕉| 97超碰美国| 特级大荫道BBwBBwBBW| 亚洲五区熟女| 精品无码一区二区三区| 一区二区高清视频| 欧美高清91| 天天影视91看看| 清纯唯美激情| 午夜a成v人电影| 国产精品自在线发布| 日韩欧美视频青青| 清纯唯美激情四射| 亚州综合色图| 国产精选视频| 亚洲人妻在线一区| 久久久五月天| 欧美熟妇精品黑人巨大一二三区| 欧洲亚洲综合| 亚洲欧美日韩中文播放| 免费操逼视频下载| 乱理日韩中文| 天天做天天爱| 免费综合亚洲中文| 麻豆国产成人精品| 男女啪啪啪18禁网站| 最新国产亚洲精品精品国产亚洲综合| 亚洲天堂色图| 密臀在线视频| 澳门特级毛片免费观看| 天堂v无码免费视频| 看看小穴| 91男女| 亚洲另类天堂| 精品一区二区三区蜜桃臀赵总 | 嗯嗯啊啊啊啊轻点视频| 精品无码秘 人妻一区二区| 亚欧成人综合影院| 区二区亚洲婷| 欧美黄色片在线播放| 欧美少妇第一页| 男人的天堂久久久| 六月婷婷五月丁香| 亚洲有码视频二区| 精品视频日日夜夜| a片在线播放| 91丝袜美腿网站| 免费观看性欧美一级| 嗯嗯啊啊用力视频免费| 久久精品午夜国产亚洲AV无码| 99这里有精品| 五月婷婷综合在线| 新精精品久久精品| 中文字幕国产| 120分钟婬片免费看| 天天搞欧美| 99操| 国产福利一区二| 狠肏骚人妻| 国产专区第一页| 我爱操| 婷婷五月天激情网| 亚洲一区在线观看欧洲| 男人的天堂久久狠| 天天操夜夜操| 无码137片内射在线影院| 色欲色香天天天综合网www-亚洲综合国| 色欲久久久久综合网| 国产视频小说| 成人夜夜爽| 久久欧美按摩999| 在线免费观看高清无码视频| 超碰久久精品| 嗯啊啊啊轻点视频| 国产动漫操逼视频| 极品综合| 天天看天天日天天操| 久久精品视| 91在线欧色| 操比国产| 国产一级高跟丝袜| 久久91| 91色伦| 亚洲色图美腿丝袜| 中文字幕精品一区二区精品| 岛国黄色短视频| 国内偷拍精品一区二区| 欧美 亚洲 第一页| 亚洲人综合| 啊啊啊好舒服视频在线观看| 精品久久久av| 一二三啪啪专区| 91蜜臀熟女| 国产女人成人精品视频| 93人人操人人| 日韩精品免费高清视频在线| 日本αv| 熟妇综合一区二区三区| 五月色网| 婷婷综合久久| 狠狠操狠狠| 国产免费永久精品无码| 久精品无码av一区二免费国产在线观看| 亚洲天天做日日做天天谢日日| 香蕉99秘 一区精品蜜桃臀| 久热9| 思思热在线视频免费| 日韩一级二级三级免费看完整版| 天天射夜夜骑| 欧美激情性久久久久久| 变态乱伦伪娘灌肠一区二区| 国产成年精品高清在线观看91| 亚洲?V无码专区在线电影| 亚洲伊人a线观看视频| 亚洲 日本 国产 综合| 欧美日韩性爱无码| 91超级碰| 9超碰免费| 夜夜嗨一区二区三区三州加勒比 | 久久久96| 黄色电影观看久久9| 狠狠激情综合狠狠操中文字幕| 激情五月天综合网| 中文久久久| 高清有码一区二区| 日韩一级免费性爱| 高树玛利亚无码流出| 大肉棒导航| 另类图片天天影视| 国产精品一二三在线看| 欧美男女午夜啪啪| 四虎精品一区| 成人性爱av| 99综合网| 国产精品97超碰| 亚洲97成人在线观看| 99久久99九九99九九九| 求求你操操我| 亚洲欧美日韩制服另类| 性爱综合网| 90后后入| 日韩av影片在线观看| 啊啊啊好湿国产一二| 99re黄| 日本精品不卡一二三区| 在线亚洲丝袜视频网站| 美日韩男女操屄视频| 韩日精品四区| 最新制服中文第一页| 亚洲欧美日韩夜夜| 人人操人人射人人干| 亚洲城人男人的天堂| 四虎影视国产精品| 激情综合婷婷| 极品少妇久久久| 99激情| 久久男人的天堂| 在线观看一卡二卡| 日本在线观看网址| 欧美性爱91| av天堂精品久久| 亚州中文字幕超碰97| 国产又黄又粗的视频| 日本日日色视频| 少妇人妻太紧太深av| 久干网| 中国国国产一级特黄毛片| 校园春色欧美| 久久99视频| 国产综合色精品在线观看| 中文字暮97| 秋霞成人一级在线观看| 校园春色宗合网| www超碰| 青青操网| 亚洲,欧美,综合网| 亚洲色图激情小说| 啪啪资源网| 中文字幕视频二区| 欧美少妇内射| 欧美人人天天网| 五月婷婷丁香中文字幕| 欧美加勒比| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 欧美综合色图片| 欧美日韩222| 国产精品视频白浆免费| 91熟女视频| 色偷偷男人的天堂麻豆| 熟妇人妻一区二区三区| 国产亚洲禁久一区二区| 97 国产精品| 久久久国产精品人妻丝袜| 久久精品性| 青青操综合网| 97超碰磁| 国产高清亚洲日韩一区| 又黄又硬又粗又长国产视频| 九一综合精品视品av| 三级三级三级日本99| 精品亚洲国产成人av网站| 国产无马在线| 在线午夜成人无码视频| aV中文麻| 人妻熟女一区二区在线视频| 午夜福利一区二区三区四区五区色婷婷| 最新AVzaixian| 清柠毛片| 欧美拳交在线播放| 三级三级三级日本99| 久久免费精品视频免一| 特级丰满少妇一级AAAA爱毛片| 被男人吃奶很爽的毛片| 亚洲无码超碰免费| 91精品无码久久久久久久| 玖玖婷婷五月天| 婷婷激情四射| 人人手机欧洲亚洲国产人妻| 蜜桃av综合网发布| 亚洲成人久久美女| 99热免费| 欧美在线啊啊啊| 久久久性爱| 欧美AB在线| 91色人妻| 亚洲无线码一区国产欧美国| 91丨九色丨大屁股| 97天天搞在线| 老司机午夜福利视频一区二区| 91美女国产在线| 久草成人| 日韩精品色呦呦| 亚洲一区中文字幕一区| 2020中文字幕| 亚洲欧美综合网站| 老妇女91| 久久精品三级影视| 国产欧美一区二区| 91精品操美女| 日韩强奸av| 十八禁视频网站| 亚洲官网在线| 美女久久久久久久久久久| 日韩簧片免费看| 91精品丝袜久久久久久| 91偷拍欧美亚洲| 欧美宗合色| 亚洲第一无码播放立川理惠| 曰韩欧美国产传媒麻豆第一区| 亚洲欧美在线综合| 蜜臀一区二区三区在线 | 综合亚州欧美| 人人看欧美性爱| 91熟女综合| 国产精品人妻免费精品| 超踫中文字幕| 无马一区二区| 无毛精品| 亚洲精品国产熟女| 人人色人人射人人妻| 精品福利| 超AV色女| 国产精品麻豆成人av| 欧美久久九九| 欧美精品三区| 97爱免费插| 高清有码一区二区| 国产60区。| 新久久AV| 91美女国产在线| 午夜福利免费精品视频| 超碰偷拍| 日本三级韩国三级99| 啊啊啊啊啊啊在线观看| 人妻夜夜爽天天爽麻豆三区网站| 亚洲欧美首页| 一区黄二区黄| 另类一区| 激情抓乳插进去啪啪啪日韩| 亚州欧美总和| 91亚洲网站| 亚洲有码 视频一区| 国产精品com| 污污污8888| 91超级碰碰碰| 免费成人自拍视频在线| 日韩人妻精品中文字幕| 婷婷五月天激情网| 91美女视频在线观看| 亚洲综合小视频小说在线观看| 欧美一级国产一级| 日韩黄片影院| 日本亚欧爱爱| 欧美性爱97超碰| 黄页视频网站野外| 美女黄页网站| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 老熟女91| 久久精品国产97欧美精品亚洲| 日本天天吊| 俺去俺来也在线www| 亚洲加勒比| AV男人天堂网| 国产又大又粗又长视频在线| 97综合在线| 草草影院最新网址| 亚洲无线观看久久| 18+91网站| 视频在线观看青青99国产| 大鸡吧尹人在线| 伊人久久婷婷| 国产高清MV操逼视频| 亚洲无码 国产无码| 九九热三级片| 97操碰| 97在线亚洲| 久久精品一区二区三区蜜桃臀| 91jk色拍| 中文字幕人妻色偷偷久久皮| 二区熟妇韩日| 蜜臀精品1区2区| 精品国产91久久久久久一区黄无| 天天欧美欧美亚洲网| 日本三级韩三级99久久| 开心五月深爱五月| 亚洲精品色| 亚洲 欧美 中文 日韩超碰| 开心五月激情网| 亚洲精品蜜桃久久久一区二区三区| 超碰人人妻| 久久亚州高清| 91精品丝袜久久久久久| 国产精品乱码久久久久久| 99热这里只有精品1| 大香蕉草草| 成人毛片免费| 最近2018中文字幕在线高清第一页 | 麻豆国产原创AV色哟哟| 亚洲妇色| 91亚洲狠狠色| 91香蕉国产尤物视频| 日小BB小视频| 蜜臀va69| 99国内熟女露脸视频| 欧日a| 蜜臀久久99精品久久久久久| 国产熟女无套内射| 91伊人久| 欧美激情五月天| 久久久不能久久久久| 中文字幕诱惑制服人妻丝袜美丝袜美| 粉嫩av一区二区三区四季| 亚洲风情在线观看| 精品国产91av一区二区三区| 国产精品一区二区 尿失禁| 欧美后进式| 欧美色图在线视频少妇| 七月婷婷综合| a级理论午夜日本| 欧美美女在线高潮999| 天天天做天天天爱天天天爽| 天堂69亚洲精品中文字| 美女自卫慰黄网站免费| 欧色性第一页| 精品性爱| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 91性片| 九九九不卡| 中文字幕av片| 91超碰在线播放| 91丝袜美腿片| 欧美亚洲日韩16色| 午夜天堂网| 97干色天堂| 国内操逼视频二区| 综合网久久| 97精品国产精品免费观看| 精品然女一区二区| 密臀AV在线| 亚洲人人夜夜澡人人爽| 天天综合站| 亚洲欧洲日韩中文字幕一区| 密臀在线一区尤物| 久久免费少妇| 强奸乱伦免费网站| 又大又长又粗又爽又黄| 亚欧免费| 国产av美女被艹的乱叫| 大香蕉伊人久久| 9/A片 | 日韩内| 伊人操| 久久久久久国产无码精品| 天天色综亚洲91污| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 91老妇女| 成人av影院在线观看| 国产亚州高清国产拍精| 欧美日不卡| 欧洲性人爱视频| 大香蕉综合网| 亚洲成a人在线观看久| 亚洲日精品| 欧美日韩大香蕉| 久久综合九九| 亚洲色入欧美| 国产无码久久高清| 日韩成人电影AV| 青草园大香蕉| 操逼无码操逼| 91丨国产丨白浆| 91精品导航| 操逼网站视频漫画国产| 爱欲AV| 一本色道久久天天射天天干| 日韩欧美三级| 亚州精品人妻一二三区| 一区二区亚州激情久婷婷欧美| 欧美色宗合| 人人操AV| 91中出视频| 久久五月婷| 麻豆成人影音在线| 五月天激情四射| 亚洲深夜福利| 床上啊啊啊一区二区三区| 黄色成年| 久久久久久午夜男人的天堂| 91久| 97国产超湿| 无码区蜜乳| 欧洲亚洲人人爽爽视频| 人干人人人操人人摸| 天天搞欧美| 五月色丁香| 久久国产熟女影院| 台湾肥佬网一区二区三区| 日本欧美一区二区三区视频麻豆| 男插女青青影院| 一,爱啪啪,在线免费视频| 中文字幕av一区二区三区人妻少妇| 香蕉人人操tv| 一区二区三区美女超清| 久久99精品国产| julia高潮后不停追击中出| 十八禁啪啪视频| av草草在线电影| 96AV精品| 自慰白浆在线观看| 亚洲无码精品AV久久久| 青青草中日韩在线| 亚洲欧洲小说图片视频 | 97 国产一区| www.99热| 家庭乱伦性爱av| 精品熟女呻吟久久91| 男人的天堂久久狠| juliaann精品熟女一区| 99日精品欧美国产| gogogo免费高清看中国国语 | 东京热视频网| 91丝袜| 一卡二卡在线播放| 蜜桃精品一区二区三区久在线| 男人天堂婷婷五月天校园春色| 欧美日韩 强奸乱伦| 亚洲无码电影久久久| 国产欧美另类久久久精品课程| 国产精品乱码久久久久久| 亚洲免费精品一区| 亚洲天堂男人在线| 久久露脸国产老熟女| 亚洲最大AV网| 国产精品一区二区三区,亚洲综合| 韩日色费| 老熟女搡BBBB搡BBBB视频| 自拍内地三级在线观看| 亚洲情欲| 一级性爱视频免费观看 | 国产精品久久久久亚洲av| 日本人妻中文字幕精品| 日韩福利综合一区| 久久久久亚洲AV无码专区少妇| 久久精品国产亚洲妲己影视| 亚洲色图欧美一区二区不卡| 99久久久无码国产精品性啊聊| 91色花堂| 性无码专区2020| 乱伦Av网| 五月丁香久久| 一区二区三区精品黑丝白丝酒店对鸡 | 色999人与兽| 蜜桃在线观看一区二区三区 | 99热最新网址| 超碰97人人乐| 久久伊人网视频一区二区三区| 国产精品爱欲| 热久久国产| 丁香五月天堂| 亚洲最大的黄色电影网站。 | 91伊人久| 亚洲AV无码国产精品久久久久| 香蕉在线一区二区三区| 免费看污网站| 亚洲情色综合网| 欧美裸体美女日麻屄| 欧美三级中文字幕hd| 超碰人人色| 亚洲天堂日本| 亚洲色婷婷久久91| 欧日a| 超碰97网址| 啊啊啊爽爽| av无码精品久久久久| 蜜臀精品1区2区| 91岛国动作片| 91成人久久| 婷婷另类小说| 中文字幕精品免费一区二区| 中文字幕 国产 精品| 9精品在线| 国产91福利小视频在线观看| 99色视频| 亚洲脚交| 久久性爱城| 天天性射网| 大香蕉黄色一区| 日韩在线观看AV| 欧洲一级性爱视频在线观看| 亚洲限制级| 亚洲成人av电影在线| 试看福利| 91狼人| 91热热色| 精品免费1| 国产91丝袜在线播放蜜月| 手机看av网站在线看| 四季av一区二区凹凸精品小说| 亚洲天堂 视频你懂的| 熟女精品一区二区在线观看| 大色综合网| 欧美日韩欧美| 九九毛片这里只有精品| 日韩三级在线观看网站| 久色99999| 久久春色| 久久大陆| 亚洲五月丁香花狠狠干一区二区三区 | 无套内射性感少妇视频| 亚洲 欧美 色图| 男插女青青影院| a级成人毛片免费视频高清| 人妻少妇无码| 97天天做| 亚洲欧美国产其他二区| 久久久新亚洲AV| 日韩色女精品| 九九九九88| 大香蕉黄色一区| 八戒午夜福利理论片| 91M一社| 五月天综合网| 东京日日夜夜| 久热大香蕉| 狠狠操夜夜| 在线视频亚洲无码| 91热色| 欧美丝袜美女电影一二三四区| 这里只有精品久久| 91足交| 亚洲一区二区三区在线激情| 一区二区三区四区姦女| 91强热人妻| 激情小说日韩无码| 日本熟妇精品九九| 这里是精品| 国产天天骚| 97精彩视频网站| 99色在线| 九九九九久久久| 亚洲有码 视频一区| 久久婷婷五月| 九月婷婷久久| 人妻激情偷乱视频一区二区三区| 夜夜草网站| 国内偷自视频区视频综合| 91东京热男人的天堂| 少妇人妻好深太紧了vr91| 成人无码在线超碰网| 波多野结衣之双飞调教在线播放| 另类欧美色| 亚洲av综合伊人久久| 国产欧美日韩一区二区三区| 熟妇一区二区三区| 男人高清无码一区二区| 欧美加勒比| 蜜臀99久久国产| 日韩少妇无码| 天天操天天射天天日| 少妇干B| 五月天激情小说网| 久久久久久久久久久久久久久乱码| 加勒比综合九九99视频在线播放| 五月婷婷基地| 91处女视频在线观看| 91狠狠狠| 夜夜操美女| 福利色色| 天天α片| 日本在线伊人啪啪| 一,爱啪啪,在线免费视频| 中文字幕精品资源在线| 日韩人妻网站| 日本一线产区和二线产区伦理片| 中国AV美女| 日韩一级片在线看| 神马午夜久久久| 成人小电影网站tex| 人人操人人摸人| 日韩一区二区熟女| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 在线啊v一区| 在线一区| 国产日产精品久久快鸭的功能介绍| 天天综合网一91网| 97亚洲精品超碰| 久久久久久久人妻| 我要色综合网站| 91色久| 大逼色网站| 91大学精品激情戏| 四虎av在线| 久热91| 91亚洲情色| 青青草自拍视频在线播放| 国产深喉视频一区二区| 色五天伊人| 99国内熟女露脸视频| 国产高清无码一区三区二区| 日韩精品电影| 国模精品娜娜一二三区 | 四方色播| 丝袜狠狠草尤物人妻av91| J?P?NESEHD熟女熟妇伦| 色婷婷综合久久久久中文一区二区| 97在线免费视频观看| 国产成人拍国产亚洲精品| 91偷拍欧美亚洲| 久久在线观看免费视频| 欧美亚洲高清不卡| 国产激情在线观看| 亚洲色图A| 顶级少妇BT天堂| 国产区91柔拿会所技师| 91性情| 高潮综合网| 国产尹人在线视频免费| 日韩肏逼视频| 大屁股熟女一区二区三区| 熟女丝袜视频| 欧美少妇色图| 60秒免费小视频| 欧美亚洲日韩人妻在线观看| 国产成人99久久亚洲综合| 99国产精品自在自在| 大香樵伊人网| 免费亚洲黄色视频在线观看| 成人久久久| 日韩精品人妻中文字幕不卡乱码| 日韩乱伦影音先锋| 中文字幕在线观| 亚洲图片 欧美电影| 9999亚洲电影| 色综合加勒比四四季| 亚洲一区二区性爱电影| 一牛影视成人片免费| 日本东京热久久久电影| 欧美日韩另类激情图片| 免费超碰97久久|