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

湖倉存儲系統設計剖析和性能優化

大數據 數據湖
本文將從元數據、Merge-On-Read等核心設計方面來剖析湖倉存儲系統,對比當前流行的三種格式Delta Lake、Hudi、Iceberg的設計差異和優缺點,并分享我們在讀寫性能優化方面所做的思考和實際優化案例。


一、湖倉系統 阿里云EMR湖倉系統

圖片

相較于傳統的數倉、數據湖來講,湖倉系統是一種新的數據管理系統。上圖展示了阿里云EMR湖倉系統的整體架構,它是圍繞著Delta Lake、Iceberg、Hudi等開源數據湖格式構建的,它同時具備數倉的高性能和數據湖的低成本、開放性。這些數據湖格式基于開源的Parquet和ORC構建,能夠在AWS S3、阿里OSS等低成本存儲系統上運行,它還具備ACID事務、批流一體以及Upsert等能力,可以對接多種商業或開源的查詢計算引擎。這些能力使得湖倉體系逐步成為了一種趨勢。

湖倉系統有一定的學習成本,比如合理配置、小文件、清理策略、性能調優等等。下面將從湖倉系統設計上入手,了解三種格式的差異。以Spark計算引擎為例,去分析讀寫計算過程中的一些主要的鏈路和影響性能的關鍵點。

二、核心設計

Delta Lake、Iceberg、Hudi三個數據湖格式在功能、特性、支持程度上基本一致,但是在具體設計上各有利弊和權衡,這些設計形成了支撐湖格式特性的基石,下文將主要分析元數據、MOR讀取這兩塊核心設計。

1、元數據

元數據由schema、配置、有效的數據文件列表三個主要部分構成。傳統數倉系統有單獨服務來管理原數據和事務,三個數據湖格式都是將自己的元數據以自定義的數據結構持久化到了文件系統中,放置在表的路徑下,但又和表數據分開存儲。Hive表路徑或分區路徑下的所有數據文件都是有效的,而數據湖格式引入了多版本的概念,所以當前版本的有效數據文件列表需要從元數據中挑選出來。三個湖格式都封裝了自身元數據的加載和更新的能力,這些可以方便的嵌入到不同的引擎,由各個引擎Plan和Execute自己的查詢。

以Spark為例來看看Delta Lake的元數據設計,它的元數據算是三個系統中最簡潔的:每次對Delta Lake的寫操作,或者添加字段等DDL操作,會生成一個新版本的json deltalog文件,這里面會記錄元數據的變更,包含一些schema的配置和file的信息,多次commit之后,會自動產生一個checkpoint的parquet文件,這個parquet文件會包括前面所有版本的元數據信息,用于優化查詢加載。

Delta Lake元數據加載流程:

  • 定位最新的checkp元數據文件
  • List后面的delta log json文件
  • 按版本號依次解析,得到表的schema、配置和有效數據文件列表

Iceberg也有一個統一的元數據集,與Delta Lake不同的是,Iceberg是三層的架構。

圖片

其中metadata文件很像Delta Lake的checkpoint文件,包含了全部的信息,但是不同的是,metadata文件還包括了前幾個快照的信息,并且Iceberg是三層架構,其manifest file能夠對局部的數據文件做統計信息收集,因此也能用于分區之下、文件之上的裁剪。

Iceberg元數據加載流程:

  • 定位到當前metadata文件,得到表的schema和配置,和當前數據文件快照snapshot的manifest list文件
  • 解析manifest list文件,得到一組manifest文件
  • 解析manifest文件,得到有效數據文件列表

Hudi和前面兩個很不一樣,其一是它沒有統一的元數據結構,其二Hudi會對數據文件進行分組,并對文件名進行編碼,這是Hudi特有的file group概念。Hudi的數據必須有主鍵,主鍵可以映射到一個file group,后續對于這些主鍵所有的更新,都會寫到這個file group,直到顯式的調用修改表的文件布局。也就是說,一個file group隨著多次的commit,會產生多個版本。獲取當前有效數據文件列表時,會先列出當前分區下的所有文件,按照file group分組,取出每個group的最新文件,再按照timeline篩選掉已經被刪除的group,最后得到一個有效的文件列表。

圖片

Hudi元數據加載流程:

  • 解析hoodie.Properties

得到表的schema和配置

  • 獲取有效文件列表
  • 未開啟metadata:List filesystem + timeline
  • 開啟metadata:讀取metadata表

Delta Lake、Iceberg、Hude元數據對比如下:

2、Merge-On-Read(MOR)

在一般情況下,在更新一個Copy-On-Write表時,即使我們只想執行一條更新操作,也需要將所有涉及到的數據文件加載進來,然后應用更新表達式,再將所有數據一起寫出,這里就包含一些沒有更新的數據,這就是寫放大的現象。為了解決寫放大現象,三個數據湖格式中Hudi第一個實現了Merge-On-Read表。

MOR的設計思想是,只持久化需要寫出的數據,再通過某種方式標識出來,原來的數據文件里的數據成為過期數據,讀的時候進行合并;為了提高效率,會定期進行合并(Compaction),通常是按照Copy-On-Write的方式寫一遍。不同的MOR實現的寫入、合并策略會有所不同。

Hudi定義了一個filegroup概念,每個group包括最多1個原始數據文件和多個日志文件,數據文件運行不存在。

數據通過主鍵映射到filegroup,如果更新數據將會追加寫到映射到filegroup內的日志文件,如果是刪除,則只需要做一個主鍵記錄,在合并的時候,首先讀取原始的數據,然后按照這部分數據的主鍵去判斷在增量日志中有沒有相關的記錄,如果存在就做合并。

Delta Lake通過Deletion Vector的設計解決寫放大的問題。Delta Lake將需要更新、刪除的數據在原數據文件中的offset標識出來,寫入一個輔助文件。Iceberg V2表有兩個MOR的實現,其中基于position的設計和Delta Lake的DV是基本一樣,僅在具體實現上有些區別。DV的寫入僅兩步:1)根據update或者delete的condition,找到文件中匹配的記錄,記錄他們在文件中的offset。持久化到一個bin文件中;2)將更新后的數據,寫到普通的一個新文件中。

相較于Hudi允許存在多個日志文件, Delta Lake在查詢性能做了權衡,一個普通數據文件只允許伴隨至多一個DV文件,當對一個已存在DV文件的數據文件再做一個更新的時候,最終寫出時會把兩個DV合并的。由于DV文件中offset信息是通過位圖(RoaringBitMap)來保存的,合并操作是比較高效的。另外Hudi是將更新的數據也寫入日志文件,Delta Lake是直接寫入普通的parquet文件,然后在bin文件中做一個標記。以及hudi日志文件是行存格式,Delta Lake的DV采用自定義的格式,而數據使用的parquet的列存。

圖片

Delta Lake在DV下的查詢方式我們可以直接看LogicalPlan,會更加清晰,即將原本的DeltaScan轉換成Project + Filter + Delta Scan的組合。在Parquet Scan某個數據文件時,追加了_skip_row的輔助字段,上層應用_skip_row = false的過濾,然后通過Project的投影保證僅了無輔助字段的額外輸出。

顯然核心就是_skip_row的標記,DeltaLake自定義了ParquetFileFormat,在讀取parquet文件后,對每個數據判斷roaringBitMap是否包含該offset,有標記為true,沒有就是false。這樣就完成了Deletion Vector模式下DeltaLake表的查詢。

Delta Lake、Hudi、Iceberg的MOR實現對比:

基于offset或者position的MOR實現,由于會通過掃描文件來確定位置,因此寫性能上會慢于iceberg的equality或hudi mor的實現,而由于該方案不需要類似hash join的讀時合并策略,查詢性能會好一些。

三、性能優化

1、查詢

以Spark為例,一個完整的query鏈路如下:

其中與數據湖相關的有三點:元數據加載、優化plan、Table Scan。

(1)元數據加載

元數據加載包括獲取schema、構造fileindex等,分為單點加載和分布式加載兩種。單點加載的代表有Iceberg、Delta Lake-Standalone,適用于小表,有內存壓力。分布式加載的實現有Hudi、Delta Lake,適用于大表,需提交Spark Job。

這里我們給出LHBench做了一個測試結果:使用的是TPC-H的store-sales表,設置的filesize都是10MB,單個圖表內表的文件數量從1千到20W,三個圖表對應的僅讀取一行,讀取一個分區,和普通字段作為過濾條件的三個場景。從趨勢上三個場景是一致的。我們分析第一個,最左側小表Iceberg的單點模式要稍好些,但與Delta Lake的分布式元數據加載差距不大。最右側單點方式整個Query的執行時間中藍色執行部分基本一致,很明顯被紅色startup部分限制,這部分在plan是一致的情況下可等同于元數據加載的時間。可見,如何智能的選擇合適的加載模式,是一個可選的優化方向。

以下是兩個EMR的優化案例。

案例1:EMR Manifest,是一個無服務化的優化元數據加載方案。

阿里云EMR一客戶的核心ODS表,通過Spark Streaming寫入Delta Lake,每天增量數據3TB,目前全表2.2PB,1500萬個數據文件,僅元數據10GB。在正常情況下使用Hive/Presto查詢,使用的Delta-Standalone的單機加載方式,會完全卡住或者需要超高內存。

圖片

該優化方案是將數據文件的元數據按照分區結構提前持久化到一個manifest文件,同時記錄manifest的元數據版本。在用戶查詢的時候,根據filter做分區裁剪,直接去讀分區下面的manifest文件,解析出本次查詢的有效數據文件,跳過了所有元數據加載的步驟。如果emr_manifest的版本有滯后,我們也會拿到滯后的元數據,合并得到正確的數據快照。另外manifest文件中還會保存一些size、stats這些信息,會應用于一些文件級別的data-skipping優化。該方案在該表體量僅為300TB時提供,當時需要10GB內存90s加載完整的元數據,優化后可以實現秒級返回,且內存不需要額外調整。

案例2:EMR DataLake Metastore,有服務的中心化的優化元數據加載方案。

這里不得不和HMS做一個對比,HMS僅存儲表的分區級信息,查詢普通表時根據分區位置去list路徑,拿到有效的數據文件列表。而數據湖格式具備多版本概念,所以針對湖格式的Metastore設計必須到文件級別。另外Hudi、Iceberg基于分布式鎖來實現事務性,而Delta則是基于所在文件系統的原子性和持久性,在某些場景下無法提供更強的一致性保障,這也是我們實現DataLake Metastore的另外一個原因。

EMR DataLake Metastore目前已經支持了Hudi格式,完全兼容社區版本和元數據協議,同時支持元數據雙寫。在提供了文件快照和事務的同時,后續也將繼續拓展data profiling和行級索引為查詢提供更精準的裁剪優化。

(2)優化plan

數據湖的第二點優化是plan優化,在前面的Spark查詢例子里,調用Spark sql內核結合各種的狀態統計信息去優化logic plan。比如根據運行時的一些統計信息,通過AQE去改變join的方式,基于表的靜態信息和一些cost模型來優化的CBO等。

統計信息只有表級別和column級別兩類,其中表級別有statistics信息包括bytes、rows等信息,字段級別有min、max等。

對于一個簡單的join,僅使用表級別的rowcount信息就能夠去調整join順序,使得整體的plan過程中需要join的數據量達到最少。但是如果sql帶有aggregate或者filter,就需要結合列的信息去估算整個scan的cost。

關于通過統計指標來優化查詢,有幾下幾點思考:

  • 如何更好的利用statistics來優化查詢。比如Delta Lake中count整表的sql可以直接通過元數據層面的統計信息得到count值,將原本的aggregate操作轉換成LocalRelation,避免Scan全表。
  • 如何高效收集/實時更新statistics。
  • 如何打通湖格式自身和Spark需要的statistics。spark會從table properties獲取統計信息,而一般情況湖格式的統計信息都是記錄到自己的元數據中,這部分需要更好的打通和復用。

(3)Table Scan

在完整Logical Plan的優化并轉化為Phyiscal Plan后,下一步就要執行具體的數據文件讀取,即Table Scan階段。

這里小文件對查詢的影響是大家所熟悉的。三個湖格式都提供了相應的合并小文件的功能,關鍵問題其一是目標文件設置多大是合適的,其二合并操作執行的時機和方式,這點我們后續再展開。默認情況下parquet在各引擎都是128M左右,但這是否是最優的還要看表的整體規模。過多的文件,將會導致元數據規模變大,影響元數據的讀寫,databricks和阿里云emr都提供了自動調教file size的功能。這里給出databricks的設置文件大小和表規模的映射關系。為了控制元數據的規模,對于10TB的表建議文件大小設置為1G。

圖片

在得到表的全部有效數據文件后,我們還是要根據查詢條件來盡可能的進行裁剪,以減少最終讀取Parquet或者ORC文件的體量。Table scan優化分為兩類:一是元數據裁剪,二是行級索引。元數據裁剪又可以分為分區裁剪、Manifest裁剪(Iceberg特有)、File裁剪等不同粒度。

圖片

三個數據湖格式都支持Z-Order和DataSkipping:先將min-max信息寫到元數據當中,然后結合查詢過濾條件去實現過濾。

針對點查,傳統數據庫更多是通過行級索引來實現。Databricks商業版Delta Lake支持BloomFilter,使用單獨的目錄文件,保存數據文件的索引信息;Hudi也支持Multi-Modal Index多模索引。EMR也計劃在DataLake Metastore中嵌入Index System來支持點查加速。

最后就是實際的Reader來讀取數據文件了。以Parquet為例,各引擎集成parquet之后,讀寫性能已經非常不錯。但是有一些具體的湖格式場景會關閉一些優化參數,相關的比如謂詞下推,向量化等。另外文件的壓縮格式和壓縮比也會影響文件的加載,以及目前一些Native框架支持的Native Parquet Reader(如Arrow,Presto,Velox等)。

2、寫入

以一個帶where條件的update SQL為例,首先要能找到匹配這些查詢條件的所在的數據文件,然后加載文件,對匹配到的數據應用表達式完成更新,并最終寫出。在完成提交后,也許還要執行一些表的table service,包括clean、checkpoint、compaction等。

優化寫操作,選擇適合當前場景的表類型(如MOR表),并配置合適的參數。在湖格式場景下,這種后置的追加在湖格式寫入后面的table service其實是逐漸成為了影響效率或者整體作業穩定性的關鍵性因素。要解決這樣的問題,比較通用的做法就是拆成兩個鏈路:一個鏈路就是正常寫入,另外一個鏈路是用離線的方式通過調度一個作業來執行table service任務,包括像clean、Hudi表管理等等。

在阿里云EMR場景下,有些同時使用Flink和Spark引擎的客戶,會采用Flink Hudi入湖和Spark離線管理的方案。另外EMR也提供了中心化的自動化湖表管理,是結合阿里云的DLF服務實現的。如圖所示,湖格式自動將commit信息同步到DLF湖表服務,該服務將根據預定義的策略和實際表的狀態及配置判斷是否要產生湖表管理類的操作。

圖片

這里的核心其實是采取怎樣的策略來更好的管理湖表。EMR目前上線了兩大類5個策略。在同一類中,又設置優先級避免多條策略的命中而造成計算資源的浪費。舉個例子,大多數入湖的表是以時間分區的,DLF湖表管理能夠判斷到新分區的到達,而在第一時間對已完成寫入的分區執行小文件合并或者zorder的操作,以便快速提供這部分數據的高效查詢。

責任編輯:姜華 來源: DataFunTalk
相關推薦

2018-03-07 10:35:45

云計算存儲系統

2018-01-22 09:08:14

存儲系統性能帶寬

2024-08-27 09:12:36

2023-06-19 07:13:51

云原生湖倉一體

2012-12-28 17:31:06

2018-09-29 14:08:04

存儲系統分布式

2014-01-07 09:15:24

云集成云存儲RESTful

2013-12-27 10:56:42

分布式對象存儲Sheepdog性能測試

2014-02-19 11:37:57

分布式對象存儲Sheepdog

2021-07-04 07:07:06

Ceph分布式存儲架構

2021-08-07 05:00:20

存儲系統

2009-09-22 15:22:08

Hibernate性能

2024-06-12 07:30:08

2024-09-11 14:47:00

2010-10-22 18:06:51

IBM存儲

2022-08-30 07:39:37

GPFSSAN存儲

2023-06-29 06:13:52

2024-12-16 08:34:13

2018-01-31 08:44:20

數據存儲存儲設備存儲系統

2018-01-19 08:35:47

存儲系統SAS
點贊
收藏

51CTO技術棧公眾號

五月天婷婷在线观看视频| 精品影视av免费| 国产suv精品一区二区883| 精品成人在线观看| 日本中文字幕久久看| 中文国产在线观看| 18加网站在线| 久久91成人| 曰韩精品一区二区| 国产精品成人va在线观看| **欧美日韩vr在线| 亚洲国产一区二区三区四区| 欧美成熟毛茸茸复古| 在线免费观看a级片| 一本一道波多野毛片中文在线| 欧美午夜a级限制福利片| 欧美日韩综合色| 欧美久久久久久久| 国产美女主播在线观看| 国产精品嫩草影院在线看| 亚洲成人免费电影| 92福利视频午夜1000合集在线观看| 美女久久久久久久久久| 好看的中文字幕在线播放| 精品一区二区影视| 91av国产在线| 极品盗摄国产盗摄合集| 国产欧美自拍| 日韩aaaaaa| 素人av在线| 粉嫩13p一区二区三区| 国产精品91免费在线| 国产精品探花一区二区在线观看| 男女在线视频| 国产福利不卡视频| 精品中文字幕在线观看| 亚洲综合av在线播放| 国产精品一二三区视频| 亚洲男人影院| 亚洲男人天堂网站| 国产偷人视频免费| 天堂av在线7| 国产欧美日韩综合一区在线播放 | 国产成人免费av在线| 欧洲成人免费视频| 欧美成人三级伦在线观看| 亚洲精品tv| 亚洲日本护士毛茸茸| 成人淫片在线看| 中文字幕在线有码| 一区二区中文字幕在线观看| 一区二区三区成人在线视频| 九九九九九九精品| 一级黄色大片视频| 国产欧美日韩视频在线| 亚洲激情自拍图| 中文字幕第九页| 狼人综合视频| 久久蜜臀精品av| 国产精品久久久一区| 91视频青青草| 国产精品久av福利在线观看| 婷婷久久综合九色综合伊人色| 免费成人av网站| 亚洲aaaaaaa| 麻豆一区二区在线| 精品中文字幕在线| 青青草手机在线视频| 欧美成人一区在线观看| 欧美在线视频不卡| 国产女人18毛片| jizz中国少妇| 亚洲欧美视频| 日韩av免费一区| 无码视频在线观看| 欧美先锋影音| 久久久亚洲国产| 国产不卡在线观看视频| 福利电影一区 | 成人黄色免费视频| 久久久蜜桃一区二区人| 久久亚洲精品小早川怜子66| 久久国产精品无码一级毛片| 亚洲v天堂v手机在线| 欧美一区二区三区白人| 日日碰狠狠躁久久躁婷婷| 黄网站在线播放| 2023国产精品视频| 日韩欧美一区二区三区四区| 国产wwwwwww| 成人av在线一区二区| 国产精品一区二区三区在线播放| 国产精品二区一区二区aⅴ| 99久久精品网站| 精品香蕉一区二区三区| 师生出轨h灌满了1v1| 四虎精品在线观看| 日韩视频在线永久播放| 男女视频在线看| 欧美调教sm| 欧美午夜影院一区| 情侣黄网站免费看| 成人污污www网站免费丝瓜| 欧美综合久久久| a级大片免费看| 白嫩亚洲一区二区三区| 欧美在线小视频| 曰本三级日本三级日本三级| 不卡一区视频| 日韩不卡在线观看| 中文字幕天堂av| 国产精品巨作av| 怡红院精品视频| 干b视频在线观看| 天堂99x99es久久精品免费| 亚洲成人av中文字幕| 精品无码av一区二区三区不卡| 最新亚洲精品| 色与欲影视天天看综合网| 69xxxx国产| 处破女av一区二区| 国产乱人伦精品一区二区| 亚洲大尺度视频| 高清免费成人av| 五月天亚洲综合| 日韩美女网站| 欧美性猛xxx| 国产精品免费成人| 91精品久久久久久综合五月天| 永久免费精品影视网站| 黄色在线观看国产| 久久婷婷久久| 国产精品美女免费| 亚州视频一区二区三区| 亚洲一区二区免费视频| 国产成人无码精品久久久性色| 国产精品电影| 偷拍一区二区三区| 丰满少妇中文字幕| 99国产精品一区二区| 国产成人精品久久二区二区91| 天天干天天操av| 久久精品人人做人人爽人人| 欧美一区二区三区四区五区六区| melody高清在线观看| 最新日韩在线视频| 国产肉体ⅹxxx137大胆| 欧美aa一级| 亚洲精品在线观| 国产亚洲第一页| 亚洲一区中文| 久久www免费人成精品| 9999热视频在线观看| 欧美在线不卡一区| 国产小视频自拍| 日韩国产精品久久久久久亚洲| 国产日韩欧美综合| 亚洲精品国产av| 亚洲精品免费在线| 少妇高潮一69aⅹ| 欧美日韩国产精品一区二区亚洲| 亚洲最大的网站| 人妻妺妺窝人体色www聚色窝| wwwwww.欧美系列| 亚洲欧美日韩精品在线| 成人精品国产免费网站| 国产精品日韩av| www黄在线观看| 欧美日韩国产一区二区三区地区| 国语对白做受xxxxx在线中国| 天美av一区二区三区久久| 日本高清不卡的在线| 国产在线播放av| 亚洲人成7777| 国内av免费观看| 红桃视频国产一区| 国产精品亚洲美女av网站| 91社区在线高清| 亚洲va欧美va天堂v国产综合| 男人女人黄一级| 成人影院中文字幕| 在线日韩精品视频| 国产乱色精品成人免费视频| 久久综合九色综合欧美亚洲| 日本在线视频www| 日韩大片在线| 韩日精品中文字幕| 国产精品主播一区二区| 亚洲一线二线三线视频| 偷拍女澡堂一区二区三区| 欧美体内she精视频在线观看| 国产精品乱码视频| 日韩av大片站长工具| 欧美一级日韩一级| 毛片毛片女人毛片毛片| 国产精品麻豆99久久久久久| 被灌满精子的波多野结衣| 高清国产一区二区三区四区五区| 欧美极品美女视频网站在线观看免费 | 美女黄色免费看| 欧美人与动xxxxz0oz| 国产精品自拍视频| 好吊日av在线| xvideos亚洲| 中文字幕第38页| 久久a级毛片毛片免费观看| 久久在线免费观看视频| 免费av网站在线播放| 欧洲人成人精品| 久草成人在线视频| 中文欧美字幕免费| 91国产精品视频在线观看| 欧美伊人久久| 3d动漫精品啪啪一区二区三区免费 | 久久亚洲免费视频| 色姑娘综合天天| 奇米影视在线99精品| 日产国产精品精品a∨| 国产在线不卡一区二区三区| 国产999精品视频| 男女在线观看视频| 久久久国产91| 国产欧美一区二区三区视频在线观看| 精品久久久久久久久久| 国产日韩欧美在线观看视频| 欧美激情一区二区三区蜜桃视频 | 极品校花啪啪激情久久| 99色在线观看| 欧美xxxx做受欧美.88| www视频在线| 欧美丝袜丝交足nylons| 中文字幕视频网| 亚洲一二三专区| 亚洲伦理一区二区三区| 国产精品网站在线播放| 久久亚洲AV无码专区成人国产| a美女胸又www黄视频久久| 国产妇女馒头高清泬20p多| 猫咪成人在线观看| 51精品国产人成在线观看| 日本在线一区二区| 国产精品久久久久久婷婷天堂| www.日韩| 久久激情视频免费观看| shkd中文字幕久久在线观看| 亚洲欧美日韩天堂| 日本黄在线观看| 欧美另类z0zxhd电影| 欧美成人精品激情在线视频| 中文字幕在线一区二区三区| 一级黄色大片儿| 久久97超碰色| 中文字幕中文在线| 九九热在线视频观看这里只有精品| 男女污污的视频| 永久亚洲成a人片777777| 国产一级精品aaaaa看| 欧美xxxhd| 136fldh精品导航福利| 中文字幕成在线观看| 日韩在线中文字| 亚洲国产精品视频在线| 精品美女一区二区| 国产精品高清无码| 亚洲免费大片在线观看| 成年人的黄色片| 91女人视频在线观看| 日韩av在线看免费观看| 国产清纯白嫩初高生在线观看91 | 亚洲最好看的视频| 热舞福利精品大尺度视频| 欧美日韩第一| 国产一区二区精品在线| 清纯唯美亚洲经典中文字幕| 蜜桃传媒视频第一区入口在线看| 国产调教一区二区三区| 在线观看欧美激情| 天海翼亚洲一区二区三区| 日韩精品另类天天更新| 91精品啪在线观看国产81旧版| 欧美日韩综合另类| 欧美3p视频| 欧美理论一区二区| 成人在线免费观看网站| 蜜桃视频在线观看成人| 欧美日中文字幕| 欧美做受777cos| 国产精品主播| 粉色视频免费看| 成人免费视频网站在线观看| 成人免费无遮挡无码黄漫视频| 国产精品国产三级国产有无不卡| 久久精品www人人爽人人| 一本色道综合亚洲| 天天操中文字幕| 亚洲国产中文字幕在线视频综合| 九九九在线观看| 91精品在线免费观看| 看黄色一级大片| 色诱视频网站一区| 国产免费不卡av| 亚洲精品午夜精品| 精品视频在线一区二区| 5566日本婷婷色中文字幕97| 91www在线| 日韩美女在线观看| 日本一区二区三区播放| 亚洲精品欧美一区二区三区| 欧美人妖在线观看| 国产在线无码精品| 日韩高清在线观看| 亚洲午夜久久久久久久久| 国产精品伦一区| 日日噜噜噜噜人人爽亚洲精品| 欧美精品一级二级三级| 可以直接在线观看的av| 国产亚洲视频在线| aⅴ在线视频男人的天堂| 久久人人爽人人爽人人片av高请| 91在线成人| 国产精品高潮呻吟久久av野狼 | 激情五月激情综合| 国产精品欧美精品| 国产又色又爽又黄的| 欧美日韩国产麻豆| 日日夜夜操视频| 欧美videos中文字幕| 免费在线观看av| 欧美大尺度在线观看| 99久久亚洲国产日韩美女 | 免费观看黄色一级视频| 久久五月情影视| 激情欧美一区二区三区黑长吊| 麻豆视频成人| 国产精品一区亚洲| 精品无码在线视频| 婷婷综合另类小说色区| 欧美一级特黄aaaaaa| 欧美国产中文字幕| 色多多在线观看| 国产精品久久7| 国内综合精品午夜久久资源| 成年人性生活视频| 亚洲精品成人悠悠色影视| 一区二区视频网站| 欧美一区二区三区免费视频| 麻豆网站在线免费观看| 国产欧美精品一区二区三区-老狼| 禁断一区二区三区在线| 国产一级片黄色| 国产日产欧美一区二区三区 | 亚洲青涩在线| 久久久久久久久久久视频| 日本美女一区二区| a天堂中文字幕| 欧美综合一区二区三区| av在线首页| 91精品久久久久久久久久久久久久 | 777欧美精品| free性欧美hd另类精品| 欧亚精品中文字幕| 国产99久久久国产精品成人免费| 免费日韩视频在线观看| 国产精品视频在线看| 97超碰中文字幕| 亚洲第一区在线观看| 99久久精品免费看国产小宝寻花| 国产专区一区二区| 欧美亚洲在线| xxxxx99| 欧美一区二区高清| 888av在线视频| 欧美一区激情视频在线观看| 日韩va亚洲va欧美va久久| 精品亚洲乱码一区二区| 欧美日韩亚洲精品一区二区三区 | 白嫩亚洲一区二区三区| www.欧美黄色| 2024国产精品| 91在线你懂的| 欧美极品少妇xxxxⅹ免费视频| 日韩精品导航| 日本xxxx黄色| 亚洲制服欧美中文字幕中文字幕| 天天摸天天干天天操| 国产精品色悠悠| 欧美激情精品久久久六区热门| 超碰男人的天堂| 欧美色图免费看| 丁香花在线观看完整版电影| 欧美日韩精品久久| 国产一区二区三区免费播放| 免费观看a级片| 精品久久久久久久久久ntr影视| 国产对白叫床清晰在线播放| 91在线视频免费| 四虎成人av| 少妇被狂c下部羞羞漫画| 洋洋av久久久久久久一区| 四虎在线视频|