精品欧美一区二区三区在线观看 _久久久久国色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久久久久久久| 麻豆精品国产91久久久久久| 日韩三级免费观看| 日韩国产小视频| 日本美女一级视频| 久久狠狠婷婷| 中文字幕亚洲欧美日韩高清| 91福利免费观看| 日本资源在线| 91蜜桃视频在线| 国产精品视频一区国模私拍| 999精品在线视频| gogo久久日韩裸体艺术| 色av一区二区| 国产欧美123| 日韩美女一级视频| 免费高清视频在线一区| 国产欧美日韩不卡| 亚洲xxx大片| 影音先锋亚洲天堂| 久久激情电影| 亚洲国产精久久久久久| 久久婷婷国产精品| dy888亚洲精品一区二区三区| 成人av片在线观看| 国产精品最新在线观看| 日本三级视频在线| 精品一区二区三区亚洲| 精品久久香蕉国产线看观看gif| 丝袜美腿玉足3d专区一区| www.四虎在线观看| 日韩 欧美一区二区三区| 欧美国产在线视频| 四虎影视一区二区| 老司机精品在线| 777色狠狠一区二区三区| 婷婷精品国产一区二区三区日韩| 国产成人免费看一级大黄| 久久久精品午夜少妇| 久久91精品国产91久久久| 亚洲精品天堂网| 五月天亚洲色图| 狠狠躁夜夜躁人人爽超碰91| 中文字幕中文字幕在线中一区高清 | 色先锋久久影院av| 欧美一区二区成人| 日本中文字幕精品—区二区| 性欧美18~19sex高清播放| 亚洲欧洲三级电影| 日本一区视频在线播放| 色视频在线看| 成人av在线一区二区| 91在线免费看片| 91久久国语露脸精品国产高跟| 日韩制服丝袜av| 91chinesevideo永久地址| 久久亚洲成人av| 一本到12不卡视频在线dvd| 色偷偷偷综合中文字幕;dd| 免费一级特黄录像| 成人教育av| 欧美经典三级视频一区二区三区| 久久99精品久久久久久水蜜桃 | 欧美一区二区网站| 亚洲精品自拍网| 欧美日韩电影免费看| 欧美色视频日本版| 无码人妻精品一区二区三区在线| 手机看片1024国产| 日韩高清不卡一区二区三区| 欧美亚洲国产视频小说| 精品熟妇无码av免费久久| 日韩激情啪啪| 日韩精品视频在线观看网址| 日本一区二区在线免费观看| 欧美日韩导航| 欧美久久一二区| 一女二男3p波多野结衣| 成人豆花视频| 欧美一二三区精品| 午夜性福利视频| 97久久亚洲| 亚洲精品不卡在线| 超碰超碰在线观看| 日本午夜免费一区二区| 91精品国产色综合久久不卡蜜臀| 国产探花在线观看视频| 中文字幕亚洲在线观看| 精品国产乱码久久久久久图片| 手机免费看av片| 偷拍亚洲色图| 在线播放亚洲激情| 国产又粗又硬又长又爽| 国模吧视频一区| 奇米4444一区二区三区| 五月婷婷一区二区| 精品国产一区二区三区四区| 日本va欧美va精品| 国产精品久久久久久五月尺| 在线视频播放大全| 国产一区二区伦理| 国产一区在线免费| 韩国福利在线| 亚洲欧美日韩一区二区三区在线观看| 亚洲精品免费在线视频| www.好吊色| 99在线精品视频| 亚洲精品成人久久久998| a视频在线观看免费| 香蕉乱码成人久久天堂爱免费| 四虎永久在线精品无码视频| 欧美系列精品| 色综合色狠狠综合色| 久热精品在线观看视频| 99精品国产高清一区二区麻豆| 亚洲男人天堂久| av最新在线观看| 亚洲欧洲一区二区天堂久久| 国产精品成人在线| 亚洲国产999| 国产免费观看久久| 人妻av中文系列| 精品三级在线| 日韩av在线网址| 欧美h片在线观看| 国产精品一卡| 91久久久久久久久久久| 经典三级在线| 亚洲一区二区欧美日韩| 人人爽人人av| 伦理一区二区三区| 美日韩精品免费视频| 久久久久精彩视频| 99久久精品免费看国产| 麻豆中文字幕在线观看| 你懂得影院夜精品a| 色综合天天天天做夜夜夜夜做| 日本一区二区三区在线免费观看| 国产在线日韩精品| 4444欧美成人kkkk| 亚洲va天堂va欧美ⅴa在线| 国产精品久久一级| 日韩视频第二页| ccyy激情综合| 欧美日韩电影在线观看| 91精品中文字幕| 国产人伦精品一区二区| 亚洲熟妇国产熟妇肥婆| 一区二区在线视频观看| 久久亚洲精品一区| 在线观看国产黄| 国产色爱av资源综合区| 免费无遮挡无码永久视频| 最新国产精品精品视频| 久久亚洲精品国产亚洲老地址| 艳妇乳肉豪妇荡乳av无码福利| 91一区二区三区在线播放| 人妻无码久久一区二区三区免费| 亚洲天堂av资源在线观看| 久久久精品一区二区| 91尤物国产福利在线观看| 中文字幕成人av| 国产一级特黄a大片免费| 国产精品片aa在线观看| 日本欧美国产在线| 九色在线播放| 日本精品一区二区三区高清| 偷拍夫妻性生活| 日韩国产精品久久久| 亚洲 国产 欧美一区| 99热播精品免费| 最近2019中文字幕大全第二页| 中国一级特黄视频| 国产精品三级电影| 午夜免费福利视频在线观看| 国产韩日影视精品| 亚洲自拍偷拍福利| 欧美人与牲禽动交com| 亚洲成人av中文字幕| 影音先锋亚洲天堂| 久久久电影一区二区三区| 国内自拍视频一区| 欧美r级电影| 国产啪精品视频网站| 国产原厂视频在线观看| 日韩免费视频线观看| 日韩欧美三级在线观看| 2024国产精品| 欧洲精品码一区二区三区免费看| 97在线观看免费观看高清 | 久久久精品视频在线| 国产a级毛片一区| 91九色在线观看视频| 狠狠综合久久av一区二区蜜桃| 国产精品久久久久久久av大片| 日韩欧美小视频| 日韩欧美的一区| 999这里只有精品| 国产精品天美传媒| 日本黄色大片在线观看| 亚洲综合国产| 在线观看一区欧美| 老牛影视av一区二区在线观看| 国产成人亚洲综合青青| 老司机在线永久免费观看| 欧美日韩一区二区三区在线免费观看 | 欧美成人xxxxx| 欧美呦呦网站| 91成人在线播放| 北岛玲一区二区三区| 欧美一区二区精品| 狠狠人妻久久久久久| 亚洲欧美激情视频在线观看一区二区三区| 免费日韩中文字幕| 亚洲精品a级片| 美日韩免费视频| 极品视频在线| 中文字幕日韩精品在线| 亚洲精品一级片| 欧美三区在线观看| 国产乡下妇女做爰视频| 中文字幕av一区二区三区| 欧美极品jizzhd欧美仙踪林| 免费视频最近日韩| 亚洲人精品午夜射精日韩| 99视频精品全部免费在线视频| 黄色99视频| 另类视频一区二区三区| 国产精品久久久久久久久久ktv| √8天堂资源地址中文在线| www.欧美免费| 国产在线高清| 亚洲国产一区二区三区四区| 国产视频一区二区三区四区五区| 在线中文字幕一区| 在线观看免费小视频| 成人午夜在线播放| 国产原创中文在线观看| 91精品国偷自产在线电影| 欧洲一区二区日韩在线视频观看免费 | 萌白酱视频在线| 久久婷婷综合激情| 中国极品少妇videossexhd| 国产精品一区二区91| 天天干天天综合| 日韩不卡一区二区三区| 久久久噜噜噜www成人网| 亚洲一级网站| 精品国产一区二区三| 亚洲一区二区免费在线观看| 成人国产精品免费视频| ww久久综合久中文字幕| 国产精品久久99久久| 久久毛片亚洲| 日本视频久久久| 亚洲美女尤物影院| 2020久久国产精品| 国产精品高颜值在线观看| 久久久久久国产精品美女| 少女频道在线观看免费播放电视剧| 菠萝蜜影院一区二区免费| 日本激情在线观看| 久久精品国产久精国产一老狼| bbbbbbbbbbb在线视频| 在线观看国产精品日韩av| 福利视频在线播放| 亚洲午夜未满十八勿入免费观看全集| 日本aaa在线观看| 亚洲乱码国产乱码精品精| 久久久资源网| 在线亚洲欧美视频| 永久免费在线观看视频| 久久精品精品电影网| а√天堂在线官网| 久久久久久久国产| а√天堂8资源在线| 欧美一级高清免费播放| 欧美日韩123区| 国产美女久久久| www欧美在线观看| 97免费高清电视剧观看| 欧美a级网站| 欧美午夜视频在线| 首页国产精品| 国产91沈先生在线播放| 性久久久久久| 国产又大又黄又粗的视频| 激情五月婷婷综合| 中文字幕天堂网| 久久综合国产精品| 中文字幕91视频| 亚洲激情av在线| 中文字幕日韩一级| 欧美色大人视频| www久久久久久| 日韩精品极品视频| 日本精品一区二区三区在线播放| 欧美激情乱人伦一区| 中文字幕成在线观看| 国产精品自在线| 国产精品极品| 色一情一乱一伦一区二区三欧美| 久久视频在线| 91精品国产91久久久久麻豆 主演| 性伦欧美刺激片在线观看| 欧美性受xxxx黒人xyx性爽| 91日韩精品一区| 国产免费一区二区三区四区| 午夜伦理一区二区| 中文字幕一区二区三区人妻四季| 日韩视频免费观看高清在线视频| 午夜福利视频一区二区| 日韩小视频在线观看| 国产一二三在线| 91久久国产精品| 久久99影视| cao在线观看| 久久国产精品色婷婷| 色呦呦一区二区| 亚洲男女一区二区三区| 国产女主播喷水视频在线观看| 日韩欧美国产精品| 亚洲成人三级| 日本久久中文字幕| 国偷自产视频一区二区久| 潘金莲一级淫片aaaaa免费看| 美女黄网久久| 国产51自产区| 亚洲美女偷拍久久| 中文字幕免费高清在线观看| 日韩经典一区二区三区| 日本在线视频网址| 亚洲aa在线观看| 精品高清在线| 国产免费一区二区三区视频| 国产白丝网站精品污在线入口| 久久免费手机视频| 色老头久久综合| 五月婷婷六月丁香| 97国产精品人人爽人人做| 日韩视频1区| 天天爱天天做天天操| 日本女优在线视频一区二区 | 91丨porny丨户外露出| 欧美黄色一级网站| 91精品国产乱码| 亚洲1卡2卡3卡4卡乱码精品| 国产精品1234| 久久不见久久见免费视频7| 欧美一区二区中文字幕| 成人免费av资源| 国产亚洲精品久久777777| 日韩欧美一区在线| av网站网址在线观看| 91免费欧美精品| 999精品色在线播放| 欧美成人福利在线观看| 欧美国产一区二区在线观看| 久久久精品视频网站 | 日韩av电影在线免费播放| 日本亚洲不卡| 欧美老熟妇喷水| 久久久久久麻豆| 黄色网址中文字幕| 亚洲日本aⅴ片在线观看香蕉| 超碰一区二区| 日本不卡二区高清三区| 久久美女性网| 极品蜜桃臀肥臀-x88av| 欧美视频在线不卡| 日本电影全部在线观看网站视频| 国产在线久久久| 伊人久久大香线蕉精品组织观看| 韩国一区二区在线播放| 亚洲精品亚洲人成人网| 丰满少妇高潮在线观看| 91国产美女在线观看| 国产精品欧美三级在线观看| 欧美特级aaa| 亚洲精品亚洲人成人网在线播放| 黄色aaa毛片| 欧美性受xxx| 日韩电影在线视频| 青青草原播放器| 亚洲成人免费av| 久久精品色图| 国产精品日日做人人爱| 久久久久久久久久久久久久| 亚洲成年人av| 日本黄色一区二区| 国产黄色在线免费观看| 国产一区二区三区av在线 | 九一精品久久久| 伊人性伊人情综合网| 婷婷在线免费观看| 国产精品久久久久久五月尺| 欧美精品二区| 97人妻人人揉人人躁人人| 亚洲妇熟xx妇色黄| 国产女主播在线直播|