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

Apache Hudi 新版本新特性超強解讀

數據庫
Apache 社區在2022年4月30日發布了Apache Hudi 0.11.0版本,其中包括一系列的新功能和提升優化。

本次分享主要是針對Apache Hudi 0.11.0新版本新特性進行深度解讀,主要介紹4個方面的內容:

  • 多級索引
  • Spark SQL 新功能
  • Flink 集成改進
  • 其他功能和提升

01多級索引

首先和大家分享下多級索引,接下來我們將從三個方面介紹它。第一是為什么我們引入多級索引multi model index,第二多級索引的設計以及實踐,最后將介紹如何利用多級索引,極大提升讀寫性能。

1. 為什么要引入多級索引(Multi-Modal Index)

在介紹多級索引之前,我們先看看索引是什么?索引是數據庫系統中常用的查詢加速技術。通過構建索引就可以利用生成的元數據metadata快速定位查詢所需數據的位置,這樣可以減少甚至避免從文件系統中掃描或者讀取不必要的數據,減少IO的開銷,大大提升查詢效率。我們可以類比圖書館以及教科書中的索引,這些都是通過利用提前生成好的metadata來快速找到想要查找的信息。

其實在Apache Hudi的湖倉一體的架構中已經提供了特有的索引支持,這里我們可以看一個例子。其中我們用的一種索引可以快速定位到我們所需要更新或者刪除的記錄所在的文件組。如下圖所示:

圖片

如果沒有index的情況下,對于所有的更新以及刪除的記錄,我們需要和所有的文件進行merge,這樣開銷會非常大。如果使用了索引,讀寫開銷會極大地降低,可以提高查詢這個位置的效率。

在Hudi中我們默認開啟了基于bloom filter的索引。這些bloom filter是存儲在數據文件的footer中。作為一個單獨的存在,它可以被用到索引的流程過程中。

那我們為什么還要在Hudi中引用多級索引?其實索引的主要目的就是剛剛提到的提升數據查詢的速度,那么就需要存儲metadata。而對于TB、EB級別表中的metadata,它們的量級會很大。通常的做法是把它們存儲于單獨的數據塊block或者是數據文件中。而我們在實測的過程中,遇到了讀寫瓶頸。同時,在維護metadata的過程中,它需要實時的和數據表進行同步。這樣的管理十分復雜,因為要保證transaction,如果我們要在Hudi中引用新的索引開發周期會很長。

2. 多級索引的設計與實現

為了解決上述的問題,我們在湖倉一體的存儲架構中引入了多級索引,是首次在類似的架構中引入統一平臺、多元化、高性能的索引。我們的目標是支持所有計算及查詢引擎來提升讀寫性能,甚至未來如果出現新的引擎,也是可以進行兼容的。

接下來我們介紹一些在多級索引設計中所需要的需求。

  • 第一是我們需要保證可拓展的元數據(scalable metadata)。我們希望元數據是Serverless的,是不需要任何的計算或者是內存中需要支持的,可以獨立存在于數倉一體和數據湖中。同時希望它能獨立于計算及查詢引擎,它是可拓展的,能高性能地支持不同索引類型。
  • 第二是我們希望多級索引中的元數據和數據表保持實時同步,保證每次的更新都是事務性的。
  • 第三是保證查詢的速度。保證對于多級索引的查詢是低延遲的,主要的查詢類型包括point, range, and prefix lookups等。

我們分別來看一下是如何實現的。

首先是可拓展的元數據,我們采用了和已有數據庫類似的設計,那就是在內部構建一個元數據表meta table。對于Hudi table來說,我們利用的是Hudi的mor表來存儲這些數據。mor表的優勢是可以很快地進行數據的更新與刪除。同時,Hudi表也是Serverless的,它不會依賴任何計算及內存資源。在這個表里我們針對不同的索引是建立獨立的分區的。在這樣的情況下,不同的index可以完成獨立的管理以及自動化的管理。我們在使用mor表的另一個優點是可以支持任意的索引大小。從mb級別到gb級別再到tb級別。針對獨立的分支,我們可以引入新的作用類型,就只需要建立新的分區。在構建可拓展的元數據的時候,需要索引的一個初始化。我們提高了兩種方式的初始化。一種是同步,同步是在寫入表的過程中,在最后commit之前會做一個index的步驟。而第二種方式是異步。異步創建索引是hudi首次引入的,保證了concurrent writer 不受影響。下面是異步創建索引的流程圖:

圖片

  • 第二點的設計原則是保證對metadata table的更新是事務性的,來保證metadata table結構里面的數據要和數據表實時同步。我們設計了一套叫multi table多表的transaction。同時在這個metadata table 里,有自我管理的表服務,包括compaction, cleaning。它們會保證定時操作,以保證這個metadata table 的讀性能會很好。
  • 第三點是對于metadata的快速查詢。我們使用了HFile作為MDT的數據格式。原因是列格式Parquet或基于行的Avro不適合 pointed lookup;HFile格式中的index使得 pointed lookup非常高效,只需要讀取相關數據塊。我們針對HFile做了一個測試,得出在千萬(10M)+條目中查詢 N 條目,HFile 相比于 Parquet、Avro 有 10-100倍的提升。如下圖:

圖片

3. 利用多級索引極大提升讀寫性能

接下來介紹多級索引所帶來的主要的讀寫性能提升。

  • 首先是File Listing

在云存儲中我們發現大部分情況下,如果對于大型表的上千分區以及百萬級的數據文件做listing,會造成讀寫瓶頸。這主要是因為云存儲的設計所導致的。如果我們利用metadata table中的files來做分區。這個分區里提供了這個數據表里所有的file。相比于云軟件系統有2-20倍的提升。如下圖:

圖片

  • 另一個比較重要的特性是Data Skipping

Data Skipping 技術是利用列統計數據來對所需要的這個數據文件做file pruning (文件裁剪),列統計數據常見的列統計數據包括取最大值、最小值、數量、大小等。Data Skipping 的作用就是通過這些統計數據來排除掉不需要讀的文件,這樣可以極大的提高查詢速度。我們在這個multi model index 的metadata 中構建了column_stats分區,這個分區里的每條記錄包含了這個Hudi表里所對應文件的列統計數據。每個Record key是由列名稱、分區名稱和文件名稱組成。通過這種排列格式,可以快速定位所需的column stats。查詢復雜度是基于查詢列所需要的列的數量,通常這個數量是5到10個。對于大寬表來說,這樣可以極大地提升這個效果。在實際測試中,云上Hudi大寬表的“定向”查詢速度有10x-30x的提升。大幅減少了對無關數據文件的掃描和讀取,提高了I/O效率。如下圖:

圖片

  • 我們還對Upsert 性能做了測試。我們在metadata table中引入了一個bloom_filter 分區,取代了footer 中的 bloom filter,在大表中可以大幅減少文件讀取的時間。每條記錄包含單個數據文件(partition + file name)的 bloom filter,支持 prefix lookup。據實測,在有 100k 文件的 Hudi 表中,相比于讀取 footer,從 MDT 讀取 bloom filter的速度有3倍的提升。t6.c
  • 基于多級索引,未來還有很多工作可以做,目前一個工作是針對record level index 的開發以及Luncene index的開發。

02 Spark SQL新功能

接下來再講Hudi在Spark SQL方面的改進。

1. 用戶可以使用非主鍵字段更新或刪除 Hudi 表中的記錄

Spark SQL改進Delete Operation。

在t1時刻分別往mor表cow表中分別插入a,b,c三條數據。這樣會在mor表中生成base file 文件和log file文件(下圖中簡化了示意圖)。在cow表中只會生產base file 文件。t2時刻同時刪除mor表和cow表中 b的數據。mor表操作是刪除log file b的block是t2時刻的數據。而cow表中的操作是復制一份base file b保存到內存中,刪除b數據之后會形成一個新版本的綠色的方框中的數據文件。如下圖:

圖片

2. SQL支持時間旅行查詢

我們為什么要實現Time travel?從api層面,如果我們要寫一個查詢,需要設置不同的df,構造不同的operation,然后來查詢這個動作。但是引用time travel的這個語句以后,一是可以在spark sql中直接使用,二是sql語句更容易去解釋這樣的一個行為和動作。現在可以通過timestamp as of語法支持時間旅行查詢,但僅限Spark 3.2+。語法如下:select * from hudi_tbl timestamp as of '20210728141108100' 

①SQL Travel-場景1:查詢多版本數據

如下圖,我們在10:10分提交了insert和update語句,我們想要查10:05分版本的數據,通過下面的sql是可以實現的。

select * from test_hudi timestamp as of 20220512100510000 (10:05)

select * from test_hudi timestamp as of 20220512101030000 (10:10)

圖片

②Travel-場景2: 數據還原修復

  • 創建hudi表:create table test_hudi ...
  • 插入數據:insert into test_hudi ... (每插入一條數據會產生一個版本)

圖片

  • 查詢數據:select * from test_hudi

圖片

  • 誤刪數據:delete from test_hudi where id=2
  • 查詢數據:select * from test_hudi (刪除id=2的數據后只剩下了兩個版本)

圖片

  • 還原數據:insert into test_hudi_table select * from test_hudi timestamp as of 20220511165343733(數據如果存在的話update,如果數據不存在就insert)
  • 查詢數據:select * from test_hudi (id=2的數據已經還原回來了)

圖片

注意:如果這個表用了 truncate清空的話,這種時間戳方式查詢恢復就不行了。 

3. 添加CALL命令以支持在 Hudi 表上調用更多操作

Call Command產生的一個背景是spark sql除了ddl、dql和dml之外的操作,我們想解決這三種操作之外的一些新功能的操作。那么在引入Call Command之前是沒辦法操作的。我們對比了一下傳統數據庫里面的存儲過程,類似地在spark這一塊實現了一個command動作,然后對應實現了一個procedure的功能。

首先是在hudi一側為call command生成了一個通用的語法,不依賴于spark的版本,可以對所有spark版本適用。然后生成了一個HoodieProcedure的類,使用CallProcedureHoodieCommand類調用動作。

Call Command命令在設計時主要有四個方面的功能。一是支持歸檔、提交、回滾和創建還原點的快照動作。二是可以進行原數據管理。三是對運維表進行數據導入導出、Boostrap、修復表、升級/降級等操作。四是優化表動作,如Compaction、Clustering、Clean等。

Call Command的參數有三類。一是可以使用不定式的參數(鍵值對)作為它的入參參數。二是可以按照參數的位置進行入參。三是混合參數。以下是傳參的具體語法:

圖片

  • 接下來是CALL Command功能方面的一些介紹。

①CALL Command-快照管理的相應的命令

  • 查詢快照 :call show_commits_metadata(table => 'test_hudi_table', limit => 10)
  • 回滾快照:

call rollback_to_instant('test_hudi_table',20220511224632307')

  • 創建保存點 :create_savepoints
  • 恢復保存點 :rollback_savepoints
  • 刪除保存點 :delete_savepoints

②CALL Command-Clustering

可以設置Clustering的類型:

set hoodie.layout.optimize.strategy=linear /z-order/hilbert

常用命令:

call run_clustering(table => 'test_hudi_table',order => 'ts') 

call show_clustering(table=>'test_hudi_table')

通過這些clustering的動作,在查詢的時候性能能達到10-20倍的提升。

③CALL Command-Compact(小文件合并)(目前只支持mor表)

Data file和Delta log file 合并會重新生成一個新的文件。

圖片

命令:call run_compaction(table=>'test_hudi_table',op=> instant

03 Flink集成改進

最后,介紹Flink集成改進方面的內容。主要有以下幾點:

1. 在 0.11.0 中,同時支持 Flink 1.13.x 和 1.14.x。

2. 支持復雜的數據類型。

3. 基于 DFS 的 Flink HoodieCatalog。

綠色是目前已經實現的操作,紅色是待實現的操作。可以通過ApI實現或者是Flink Sql實現。

FlinkHoodieCatalog在三個方面有比較好的作用:

  • 第一個方面是對元數據的管理,通過FlinkHoodieCatalog這個框架可以更好地管理HoodieCatalog;
  • 第二個方面是可以基于這個框架可以去和外面的其他的平臺去對接,更方便對接使用;
  • 第三個方面是元數據方面,可以在數據血緣方面構造一些功能。

圖片

4. Bucket Index 

為什么要集成改進Bucket Index?這個是字節的同學貢獻的一個功能。他們在他們的生產場景里面,在34tb的數據量在5000億的記錄寫入的情況下,Bloom Filter Index 通過Record key去找File ID 的這樣的一個動作的性能會下降得很快。為了解決Bloom Filter Index的假陽性,他們引入了Bucket Index。

通過key的哈希值定位到File Group,提升了實時導入的性能。如下圖所示:

圖片

從Flink輸入了5條數據,然后通過一定的哈希策略將混合的Bucket Index進行關聯,通過拿到FileGroupId寫入文件。

  • 利用Bucket分布做優化

Bucket分布優化主要有:Bucket Pruning、Bucket Aggregate、Bucket Join等。如下圖所示:

圖片

  • Bucket限制。目前 Bucket Index 的桶數量 ,需要根據預估的數據量提前在建表時進行確定,且建表后不可更改。
  • Bucket使用

參數:hoodie.index.type 值:BUCKET

參數:hoodie.bucket.index.num.buckets 值:48(256MB)

建議單個桶的大小控制在3GB左右。

  • Bucket后續改進。Hashmap的擴容過程,將分桶數按倍數做到輕量級動態擴容。

04其他功能和提升

最后,我們來講其他功能和提升。

1. Spark DataSource 查詢優化

我們在使用mor表做快照查詢的時候,log文件會被讀取,然后和base文件進行合并。在之前的版本中,當你做快照查詢的時候,整條log文件記錄會被讀出來。這個版本我們做了優化,使用了內置的標準Payload來讀取。例如:OverwriteWithLatestAvroPayload。我們會針對這個做了優化,只把必要的列讀出來,這樣就會極大的減少內存和壓縮解碼帶來的CPU的消耗。其實是對于非常寬的上千列的表來說,效果會非常明細。

2. Schema 演進 

在這個版本中,我們針對Spark 3.1、Spark 3.2版本增加了schema功能的演進。如果啟用 set hoodie.schema.on.read.enable=true以后,我們可以對表列和對表進行一系列的操作。列的變更(增加、刪除、重命名、修改位置、修改屬性),表的變更(重命名、修改屬性) 等。

3. 保存點和恢復 

保存點和恢復可以用call command做這些操作。新版本引進了mor表,用Hudi CLI設定保存點和執行恢復或者call command來手動設置保存點。保存點之后的數據將會被刪除。

4. Pulsar 寫提交回調 

  • Hudi寫入commit支持Pulsar下游作業* 
  • 主要配置 HoodieWriteCommitPulsarCallback 

hoodie.write.commit.callback.pulsar.topic

hoodie.write.commit.callback.pulsar.broker.service.url

  • 可擴展的接口HoodieWriteCommitCallback 

5. 多元化的Catalog同步

  • Google BigQuery 支持查詢COW表* 
  • DataHub 支持同步Schema 
  • 通過AWS SDK原生同步Glue Data Catalog 
責任編輯:張燕妮 來源: DataFunTalk
相關推薦

2010-06-01 09:52:27

jQuery Tool

2023-03-15 07:29:54

開源數據湖

2010-06-24 15:03:37

MSN微軟

2011-08-01 15:35:51

GlassFishJava 7

2024-08-07 10:46:45

2024-10-22 08:01:15

2022-05-05 11:20:08

KubernetesDocker云計算

2022-04-15 11:51:48

Windows 11安全加密

2015-08-03 13:12:43

分布式計算Mesos新版本特性

2019-03-05 15:03:09

Android Q安卓系統功能

2009-06-17 09:24:34

學習strutsStruts新版本

2015-02-05 16:59:36

平安WiFiiOS

2010-02-23 17:44:48

Python 3.0

2011-04-11 09:11:42

GNOME 3

2012-05-15 13:39:41

微軟Windows8

2023-05-18 08:00:59

CephRGW 性能

2009-12-29 13:43:21

Ubuntu 9.10

2009-12-31 11:09:36

Ubuntu wine

2012-09-24 11:50:04

IBMdw

2014-04-17 11:24:44

GoogleAndroid
點贊
收藏

51CTO技術棧公眾號

欧美男gay| 国产一区二区不卡视频在线观看| 成人免费午夜电影| 人妻巨大乳一二三区| 草久视频在线观看| 99精品视频在线免费播放 | 亚洲电影免费观看| 亚洲欧美丝袜| 欧美日韩精品在线观看视频 | 五月天色综合| 久久综合久久鬼色中文字| 欧美成人一区二区三区电影| 人人干人人干人人| 国产乱子伦精品无码码专区| 国产一区国产二区国产三区| 色哟哟国产精品| 久久av一区二区三区漫画| 国产在线观看成人| 亚洲国产欧美国产第一区| 久久亚洲综合色一区二区三区| 欧美激情第三页| 欧美精品色视频| 毛片激情在线观看| 日韩精品电影| 欧美性极品少妇| 午夜精品短视频| 一本大道伊人av久久综合| 99久精品视频在线观看视频| 在线不卡免费av| 欧美与动交zoz0z| 国产成人毛毛毛片| 欧美日韩视频| 欧美中文字幕一区二区三区亚洲| 91欧美激情另类亚洲| 国产真实乱在线更新| 国产午夜精品一区在线观看 | 亚洲欧美偷拍另类a∨色屁股| 欧美激情第99页| 貂蝉被到爽流白浆在线观看| 羞羞视频在线观看一区二区| 日韩欧美在线中文字幕| 91成人免费看| 亚洲国产综合久久| 亚洲日本中文| 亚洲国产精品精华液网站| 国产精品成人观看视频免费| 日日噜噜夜夜狠狠久久波多野| 精品久久久久久久久久岛国gif| 久久久久久久电影| 国产精品视频免费在线| 少妇精品一区二区| 国模套图日韩精品一区二区| 国产精品黄色在线观看| 国产aaa精品| 欧美日韩国产黄色| 欧美影院在线| 9191精品国产综合久久久久久| 日本亚洲自拍| 国产毛片毛片毛片毛片| 怡红院精品视频在线观看极品| 91精品国产综合久久香蕉的特点 | 精品资源在线看| 美腿丝袜在线亚洲一区| 国产香蕉一区二区三区在线视频 | 亚洲精品国产一区黑色丝袜| 欧美男男gaygay1069| 亚洲图片欧美一区| 一区二区在线中文字幕电影视频| 亚洲午夜在线播放| 欧美私人啪啪vps| 欧美人在线视频| 实拍女处破www免费看| 国产精品高清一区二区| 欧美一三区三区四区免费在线看| 超碰成人在线免费观看| 天天综合永久入口| 国产揄拍国内精品对白| 国产成人精品日本亚洲| 国产真人真事毛片| 日韩理论电影大全| www.亚洲一区| 日本一二三四区视频| 色戒汤唯在线观看| 一区二区三区免费观看| 国产精品二区在线| 中文人妻av久久人妻18| 国产一区观看| 精品国产一区二区三区久久久狼 | 一区二区三区欧洲区| 亚洲第一色在线| 日本少妇高潮喷水xxxxxxx| 韩国女主播一区二区三区| 色94色欧美sute亚洲线路二| 天堂一区二区三区| 麻豆视频在线观看免费网站| 国产精品久久久久久久久动漫 | 18涩涩午夜精品.www| 精品国产乱码久久久久软件 | 天天摸天天干天天操| 91麻豆国产福利在线观看| 91亚洲精华国产精华| 欧美一级做性受免费大片免费| 国产精品久久久久久模特| 久久精品视频在线观看| 中文字幕一区二区三区乱码不卡| 老司机成人影院| 欧美日韩在线播放三区| 国产性生交xxxxx免费| 欲香欲色天天天综合和网| 亚洲国产成人av| 噼里啪啦国语在线观看免费版高清版| 91三级在线| 国产精品久久国产精麻豆99网站| 亚洲国产精品一区二区第四页av| 国产二区在线播放| 国产三级欧美三级日产三级99| 91网站在线看| 青青草在线视频免费观看| 99久久精品免费看国产| 亚洲tv在线观看| 国产免费一区二区三区免费视频| 久久99精品一区二区三区| 国产精品视频久久久久| 91成人一区二区三区| 麻豆国产精品一区二区三区| 国产在线观看一区二区三区| 91av久久久| 国产成人精品1024| 99精品99久久久久久宅男| 亚洲va天堂va欧美ⅴa在线| 粉嫩蜜臀av国产精品网站| 亚洲国产婷婷香蕉久久久久久99| 求av网址在线观看| 色婷婷一区二区| 亚洲综合自拍网| 深夜福利一区二区三区| 在线视频欧美日韩精品| 欧美 变态 另类 人妖| 欧美成人高清| 97精品伊人久久久大香线蕉 | 久久久精品2019中文字幕神马| 国产精品老熟女一区二区| 免费成人你懂的| 色吧亚洲视频| 国产麻豆久久| 欧美丰满少妇xxxbbb| 成人小视频免费看| 日本成人在线不卡视频| 97色在线观看免费视频| www.四虎在线观看| 91色视频在线| 亚洲色欲综合一区二区三区| 国产精品.xx视频.xxtv| 日韩欧美黄色影院| 国精产品一区一区三区免费视频| 国产精品网站在线看| 欧美理论片在线观看| 国产区精品在线| 亚洲综合视频在线| 中国一级特黄录像播放| 欧美精选一区二区三区| 色综合导航网站| 亚洲大尺度网站| 亚洲成人免费影院| 泷泽萝拉在线播放| 欧美激情日韩| 国产精品露脸自拍| 久cao在线| 亚洲欧洲精品天堂一级| 91福利免费观看| 色婷婷av一区二区三区丝袜美腿| 精品一区二区三区四区| 亚洲人与黑人屁股眼交| 在线视频日韩| 99porn视频在线| av资源中文在线| 欧美天天综合色影久久精品| 亚洲精品成人无码熟妇在线| 日韩精品成人一区二区在线| 国产久一道中文一区| 伊人久久在线| 丝袜情趣国产精品| 久久久久久久中文字幕| 免费黄网站欧美| 人人妻人人澡人人爽精品欧美一区| 三上悠亚激情av一区二区三区| 在线观看视频91| 国精品人伦一区二区三区蜜桃| 亚洲午夜精品一区 二区 三区| 欧美成人久久久| 日本黄色一区二区三区| 在线视频一区二区三| 国产亚洲无码精品| 一区二区精品| 亚洲精品一区二区三区樱花 | 三上悠亚在线一区| 秋霞一区二区| 久久夜精品va视频免费观看| 久操视频在线免费观看| 91小视频在线免费看| 日本黄大片一区二区三区| 亚洲成人在线| 一区二区三区在线视频看| 另类图片第一页| 久久免费视频观看| 男人天堂av网| 欧美日本一道本在线视频| 国产18无套直看片| www.性欧美| 国产乱码一区二区三区四区| 鲁大师成人一区二区三区| 欧美精品亚洲| 日本在线精品| 久久人人爽人人| а√天堂官网中文在线| 日韩欧美在线观看一区二区三区| 亚洲精品乱码久久久久久久| 国产精品综合色区在线观看| 法国空姐在线观看免费| 波多野结衣在线观看一区二区三区| 色综合老司机第九色激情| 国产一级片在线播放| 亚洲国产私拍精品国模在线观看| 老司机福利在线观看| 成人一区二区视频| 欧美 日韩 激情| 亚洲专区视频| 国产精品一二三在线| 人妻91麻豆一区二区三区| 8x福利精品第一导航| 天天天天天天天干| 色婷婷精品久久二区二区蜜臂av| av在线免费播放网址| 久久久久久久久免费| 91av在线免费| 91蜜桃在线免费视频| 亚洲国产果冻传媒av在线观看| 奇米色一区二区| av丝袜天堂网| 免费观看日韩av| 色悠悠久久综合网| 日本少妇一区二区| 亚洲成人福利在线观看| 日韩精品成人一区二区三区| 免费日韩视频在线观看| 天堂在线一区二区| 亚洲欧美99| 成人午夜三级| 国产精品久久激情| 男操女在线观看| 午夜精品一区二区三区电影天堂| 免费在线观看日韩av| 亚洲国产精品久久久久蝴蝶传媒| 国产精品久久91| 日韩色淫视频| 国产日韩精品在线| 超级碰碰久久| 国产精品草莓在线免费观看| 国模一区二区| 高清视频欧美一级| 鲁鲁在线中文| 国产精品久久久久高潮| 91桃色在线| 欧美一级高清免费播放| a视频在线观看免费| 欧美成人在线网站| freexxx性亚洲精品| 欧美在线视频一区| 欧美大胆的人体xxxx| 中文字幕久精品免费视频| 日本视频在线免费观看| 日韩激情视频在线| 国内老熟妇对白hdxxxx| 在线看不卡av| 国产精品无码久久久久成人app| 在线观看国产日韩| 亚洲第一精品在线观看| 欧美午夜视频网站| 精品国产伦一区二区三区| 亚洲国产欧美一区| 成人免费在线电影| 精品一区二区亚洲| 日本在线www| 性欧美在线看片a免费观看| 中日韩高清电影网| 91高潮精品免费porn| 亚洲卡一卡二| 在线观看国产精品淫| 麻豆影视在线| 亚洲精品视频久久| 国产三区视频在线观看| 91国在线精品国内播放| 另类一区二区| 精品国产一区二区三区四区vr| 国产精品chinese在线观看| 秋霞久久久久久一区二区| 亚洲精品动态| 黄色www在线观看| 亚洲欧美不卡| 国产97在线 | 亚洲| 精品一区二区在线看| 右手影院亚洲欧美| 久久日韩精品一区二区五区| 免费看特级毛片| 亚洲男人天堂av网| 色老板免费视频| 色成年激情久久综合| 懂色av一区二区三区四区| 欧美在线视频不卡| 粉嫩小泬无遮挡久久久久久| 一区二区三区四区在线观看视频| 在线观看精品一区二区三区| 最新国产成人av网站网址麻豆| 尤物网址在线观看| 97在线观看视频国产| 台湾佬成人网| 精品国产免费久久久久久尖叫| 精品国产91乱码一区二区三区四区 | 日韩在线观看你懂的| 欧美人xxx| 欧美激情女人20p| 99亚洲男女激情在线观看| 热re99久久精品国产99热| 中国女人久久久| 污污视频网站免费观看| 东方欧美亚洲色图在线| www色aa色aawww| 欧美日韩精品三区| 在线观看美女网站大全免费| 国产精品久久久久久久久久久久| 久久爱www.| 手机成人av在线| 美女爽到高潮91| 亚洲av永久无码精品| 伊人婷婷欧美激情| 国产一级在线视频| 日韩欧美一区二区视频| 黄色在线视频观看网站| 4438全国成人免费| 看全色黄大色大片免费久久久| 午夜精品一区二区在线观看| 老妇喷水一区二区三区| 日韩在线免费观看av| 色偷偷久久一区二区三区| 欧美69xxxxx| 国产精品7m视频| 国产欧美日韩| 伊人网在线综合| 最新国产精品久久精品| 国产精品区在线观看| 久青草国产97香蕉在线视频| 精品999日本久久久影院| 樱空桃在线播放| 国产成人无遮挡在线视频| 中文字幕一区二区久久人妻网站 | 激情综合五月网| 日韩欧美亚洲国产一区| 外国精品视频在线观看| 日韩视频免费观看| 粉嫩一区二区三区在线观看| 玖玖精品在线视频| 成人免费黄色在线| 毛片毛片女人毛片毛片| 日韩一区二区免费视频| 欧美videossex另类| 久久大香伊蕉在人线观看热2| 综合久久十次| v天堂中文在线| 夜夜嗨av一区二区三区网页| 黄色一级a毛片| 日本高清不卡的在线| 日韩www.| 欧美午夜精品一区二区| 精品久久久久久久中文字幕| 国产欧美一级片| 久久全国免费视频| 午夜电影一区| 日本wwww视频| 成人激情文学综合网| 男女羞羞免费视频| 亚洲黄色在线观看| av久久网站| 欧美大黑帍在线播放| 国产精品1区二区.| 午夜剧场免费在线观看| 亚洲白虎美女被爆操| 国产黄大片在线观看画质优化| 国产成人亚洲综合91精品| 99久久九九| 亚洲第一黄色网址| 欧美片网站yy| 麻豆免费版在线观看| 一区二区三区偷拍| www亚洲一区| 亚洲黄色在线观看视频| 国产狼人综合免费视频| 日韩免费一区| 在线免费观看污视频| 精品久久久久久久久国产字幕| 天天干在线观看|