精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于Flink CDC打通業務數據實時入湖

大數據
在構建實時數倉的過程中,如何快速、正確的同步業務數據是最先面臨的問題,本文主要討論一下如何使用實時處理引擎Flink和數據湖Apache Iceberg兩種技術,來解決業務數據實時入湖相關的問題。

[[403582]]

大家好,我是一哥,今天分享一篇數據實時入湖的干貨文章。

在構建實時數倉的過程中,如何快速、正確的同步業務數據是最先面臨的問題,本文主要討論一下如何使用實時處理引擎Flink和數據湖Apache Iceberg兩種技術,來解決業務數據實時入湖相關的問題。

01 Flink CDC介紹

CDC全稱是Change Data Capture,捕獲變更數據,是一個比較廣泛的概念,只要是能夠捕獲所有數據的變化,比如數據庫捕獲完整的變更日志記錄增、刪、改等,都可以稱為CDC。該功能被廣泛應用于數據同步、更新緩存、微服務間同步數據等場景,本文主要介紹基于Flink CDC在數據實時同步場景下的應用。

Flink在1.11版本開始引入了Flink CDC功能,并且同時支持Table & SQL兩種形式。Flink SQL CDC是以SQL的形式編寫實時任務,并對CDC數據進行實時解析同步。相比于傳統的數據同步方案,該方案在實時性、易用性等方面有了極大的改善。下圖是基于Flink SQL CDC的數據同步方案的示意圖。

Oracle的變更日志的采集有多種方案,這里采用的Debezium實時同步工具作為示例,該工具能夠解析Oracle的changlog數據,并實時同步數據到下游Kafka。Flink SQL通過創建Kafka映射表并指定 format格式為debezium-json,然后通過Flink進行解析后直接插入到其他外部數據存儲系統,例如圖中外部數據源以Apache Iceberg為例。

下面詳細解析一下數據同步過程。首先了解一下Debezium抽取的Oracle的change log的格式,以update為例,變更日志上記錄了更新之前的數據和更新以后的數據,在Kafka下游的Flink接受到這樣的數據以后,一條update操作記錄就轉變為了先delete、后insert兩條記錄。日志格式如下所示,該update操作的內容的name字段從tom更新為了jerry。

  1.   "before": {          --更新之前的數據 
  2.     "id": 001, 
  3.     "name""tom" 
  4.   }, 
  5.   "after": {           --更新之后的數據 
  6.     "id": 001, 
  7.     "name""jerry" 
  8.   }, 
  9.   "source": {...}, 
  10.   "op""u"
  11.   "ts_ms": 1589362330904, 
  12.   "transaction"null 

其次再來看一下Flink SQL內部是如何處理update記錄的。Flink在1.11版本支持了完整的changelog機制,對于每條數據本身只要是攜帶了相應增、刪、改的標志,Flink就能識別這些數據,并對結果表做出相應的增、刪、改的動作,如下圖所示changlog數據流經過Flink解析,同步到下游Sink Database。

通過以上分析,基于Flink SQL CDC的數據同步有如下優點:

  • 業務解耦:無需入侵業務,和業務完全解耦,也就是業務端無感知數據同步的存在。
  • 性能消耗:業務數據庫性能消耗小,數據同步延遲低。
  • 同步易用:使用SQL方式執行CDC同步任務,極大的降低使用維護門檻。
  • 數據完整:完整的數據庫變更記錄,不會丟失任何記錄,Flink 自身支持 Exactly Once。

02 Apache Iceberg介紹

通常認為數據湖是一種支持存儲多種原始數據格式、多種計算引擎、高效的元數據統一管理和海量統一數據存儲。其中以Apache Iceberg為代表的表格式和Flink計算引擎組成的數據湖解決方案尤為亮眼。Flink社區方面也主動擁抱數據湖技術,當前Flink和Iceberg在數據入湖方面的集成度最高。

那么Apache Iceberg是什么呢?引用官網的定義是:Apache Iceberg is an open table format for huge analytic datasets。也就是Apache Iceberg是一個大規模數據分析的開放表格式。

Iceberg將數據分為元數據管理層和數據存儲層。首先了解一下Iceberg在文件系統中的布局,第一部分是數據文件data files,用于存儲具體業務數據,如下圖中的data files文件。第二部分是表元數據文件(Metadata 文件),包含Snapshot文件、Manifest文件等。Snapshot表示當前操作的一個快照,每次commit都會生成一個快照,一個快照中包含多個Manifest,每個Manifest中記錄了當前操作生成數據所對應的文件地址,也就是data files的地址。基于snapshot的管理方式,iceberg能夠進行time travel(歷史版本讀取以及增量讀取)。Iceberg文件系統設計特點如下圖所示:

Iceberg的表格式設計具有如下特點:

  • ACID:不會讀到不完整的commit數據,基于樂觀鎖實現,支持并發commit,支持Row-level delete,支持upsert操作。
  • 增量快照:Commit后的數據即可見,在Flink實時入湖場景下,數據可見根據checkpoint的時間間隔來確定的,增量形式也可回溯歷史快照。
  • 開放的表格式:對于一個真正的開放表格式,支持多種數據存儲格式,如:parquet、orc、avro等,支持多種計算引擎,如:Spark、Flink、Hive、Trino/Presto。
  • 流批接口支持:支持流式寫入、批量寫入,支持流式讀取、批量讀取。下文的測試中,主要測試了流式寫入和批量讀取的功能。

03 Flink CDC打通數據實時導入Iceberg實踐

當前使用Flink最新版本1.12,支持CDC功能和更好的流批一體。Apache Iceberg最新版本0.11已經支持Flink API方式upsert,如果使用編寫框架代碼的方式使用該功能,無異于鏡花水月,可望而不可及。本著SQL就是生產力的初衷,該測試使用最新Iceberg的master分支代碼編譯嘗鮮,并對源碼稍做修改,達到支持使用Flink SQL方式upsert。

先來了解一下什么是Row-Level Delete?該功能是指根據一個條件從一個數據集里面刪除指定行。那么為什么這個功能那么重要呢?眾所周知,大數據中的行級刪除不同于傳統數據庫的更新和刪除功能,在基于HDFS架構的文件系統上數據存儲只支持數據的追加,為了在該構架下支持更新刪除功能,刪除操作演變成了一種標記刪除,更新操作則是轉變為先標記刪除、后插入一條新數據。具體實現方式可以分為Copy on Write(COW)模式和Merge on Read(MOR)模式,其中Copy on Write模式可以保證下游的數據讀具有最大的性能,而Merge on Read模式保證上游數據插入、更新、和刪除的性能,減少傳統Copy on Write模式下寫放大問題。

在Apache Iceberg中目前實現的是基于Merge on Read模式實現的Row-Level Delete。在 Iceberg中MOR相關的功能是在Iceberg Table Spec Version 2: Row-level Deletes中進行實現的,V1是沒有相關實現的。雖然當前Apache Iceberg 0.11版本不支持Flink SQL方式進行Row-Level Delete,但為了方便測試,通過對源碼的修改支持Flink SQL方式。在不遠的未來,Apache Iceberg 0.12版本將會對Row-Level Delete進行性能和穩定性的加強。

Flink SQL CDC和Apache Iceberg的架構設計和整合如何巧妙,不能局限于紙上談兵,下面就實際操作一下,體驗其功能的強大和帶來的便捷。并且順便體驗一番流批一體,下面的離線查詢和實時upsert入湖等均使用Flink SQL完成。

1,數據入湖環境準備

以Flink SQL CDC方式將實時數據導入數據湖的環境準備非常簡單直觀,因為Flink支持流批一體功能,所以實時導入數據湖的數據,也可以使用Flink SQL離線或實時進行查詢。如下測試是使用Flink提供的sql-client完成的:

第一步,新建Kafka映射表,用于實時接收Topic中的changlog數據:

  1. id STRING, 
  2. name STRING 
  3. WITH ( 
  4. 'connector' = 'kafka'
  5. 'topic' = 'topic_name'
  6. 'properties.bootstrap.servers' = 'localhost:9092'
  7. 'properties.group.id' = 'testGroup'
  8. 'scan.startup.mode' = 'earliest-offset'
  9. 'format' = 'debezium-json' 

第二步,新建iceberg結果表,用于存儲實時入湖的數據:

  1. CREATE TABLE iceberg_catalog.default.IcebergTable ( id STRING, name STRING ); 

注:

a)其中省略了配置catalog過程

b)當前iceberg 0.11默認創建表格式版本V1,通過代碼更改版本為V2,以支持upsert方式導入數據湖

第三步,啟動upsert方式實時入湖的Flink任務:

  1. SET table.dynamic-table-options.enabled=true
  2.  
  3. INSERT INTO IcebergTable /*+OPTIONS('equality-field-columns'='id')*/ SELECT * FROM KafkaTable; 

注:當前iceberg 0.11不支持Flink SQL形式upsert,通過修改源碼達到支持配置指定字段更新功能。

第四步,離線或者實時查詢統計IcebergTable表中的數據行數:

a)離線方式

  1. SET execution.type=batch; 
  2. SELECT COUNT(*) FROM IcebergTable; 

b)實時方式

  1. SET execution.type=streaming; 
  2.  
  3. SELECT COUNT(*) FROM IcebergTable; 

2,數據入湖速度測試

數據入湖速度測試會根據環境配置、參數配置、數據格式等不同有所不同,下面是列出主要配置和測試出的數據作為參考。

a)資源配置情況

  1. TaskManager 內存4G,slot:1 
  2. Checkpoint 1分鐘 
  3. 測試數據列數 10列 
  4. 測試數據行數 1000萬 
  5. iceberg存儲格式 parquet 

b)測試數據情況

數據入湖分為append和upsert兩種方式。append方式只能新增數據,不能對結果數據進行更新操作;upsert方式即能夠對結果數據更新。

append方式使用場景是導入數據之前已經明確該表數據不需要更新,如離線數據導入數據湖的場景,append方式下導入數據速度如下:

  1. INSERT INTO IcebergTable SELECT * FROM KafkaTable; 
  2.  
  3. 并行度1 12.2萬/秒 
  4. 并行度2 19.6萬/秒 
  5. 并行度4 28.3萬/秒 

update方式使用場景是既有插入的數據又有對之前插入數據的更新的場景,如數據庫實時同步,upsert方式下導入數據速度,該方式需要指定在更新時以那個字段查找,類似于update語句中的where條件,一般設置為表的主鍵即可,如下:

  1. INSERT INTO IcebergTable /*+OPTIONS('equality-field-columns'='id')*/ SELECT * FROM KafkaTable; 
  2.  
  3. 導入的數據 只有數據插入 只有數據更新 
  4. 并行度1 3.2萬/秒 2.9萬/秒 
  5. 并行度2 4.9萬/秒 4.2萬/秒 
  6. 并行度4 6.1萬/秒 5.1萬/秒 

c)結論

append方式導入速度遠大于upsert導入數據速度。在使用的時候,如沒有更新數據的場景時,則不需要upsert方式導入數據。

導入速度隨著并行度的增加而增加。

upsert方式數據的插入和更新速度相差不大,主要得益于MOR原因。

3,數據入湖任務運維

在實際使用過程中,默認配置下是不能夠長期穩定的運行的,一個實時數據導入iceberg表的任務,需要通過至少下述四點進行維護,才能使Iceberg表的入湖和查詢性能保持穩定。

a)壓縮小文件

Flink從Kafka消費的數據以checkpoint方式提交到Iceberg表,數據文件使用的是parquet格式,這種格式無法追加,而流式數據又不能等候太長時間,所以會不斷commit提交數據產生小文件。目前Iceberg提供了一個批任務action來壓縮小文件,需要定期周期性調用進行小文件的壓縮功能。示例代碼如下:

  1. Table table = ...  
  2. Actions.forTable(table
  3. .rewriteDataFiles() 
  4.     .targetSizeInBytes(100 * 1024 * 1024) // 100 MB 
  5.     .execute(); 

b)快照過期處理

iceberg本身的架構設計決定了,對于實時入湖場景,會產生大量的snapshot文件,快照過期策略是通過額外的定時任務周期執行,過期snapshot文件和過期數據文件均會被刪除。如果實際使用場景不需要time travel功能,則可以保留較少的snapshot文件。

  1. Table table = ...  
  2. Actions.forTable(table
  3.     .expireSnapshots() 
  4. .expireOlderThan(System.currentTimeMillis()) 
  5. .retainLast(5) 
  6.     .execute(); 

c)清理orphan文件

orphan文件的產生是由于正常或者異常的數據寫入但是未提交導致的,長時間積累會產生大量脫離元數據的孤立數據文件,所以也需要類似JVM的垃圾回收一樣,周期性清理這些文件。該功能不需要頻繁運行,設置為3-5天運行一次即可。

  1. Table table = ... 
  2. Actions.forTable(table
  3.     .removeOrphanFiles() 
  4.     .execute(); 

d)刪除元數據文件

每次提交snapshot均會自動產生一個新的metadata文件,實時數據入庫會頻繁的產生大量metadata文件,需要通過如下配置達到自動刪除metadata文件的效果。

Property Description
write.metadata.delete-after-commit.enabled Whether to delete old metadata files after each table commit
write.metadata.previous-versions-max The number of old metadata files to keep

4,數據入湖問題討論

這里主要討論數據一致性和順序性問題。

Q1: 程序BUG或者任務重啟等導致數據傳輸中斷,如何保證數據的一致性呢?

Answer:數據一致保證通過兩個方面實現,借助Flink實現的exactly once語義和故障恢復能力,實現數據嚴格一致性。借助Iceberg ACID能力來隔離寫入對分析任務的不利影響。

Q2:數據入湖否可保證全局順序性插入和更新?

Answer:不可以全局保證數據生產和數據消費的順序性,但是可以保證同一條數據的插入和更新的順序性。首先數據抽取的時候是單線程的,然后分發到Kafka的各個partition中,此時同一個key的變更數據打入到同一個Kafka的分區里面,Flink讀取的時候也能保證順序性消費每個分區中的數據,進而保證同一個key的插入和更新的順序性。

04 未來規劃

新的技術最終是要落地才能發揮其內在價值的,針對在實踐應用中面臨的紛繁復雜的數據,結合流計算技術Flink、表格式Iceberg,未來落地規劃主要集中在兩個方面,一是Iceberg集成到本行的實時計算平臺中,解決易用性的問題;二是基于Iceberg,構建準實時數倉進行探索和落地。

1,整合Iceberg到實時計算平臺

目前,我所負責的實時計算平臺是一個基于SQL的高性能實時大數據處理平臺,該平臺徹底規避繁重的底層流計算處理邏輯、繁瑣的提交過程等,為用戶打造一個只需關注實時計算邏輯的平臺,助力企業向實時化、智能化大數據轉型。

實時計算平臺未來將會整合Apache Iceberg數據源,用戶可以在界面配置Flink SQL任務,該任務以upsert方式實時解析changlog并導入到數據湖中。并增加小文件監控、定時任務壓縮小文件、清理過期數據等功能。

2,準實時數倉探索

本文對數據實時入湖從原理和實戰做了比較多的闡述,在完成實時數據入湖SQL化的功能以后,入湖后的數據有哪些場景的使用呢?下一個目標當然是入湖的數據分析實時化。比較多的討論是關于實時數據湖的探索,結合所在企業數據特點探索適合落地的實時數據分析場景成為當務之急。

隨著數據量的持續增大,和業務對時效性的嚴苛要求,基于Apache Flink和Apache Iceberg構建準實時數倉愈發重要和迫切,作為實時數倉的兩大核心組件,可以縮短數據導入、方便數據行級變更、支持數據流式讀取等。

本文轉載自微信公眾號「數據社」,可以通過以下二維碼關注。轉載本文請聯系數據社公眾號。

 

責任編輯:武曉燕 來源: 數據社
相關推薦

2022-06-09 14:19:46

順豐數據集成Flink

2022-07-20 23:15:11

Flink數據集CDC

2025-02-11 10:13:05

2021-09-07 10:41:21

CDC數據湖Apache Hud

2024-09-11 14:47:00

2024-06-03 08:26:35

2021-06-07 10:45:16

大數據數據倉庫數據湖

2024-06-06 08:58:08

大數據SQLAPI

2024-04-09 10:02:13

Spring數據Redis

2024-06-05 09:16:54

開源工具Airflow

2023-05-03 08:58:46

數據庫開源

2017-01-04 10:29:37

Spark運維技術

2017-01-15 13:45:20

Docker大數據京東

2021-08-31 10:07:16

Flink Hud數據湖阿里云

2021-06-28 09:34:55

數據湖大數據Flink

2024-02-19 00:06:06

數據分析系統Doris

2022-01-05 18:18:01

Flink 數倉連接器

2024-02-01 12:32:35

MySQL數據鎖數據庫

2023-01-31 08:34:19

點贊
收藏

51CTO技術棧公眾號

国产偷国产偷亚洲高清97cao| 亚洲精品一卡二卡三卡四卡| 日本不卡免费在线视频| 成人免费视频国产免费| 国产精品久久久久久久美男 | 久久精品999| 国产免费黄色大片| 日本一区免费看| 中文字幕一区二区三区色视频| 亚洲制服国产| 搡女人真爽免费午夜网站| 日韩一区二区免费高清| 精品中文在线| 黄色录像a级片| 久久精品国产精品亚洲| 亚洲欧美日韩国产一区二区| 这里只有精品免费视频| 91在线观看免费网站| 99国产精品久| 69av成人| 日本一本在线视频| 久久人人爽人人爽人人片亚洲| 午夜亚洲伦理| av小说天堂网| 国内精品久久久久久久果冻传媒| 国产人成亚洲第一网站在线播放 | 亚洲成av人片在线观看无| 影音先锋欧美精品| 另类天堂av| 欧美一区二区少妇| 日本xxxxxxx免费视频| 日韩精品一区二区三区蜜臀 | 国产精品高精视频免费| 成人免费三级在线| 国精一区二区三区| 午夜一区二区视频| 麻豆国产精品va在线观看不卡| 狠狠v欧美v日韩v亚洲ⅴ| 国产在线二区| 天美一区二区三区| 久久精品国产亚洲精品2020| 精品午夜一区二区三区在线观看| 91精彩在线视频| 国产又粗又大又爽的视频| 欧美一区二区三区在线看| 亚洲电影影音先锋| 日本免费不卡视频| 99视频在线免费| 日韩中文字幕视频| 狠狠色综合日日| a毛片在线观看| 97中文字幕在线观看| 久久久久久久久久久成人| 成人深夜福利app| 热三久草你在线| 欧美成人短视频| 91在线小视频| 中文字幕资源网在线观看免费| 实拍女处破www免费看| 亚洲free嫩bbb| 婷婷开心久久网| 999久久久免费精品国产| 国产精品午夜福利| 高清在线观看免费| 九九热r在线视频精品| 国产色91在线| youjizz欧美| 亚洲av无码精品一区二区| 裸体裸乳免费看| 最近2019免费中文字幕视频三| 国产成人自拍高清视频在线免费播放 | 五月天激情图片| 亚洲一区二区黄| www精品美女久久久tv| 国产电影一区| 中文字幕欧美色图| 波多野结衣家庭教师视频| 色小说视频一区| 国产精品二三区| 黄色成人91| 2022成人影院| 亚洲无码久久久久| 国产xxxxxxxxx| 亚洲 日韩 国产第一区| 欧美巨乳在线观看| 亚洲精品成人在线| 欧美aⅴ99久久黑人专区| 色女人在线视频| 国产在线观看免费视频今夜| 免费一区二区三区| 精品亚洲一区二区三区四区五区| 99re这里只有精品首页| 麻豆一区二区麻豆免费观看| 91在线观看喷潮| 亚欧在线免费观看| 国产一区视频在线播放| 欧美成人一区二区三区在线观看| 成人黄色一级视频| 亚洲精品动态| 免费av网站在线看| 男人的天堂一区| 青青在线免费观看视频| 国产欧美日韩视频| 51久久夜色精品国产麻豆| 国产乱人伦偷精品视频不卡 | 天天操天天干天天摸| 91看片在线免费观看| 99精彩视频在线观看免费| 亚洲国产成人精品女人久久久 | 99国产麻豆精品| 免费成人网www| 老司机在线看片网av| 无码人妻精品一区二| www.啪啪.com| 亚洲精品少妇一区二区| 国产精品综合不卡av| 日韩一区二区三区在线视频| 97超碰欧美中文字幕| 51精产品一区一区三区| av福利导福航大全在线| www..com国产| 国产a级黄色片| 最新不卡av| 国产欧美日韩91| 伊人久久男人天堂| 国产精品久线在线观看| 亚洲每日更新| 精品亚洲美女网站| 男人天堂久久久| 亚洲va久久久噜噜噜无码久久| 泷泽萝拉在线播放| 97超碰国产精品| 鲁鲁视频www一区二区| 午夜精品在线视频| 日韩国产欧美精品在线| 91福利区一区二区三区| 国产精品免费视频网站| 国产精品一区二区无线| 亚洲第一伊人| 日韩在线中文| 国产亚洲高清一区| 阿v视频在线| 欧美女v视频| 国产精品自产拍| 日本三级网站在线观看| 香蕉视频黄色在线观看| 99国产精品久久久久久| 加勒比成人在线| 亚洲午夜精品一区二区 | 日本免费不卡一区二区| 欧美一区二区.| 欧美日韩另类一区| 午夜亚洲伦理| 女同久久另类99精品国产| 黄黄的网站在线观看| 亚洲国产中文字幕在线| 冲田杏梨av在线| 懂色一区二区三区av片| 国产成人免费91av在线| 成人伊人精品色xxxx视频| 国产精品99久久久久久www | 一区二区三区av在线| 99中文字幕在线观看| 免费看污污网站| 中文字幕乱码免费| 日韩在线三级| 国产欧美综合精品一区二区| 91免费在线视频网站| 97超级碰碰| 国产在线观看91精品一区| 第四色中文综合网| 中国色在线日|韩| a级片国产精品自在拍在线播放| 国模人体一区二区| 无套内谢丰满少妇中文字幕| 成人免费aaa| 天天摸天天碰天天添| 免费看裸体网站| 国产传媒国产传媒| 中文字幕在线观看日| 亚洲精品无人区| 99久久精品无码一区二区毛片| 国产最新精品视频| 亚洲精品有码在线| 亚洲精品自拍视频| 欧美一级黄色录像| 中文字幕国产亚洲| 91精品国产亚洲| xxxxxxxxx欧美| 中文字幕欧美国内| 亚洲国产精品女人久久久| 精品久久久中文| 精品成人一区二区| 亚洲福利在线观看| 亚洲国产三级网| 午夜精品一区二区三区电影天堂| 天天影视色香欲综合网老头| 欧美午夜xxx| 亚洲色图欧美偷拍| 成人免费高清视频| 久久国产精品99久久久久久老狼| 亚洲国产清纯| 五月国产精品| 欧美性生活一级片| 欧美三级自拍| 美女呻吟一区| 粉嫩av国产一区二区三区| bl在线肉h视频大尺度| 欧美成人二区| 久热国产在线| av在线播放av| 久草免费在线观看| 男人久久精品| 亚洲精品久久久久久动漫器材一区| 精品国产露脸精彩对白| 午夜精品久久久久久久久久久| 欧美日韩免费在线观看| 在线观看精品一区| 欧美色老头old∨ideo| 亚洲大片免费看| 亚洲成精国产精品女| 欧美日韩午夜视频在线观看| 日韩亚洲欧美成人一区| 日韩成人久久久| 78色国产精品| 国内精品久久国产| 97超碰国产精品| 野战少妇38p| 日韩成人在线免费视频| 少妇精品高潮欲妇又嫩中文字幕| 在线xxxx| 极品一区美女高清| 亚洲永久免费精品| 久久久久国产精品人| 欧美丝袜丝交足nylons图片| 亚洲人成在线电影| 国产精品99一区| www.午夜色| 在线中文字日产幕| 四虎精品永久在线| 亚洲av片在线观看| 欧洲一级精品| 一区二区三区在线观看免费| 精品一区在线看| 亚洲自拍偷拍图区| 精品国内二区三区| 国模gogo一区二区大胆私拍| 日本一区二区三区四区高清视频| 三年中文在线观看免费大全中国| 日韩av在线播放观看| 青青免费在线视频| 欧美欧美在线| 蜜臀av性久久久久av蜜臀妖精| 一区二区三区高清| 亚洲第一色在线| 国产专区欧美专区| 男女av免费观看| 国产午夜精品一区二区理论影院 | 中国黄色一级视频| 国产在线观看a视频| 久久综合电影| 久久精品视频网| 亚洲国产欧美一区二区三区同亚洲| 国产精品扒开腿做| 激情六月丁香婷婷| 精品在线视频免费| 免费毛片在线| 岳的好大精品一区二区三区| 国产成人av资源| 欧美成人伊人久久综合网| 亚洲999一在线观看www| www.天天射.com| 国产高清在线免费观看| 精品欧美色视频网站在线观看| 国产欧美日韩视频在线| 91免费版在线看| 精品视频在线导航| 国产日韩欧美精品| www.自拍偷拍| 亚洲欧洲综合在线| 国内成人自拍| 26uuu久久天堂性欧美| 亚洲精品一区二区三区不| 国产精品一区二| 波多野结衣办公室33分钟| 精品亚洲综合| 在线观看欧美理论a影院| 欧美国产精品中文字幕| 精品91自产拍在线观看一区| 久久精品国产一区二区三区不卡| 成人免费网站黄| www在线免费观看视频| 99精品国产福利在线观看免费| 欧美日韩一区二区三区在线免费观看| 日韩av电影手机在线观看| 15—17女人毛片| 免费观看黄色av| 亚洲都市激情| 亚洲手机成人高清视频| 91精品国产色综合久久不卡98口| 少妇高清精品毛片在线视频| 国产suv精品一区二区69| 久操成人av| 午夜欧美大尺度福利影院在线看| 日本精品中文字幕| 国产麻豆剧传媒精品国产| 久久久久久青草| 激情成人综合| 欧美日韩国产中字| 成人欧美一区二区三区视频xxx | 国产日韩精品在线看| 雨宫琴音一区二区在线| 欧美色网站导航| 五码日韩精品一区二区三区视频| 丰满少妇一区二区三区专区| 亚洲系列在线观看| jazzjazz国产精品久久| 国产精品久久久久婷婷 | 亚洲美免无码中文字幕在线| 国产麻豆免费观看| 亚洲二区三区不卡| 欧美一区二区视频免费观看| 一区二区三区四区五区视频| 无码人妻丰满熟妇区bbbbxxxx| 丝袜久久网站| 黑人狂躁日本妞一区二区三区| 黑人中文字幕一区二区三区| 麻豆亚洲av熟女国产一区二| 精品视频一区二区三区在线观看| 亚洲女厕所小便bbb| 91九色露脸| 久久国产一级片| 亚洲制服欧美另类| 婷婷亚洲久悠悠色悠在线播放| 成人美女av在线直播| 日本天堂网在线观看| 亚洲大片精品免费| 欧美三级乱人伦电影| 无码人妻精品一区二区三区99v| www.av在线.com| 欧美午夜在线| 亚洲国产精彩中文乱码av| 亚洲人成色77777| 成人性生交大片免费看午夜| 国产高清精品久久久久| 欧美最近摘花xxxx摘花| 香蕉视频久久久| 亚洲精品在线a| 欧美色综合影院| 日韩激情视频一区二区| xxxxx日韩| 久久综合九色综合97_久久久| 成人激情视频免费在线| 黄色av网站免费观看| 99热免费精品| 久久久欧美精品| 最新一区二区三区| 凹凸成人精品亚洲精品密奴| 精品久久久久久久久久久院品网| 久热精品在线播放| www成人免费观看| 精品av在线播放| 好吊妞无缓冲视频观看| 欧美日韩视频精品二区| 国产精品亚洲成人| 91超碰在线免费观看| 午夜久久久久久久久久| 国产一区二区精品久久99| 国产成人av网| 亚洲一级黄色大片| 蜜臀av国产精品久久久久| 国产精品国产三级国产aⅴ浪潮| 欧美人妻一区二区| 136国产福利精品导航网址| 欧美激情精品久久久久久免费印度 | 蜜桃精品视频| 欧美高清视频不卡网| 999在线精品视频| av成人资源网| 精品一区二区三区四区在线| 爱爱的免费视频| 久久精品国产大片免费观看| 精品国产欧美一区二区三区成人| 91无套直看片红桃在线观看| 伊人成综合网| 2018日韩中文字幕| 日韩欧美国产另类| 国产美女在线观看一区| 国产二区不卡| www视频在线| 91麻豆精品视频| 中文字幕在线乱| 成人在线爆射| 91精品国产乱码久久蜜臀| 宅男噜噜噜66国产免费观看| 91欧美极品| www.亚洲天堂| 五月天中文字幕| 国产精品18久久久久久vr| 国产成人精品一区二区三区福利|