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

探究Presto SQL引擎(4)-統計計數

大數據
本篇文章介紹了統計計數的基本原理以及Presto的實現思路,精確統計和近似統計的細節及各種優缺點,并給出了統計計數在具體業務使用的建議。

一、背景

學習Hadoop時接觸的第一個樣例就是word count,即統計文本中詞的數量。各種BI、營銷產品中不可或缺的模塊就是統計報表。在常見的搜索分頁模塊,也需要提供總記錄數。

統計在SQL引擎中可謂最基礎、最核心的能力之一。可能由于它太基礎了,就像排序一樣,我們常常會忽視它背后的原理。通常的計數是非常簡單的,例如統計文本行數在linux系統上一個wc命令就搞定了。

除了通常的計數,統計不重復元素個數的需求也非常常見,這種統計稱為基數統計。對于Presto這種分布式SQL引擎,計數的實現原理值得深入研究,特別是基數統計。關于普通計數和基數計數,最典型的例子莫過于PV/UV。

二、基數統計主要算法

在SQL語法里面,基數統計對應到count(distinct field)或者aprox_distinct()。通常做精確計數統計需要用到Set這種數據結構。通過Set不僅可以獲得數量信息,還能不重不漏地獲取每一個元素。

Set內部有兩種實現實現原理:Hash和Tree。

在海量數據的前提下,Hash和Tree有一個致命的問題:內存消耗,而且隨著數據量級的增長,內存消耗也是線性增長。

面對Set內存消耗的問題,通常有兩種思路:

一種是選取其他內存占用更小的數據結構,例如bitmap;

另一種是放棄精確,從數學上尋求近似解,典型的算法有Linear Count和HyperLogLog。

2.1 Bitmap

在數據庫領域Bitmap并不是新事物,一般用作索引,稱為位圖索引。所謂位圖索引,就是用一個bit位向量來記錄某個字段值是否存在于對應的記錄。它有一個前置條件:記錄要有永久的編號,類似于從1開始的自增主鍵。

2.1.1 位圖向量的構建

舉個例子,假設表user記錄如下:

這是很典型的一張數據庫表。對于表中的字段,如何構建位圖索引呢?以age字段為例:

  • S1: 確定字段的取值集合空間: {30,40,50} 一共3個選項。
  • S2: 依次為每個選項構建一個長度為6的bit向量,得到一個3*6的位圖。3表示字段age的取值基數,6表示記錄數。

S3: 基于表設置位圖相應向量值。例如:age=30的記錄id分別為{1,2,6},那么在向量1,2,6位置置為1,其他置為0。得到110001。

同理,對于name字段,其向量位圖為:

可以看出,如果對于數據表的一個字段,如果記錄數為n且字段的取值基數為m,那么會得到一個m*n的位圖。

2.1.2 位圖向量的應用

有了位圖向量,該如何使用呢?假設查詢SQL為

select count(1) from user where age=40;

則取age字段位圖中age=40的向量:110001。統計其中1的個數,即可得到最終結果。

假設查詢SQL更復雜一些:

select count(1) from user where age=40 and name='baz'

則取age字段位圖中age=40的向量:110001和name='foo'的向量:100100。兩個向量進行交集運算:

最后統計結果為1。

關于Bitmap的思想,筆者認為最巧妙的一點就是通過位運算實現了集合運算。如下圖所示:

在不同的業務場景中,這里的集合可以賦予不同的業務含義。

2.1.3 位圖向量的優點

將字段的篩選變成了向量計算后,會非常節約內存,而且可以通過分段長度編碼等方式對bitmap向量進行壓縮。而且位運算直接對內存中的二進制位進行操作,執行效率非常高,是性能提升的一大殺器。

理解了bitmap后,可以發現對于整型字段,可以直接用bitmap進行基數統計。筆者曾經實驗過,對于3億數據量級使用roaringbitmap工具,bitmap消耗內存約30M,而且如果數據分布非常密集內存消耗還有很大的壓縮空間。唯一的缺點是非數值型字段,需要進行額外的轉換處理。

2.2 Linear Count算法

Linear Count簡稱LC算法,LC算法的流程非常簡單(背后的數學思想不簡單)。

算法描述如下:

初始化:給定m個房間,房間存儲數字,初始化為0。
迭代執行:對于要進行基數統計的集合,用一個哈希函數處理集合中的每一個元素。通過哈希函數處理后,元素就可以放置到一個房間中。
收尾:統計m個房間中空房間的數量U。
結論:集合中不重復元素的個數估計值可以通過如下公式計算:n=-m*log(U/m)。

這樣就把一個統計問題轉換成了一個數學問題。公式非常簡潔,看到這里大腦中一定會出現許多的問題:

  • 這個公式是怎么得到的?

這里涉及到概率論與數理統計知識,簡單來說就是分布、期望、方差、最大似然估計。數學相關的知識比較初級,陳希孺的《概率論與數理統計》基本能覆蓋這個公式的數學原理。

  • 這個算法的精確度怎么樣?

這個問題從數學的角度,就是問方差(標準差)。這里沒法給一個具體的值,跟滿桶率控制, m的選擇有關。

這個算法相比精確計數很省空間嗎?

這個毋庸置疑,不然直接精確統計就可以了。

  • m和最終結果n需要滿足什么關系?

(畢竟當沒有空房間時,這個公式就有問題了。) 這里直接給結論吧,隨著m和n的增大,m大約為n的十分之一。

2.3 HyperLogLog算法

HyperLogLog簡稱HLL算法,它有如下的特點:

  1. 可以實現由極小的內存開銷統計出巨量的數據。在 Redis中實現的HyperLogLog,只需要12K內存就能統計2^64個數據。
  2. 可以方便實現分布式擴展。(這個點對算法在業務系統中落地非常關鍵)

理解HLL算法,需要如下幾個知識點的鋪墊:伯努利實驗、調和平均數。

伯努利實驗有很多的呈現方式,本文例舉其中的一種: 取一枚硬幣,不斷拋擲,直到硬幣落地結果為正面朝上。這樣的執行過程稱為一輪實驗。從描述可以看出一輪實驗完成拋擲硬幣的次數是隨機的。

一輪實驗對應的Java代碼實現如下:

private Random random = new Random();
/**
? 0代表正面
? 1代表反面
? 拋擲直到出現正面
? @return 拋擲的次數
*/
public int tossCoin(){
int r,cnt=0;
do{
r=random.nextInt(2);
cnt++;
}while (r<1);
return cnt;
}

可以看出,每執行一輪實驗就會得到一個數字,代表這輪實驗拋擲硬幣的次數。例如:

執行了10輪,可能的結果如下:

3,1,4,1,1,2,3,4,1,1

執行了100輪,可能的結果如下:

1,1,2,1,1,2,1,4,2,1,3,1,1,1,1,3,1,2,1,1,2,4,2,3,2,1,1,1,3,1,2,2,6,1,2,4,1,2,2,1,1,3,1,1,1,1,1,1,1,1,1,4,2,1,1,1,1,1,3,1,2,4,4,4,1,3,2,1,5,1,1,1,1,1,1,1,5,1,1,7,1,1,4,1,3,2,1,1,5,2,1,1,5,2,1,1,4,1,1,1

執行了1000輪,可能的結果如下:

1,2,1,2,1,3,3,3,1,1,2,2,1,2,1,1,1,1,1,2,1,7,1,1,1,2,2,1,1,3,5,2,3,2,3,1,1,3,1,  ...,4,1,1,1,2,2,1,3,1,1,1,2,1,1,1,2,1,4,2,2,1,2,2,2,1,1,1,2,2,2,1,1,1,2,2,1,1,3,2,6,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,2,1

這時候問題就來了,我們這樣按上面的規則不停的拋硬幣只是為了應付無聊的時間嗎?當然不是!我們關注的重點是:

當然,這個最大值是隨機變動的,它不是一個固定的值。但是隱約中有個規律:執行的輪次越多,輪次對應的最大值也越大。數學上可以給一個很粗略的公式來擬合這種關系:n=2^p。

換言之,我們可以通過p來估計n。到這里就出現了問題解決思路的轉換:

將基數統計問題轉換成概率論里面參數估計的問題。

思維轉換到了數學領域,就可以用數學的工具來解決問題。通常用概率論的思維解決問題,會面臨如下幾個攔路虎。

問題一:最大值不穩定,容易受到極值影響。

在概率上,對于極值我們的處理策略是多實驗幾輪,通過平均值來消除極值的影響。這個就引出了第二基礎知識點:調和平均數。

數學上其實有許多的平均數計算方式:算術平均數、幾何平均數、平方平均數。這里選用調和平均數主要是消除極值的影響。通常有個笑話說,我的收入是1萬,老板的收入是1億,我們平均收入是5000萬,我被平均了。如果用調和平均數,得到的結果就是1999.98。

關于調和平均數的公式,非常容易理解:

關于數學,確切地說是概率論的知識點,還有很多。例如估計方法是有偏估計還是無偏估計?,估計的方差和標準差是多大?這里涉及到較為底層的概率論知識,就先略過。

略過數學知識,關鍵的問題在于,我們如何將待基數統計問題跟上面的伯努利實驗建立聯系?這兩個點之間的橋梁就是Hash函數。第一次見識到Hash函數還能這樣用,確實大開眼界。

對于相同的數,通過hash函數生成的散列值是相同的,這就進行了排重。當然不排除不同的數據生成同樣的hash值,形成沖突。由于選取的hash函數例如MurmurHash3沖突率低,可以忽略這個因素。

實際上,由于Hash函數生成的二進制串通常具備均勻的特性,所以Hash函數生成的二進制串可以視為拋擲硬幣的結果。

對于一個待進行基數統計的集合(例如一個表中符合條件的字段值),為了降低估計的錯誤率,我們分成m組。某個值歸屬于哪個組由hash函數生成結果對應的前幾位決定,剩下的二進制串用于計算當前輪伯努利實驗第一次出現正面時拋擲的次數,記為p。

所以算法描述如下:

簡單來說就是統計每個組最大的p, 然后用現成的公式計算結果即到達預估的結果。

三、分布式計數核心流程

對于Hadoop中的入門案例wordcount,可以發現如果用Presto SQL表達如下(以tpch數據集customer表name字段為例):

select w, count(1) cnt from (
select split(name,'#') words from customer
) t1 cross join UNNEST(t1.words) AS t (w)
group by w;

可以看出相比大段的代碼,SQL處理對用于來說要簡單的多。無論是哪種表達方式,核心點就是分組統計。

在MapReduce框架核心流程如下:

那么在Presto, 其執行流程是什么樣呢?

從邏輯上,都是類似的。先分組聚合,然后匯總聚合。

四、基數統計在Presto中的落地

對于基數統計問題Presto支持兩種實現方式。一種是追求精確的count distinct; 另一種是提供近似統計的approx_distinct。

count distinct的核心細節

以SQL :select count(distinct id) from hive_table 為例。

即以id為主key, 對數據進行hash分發,進行部分聚合,最終整體聚合。依然是map-reduce的思路,只不過數據按id進行了分發。

aprox_distinct的核心細節

這里就免去了基于id的hash分發策略。所以也減少了一個stage。至于approx_distinct的內部細節,基礎框架airlift中,封裝了HyperLogLog算法的實現,采用的函數是MurMurHash3算法,生成64位散列值。前6位用于計算當前散列值所在分組m。實現過程中還有一個很有意思的細節:基于待統計的數據量,實現中同時采用了Linear Count算法和HyperLogLog算法。

五、業務建議

通過上面的分析,我們可以發現高基數統計是一個非常消耗內存的操作,特別是在分布式系統背景下,不僅消耗內存,而且涉及大量網絡數據傳輸。如果分析對應的業務場景,可以提供近似值而非精確值,那么就能大幅度降低系統消耗和響應時間,提升用戶體驗。或者在設計產品的時候,對于一些場景的計數,可以優先提供近似估計,如果用戶確實需要精確計數,那么在管理好用戶響應時間預期下,再提供查詢精確值的接口。

理解了精確統計和近似統計的細節及各種優缺點,處理問題的思路就會更開闊。例如:在設計存儲索引時,我們可以優先使用HyperLogLog統計一個字段的基數近似值,如果得到的結果不是高基數,那么我們可以對字段構建bitmap索引,借此提升數據處理的效率。

在《我們如何走到今天:重塑世界的6項創新 》一書中有這樣一個觀點讓人記憶深刻:我們衡量越精確,控制的能力就越強。但是它沒有說的是,衡量越精確,成本就越大。

責任編輯:龐桂玉 來源: vivo互聯網技術
相關推薦

2022-10-27 10:06:16

Presto SQLAntlr大數據

2022-10-27 11:07:40

2022-10-27 10:32:09

Presto SQLJoin大數據

2025-08-07 01:00:00

2022-09-27 21:22:02

SQL Server數據庫

2011-03-07 13:27:13

SQLCase

2022-09-29 19:37:09

SQL Server數據庫

2017-01-19 19:46:21

Opera Prest代碼瀏覽器

2020-04-24 09:01:23

網絡安全數據泄露黑客

2022-09-05 17:09:55

SQL Server數據庫

2010-11-09 16:29:39

SQL Server死

2021-05-13 11:54:07

數據湖阿里云

2021-08-17 06:48:43

SpringbootKafkaStream

2011-10-09 10:33:12

2021-07-05 22:13:09

Node內存控制

2010-08-12 14:31:42

Flex4

2022-10-13 21:07:48

數據庫SQL Server

2022-08-26 17:22:12

SQL數據庫

2015-07-29 11:21:13

JavaScript統計數據

2021-04-25 18:35:00

Android通知系統開發者預覽版
點贊
收藏

51CTO技術棧公眾號

中文字幕男人天堂| 四虎成人在线播放| 美女毛片在线看| 九九国产精品视频| 欧美高清无遮挡| 99久久久无码国产精品性| 少妇精品一区二区| 亚洲色欧美另类| 免费观看久久久4p| 久久久久久美女| 日韩一级片在线免费观看| 亚洲综合色婷婷在线观看| 色婷婷精品大视频在线蜜桃视频| 亚洲欧美日韩精品综合在线观看| 性猛交xxxx乱大交孕妇印度| 丝袜亚洲另类欧美综合| 欧美成人免费全部| 少妇真人直播免费视频| 91精品尤物| 欧美性视频一区二区三区| 国产一线二线三线女| 免费av网站在线看| 久久久久久97三级| 国产精品香蕉视屏| 国产又粗又大又黄| 丝袜亚洲精品中文字幕一区| 欧美精品久久久久a| 成人一级片免费看| 天天躁日日躁狠狠躁欧美巨大小说 | 国内综合精品午夜久久资源| 中日韩美女免费视频网站在线观看| 动漫美女无遮挡免费| 久久久91麻豆精品国产一区| 欧美色爱综合网| 中文字幕日韩有码| 成人自拍视频网站| 97人妻精品一区二区三区| 久久久久久久波多野高潮日日| 久久久久久久久久久免费精品| 日本少妇aaa| 日韩欧美视频专区| 国产小视频91| 99久久久无码国产精品衣服| 日本欧美韩国国产| 亚洲精品久久在线| 影音先锋黄色资源| 久久精品色综合| 亚洲成人久久一区| 在线免费看黄色片| 国产伦乱精品| 亚洲第一免费播放区| 中国黄色片视频| 国产96在线亚洲| 精品少妇一区二区三区视频免付费| 三级黄色片免费观看| 9.1麻豆精品| 91精品国产欧美一区二区成人| 欧美大片久久久| 国产中文欧美日韩在线| 日韩一区二区三| 国产人妻精品午夜福利免费| eeuss国产一区二区三区四区| 成年男女免费视频网站不卡| 成av人片一区二区| 国产视频一区二区不卡| 全部免费毛片在线播放一个| 99天天综合性| 日韩精品一区二区三区外面| wwwxxx在线观看| 中文字幕视频一区| 久久人妻无码一区二区| 国精一区二区三区| 图片区小说区区亚洲影院| 国产黄色一级网站| 成人日韩在线| 欧美一区二区在线免费观看| 欧美人与性动交α欧美精品| 欧美电影完整版在线观看| 亚洲免费一级电影| av在线免费播放网址| 综合天天久久| 2019av中文字幕| 久草视频在线免费| 韩国av一区二区三区| 91网在线免费观看| 无码国产精品一区二区色情男同| 国产婷婷色一区二区三区| 一区二区精品在线观看| 麻豆福利在线观看| 色8久久人人97超碰香蕉987| 超碰成人在线播放| 林ゆな中文字幕一区二区| 亚洲人成在线播放| 欧美日韩中文字幕在线观看| 亚洲一区中文| 91免费视频国产| 无码精品人妻一区二区| 国产精品久久久久久久第一福利 | 国产精品久久久久久久99| 国产黄色片免费观看| 91片在线免费观看| 免费在线观看污污视频| 欧美大胆a人体大胆做受| 欧美日韩一区二区三区四区五区 | 99国产精品视频免费观看| 伊人色综合影院| 三级在线看中文字幕完整版| 在线91免费看| 久久亚洲无码视频| 很黄很黄激情成人| 国产一区二区在线播放| 手机看片福利在线观看| 亚洲黄网站在线观看| 成人免费毛片播放| 日本免费精品| 综合欧美国产视频二区| 国产精品第九页| 欧美成人xxxxx| 男人天堂2024| 国产一区欧美二区| 日韩精品久久久| xxxx在线视频| 欧美精品v国产精品v日韩精品 | 性色av一区二区三区四区| a级精品国产片在线观看| 一区二区高清视频| 日韩网站中文字幕| 亚洲精品久久久久久久久久久久久 | ㊣最新国产の精品bt伙计久久| 人妻久久久一区二区三区| 久久丫精品久久丫| 色婷婷狠狠五月综合天色拍| 久久综合久久八八| 亚洲视频中文字幕在线观看| 国产婷婷色一区二区三区在线| 国产v片免费观看| 北条麻妃一区二区三区在线观看| 久久中文字幕一区| 91在线视频国产| 中文字幕在线免费不卡| 91激情视频在线| 欧美军人男男激情gay| 欧美做爰性生交视频| 四虎在线观看| 日韩欧美在线视频免费观看| 18禁裸乳无遮挡啪啪无码免费| 黄色在线一区| 国产精品日韩欧美一区二区| 色呦呦呦在线观看| 日韩欧美国产综合一区| 久草免费在线观看视频| 国产91丝袜在线播放0| 波多野结衣av一区二区全免费观看| 亚洲成人五区| 午夜精品久久久久久久久久久久 | av影院在线播放| 国产精品白丝久久av网站| 欧美成年人视频| 蜜桃av噜噜一区二区三区麻豆 | 日韩精品综合在线| 欧美理论电影在线精品| 欧美资源在线观看| 成人在线免费电影| 欧美久久久一区| 国产精品三区在线观看| 成人亚洲精品久久久久软件| 日韩五码在线观看| 亚洲自拍电影| 国产日韩在线视频| 宅男网站在线免费观看| 亚洲二区中文字幕| 免费污污视频在线观看| 国产精品日韩成人| 三级网站免费看| 亚洲国内自拍| 国产欧美日韩在线观看| 午夜精品一区二区在线观看| 99综合久久| 欧美激情亚洲综合一区| 欧美一区二区少妇| 欧美日本国产视频| 国产在线视频卡一卡二| 久久看人人爽人人| 中文字幕1234区| 一区免费视频| 亚洲va韩国va欧美va精四季| 日韩成人18| 热re99久久精品国产66热| 毛片在线播放a| 欧美一区二区久久久| 好看的av在线| 中文字幕亚洲欧美在线不卡| 国产真实乱人偷精品| 看电视剧不卡顿的网站| 五月丁香综合缴情六月小说| 日韩精品dvd| 国产综合第一页| 色综合一区二区日本韩国亚洲 | 日韩欧美激情视频| 国产精品女主播在线观看| 国产av一区二区三区传媒| 日韩av一区二区三区四区| bt天堂新版中文在线地址| 日韩精品中文字幕第1页| 国产一区二区高清视频| 不卡亚洲精品| 1769国内精品视频在线播放| 好了av在线| 亚洲无亚洲人成网站77777| www.色婷婷.com| 欧美性感一类影片在线播放| 日韩成年人视频| 亚洲欧洲日韩在线| 一区二区三区久久久久| www.亚洲在线| 黄色一级片免费播放| 麻豆久久久久久| 日本精品www| 亚洲精品精选| 免费日韩在线观看| 91精品国偷自产在线电影 | 久久精品国产亚洲a∨麻豆| 精品国产制服丝袜高跟| 国产一区二区麻豆| 在线观看91精品国产入口| 中文字幕一区二区三区精品 | 91视频 - 88av| 91综合久久| 国产精品视频你懂的| 精品中文字幕av| 狠狠爱www人成狠狠爱综合网| 艳母动漫在线免费观看| 欧洲杯什么时候开赛| 欧美极品色图| 亚洲成aⅴ人片久久青草影院| 97人人干人人| 日韩成人视屏| 成人激情直播| 97视频一区| 国产91免费视频| 亚洲综合网狠久久| 国产精品美女久久久久av福利| 国产午夜精品一区在线观看| 国产一区二区丝袜高跟鞋图片| 日韩制服一区| 国产精品久久久久久久久免费 | 亚洲美女视频| 日韩国产精品毛片| 中文字幕一区二区三区乱码图片| 在线视频91| 国产精品99久久精品| 91豆麻精品91久久久久久| 潮喷失禁大喷水aⅴ无码| 国产日产欧产精品推荐色| 亚洲午夜精品久久久久久高潮| 国产亚洲制服色| jizz18女人高潮| 中文字幕一区二区三区在线播放| 自拍偷拍第9页| 曰韩精品一区二区| 久久精品视频6| 精品日本美女福利在线观看| 亚洲s码欧洲m码国产av| 欧美伊人久久久久久久久影院| 夜夜躁狠狠躁日日躁av| 91精选在线观看| 高清乱码毛片入口| 日韩精品欧美国产精品忘忧草| 男男激情在线| 一本色道久久88综合日韩精品| 免费在线看黄色| 欧美黄色片视频| 美女一区网站| 91久久国产婷婷一区二区| 给我免费播放日韩视频| 欧美日韩国产综合在线| 久久综合88| 免费一级淫片aaa片毛片a级| 久久精品30| 欧美日韩精品区别| 99精品欧美一区二区蜜桃免费| 欧美另类z0zx974| 亚洲欧美视频在线观看| 五月天婷婷综合网| 欧美三级三级三级| 亚洲第一黄色片| 亚洲性生活视频在线观看| h视频在线免费观看| 国产91精品久久久久久| 91精品视频一区二区| 国产伦精品一区二区三区| 国产探花一区| 成人国产一区二区三区| 首页国产欧美久久| 久久久国产精品久久久| 久久精品免费在线观看| 精品一区在线视频| 欧美日韩一区二区三区视频| 日韩在线观看视频网站| 日韩视频在线一区| 欧美激情护士| 91麻豆蜜桃| 色小子综合网| 男女午夜激情视频| 国产精品一区二区不卡| 精品亚洲aⅴ无码一区二区三区| 亚洲乱码中文字幕| 欧美 亚洲 另类 激情 另类| 亚洲福利视频免费观看| 老司机在线视频二区| 日韩美女视频免费在线观看| 成人另类视频| 中国老女人av| 蜜桃在线一区二区三区| 性色av蜜臀av色欲av| 亚洲在线观看免费视频| 国产精品无码一区二区桃花视频 | 国产一区二区三区四区五区入口| 青青视频在线播放| 国产成人免费视频网站高清观看视频| 国产精品天天干| 欧美午夜影院在线视频| 丁香花免费高清完整在线播放| zzjj国产精品一区二区| 先锋欧美三级| 欧美日韩综合久久| av不卡在线看| 中国极品少妇xxxx| 亚洲一区二区在线观看视频| 国产精品一级视频| 日韩在线小视频| 久久久久久一区二区三区四区别墅| 欧美日韩亚洲免费| 日韩午夜在线电影| 制服丝袜av在线| 亚洲综合久久久久| 丰满人妻av一区二区三区| 欧美xxxx18性欧美| 日韩在线亚洲| 日韩免费在线观看av| 国产一区二区在线免费观看| 最新一区二区三区| 制服.丝袜.亚洲.另类.中文| 成人短视频在线| 亚洲自拍av在线| 国产真实久久| 中国黄色片视频| 欧美日韩精品在线视频| 日本中文字幕一区二区有码在线| 欧美性做爰毛片| 国产免费一区二区三区最新不卡| 久久精品视频在线看| 一级片免费在线播放| 亚洲欧美日韩视频一区| 高清电影一区| 亚洲一区二区精品在线观看| 激情久久五月天| 久久婷婷国产麻豆91| 亚洲第一精品久久忘忧草社区| 蜜桃视频在线观看播放| 欧洲精品久久| 久久99精品久久久久久国产越南| 欧美激情精品久久久久久免费| 欧美一区二区女人| 99thz桃花论族在线播放| 九九九九九九精品| 日韩国产欧美在线观看| 任我爽在线视频| 欧美成人女星排行榜| 欧美少妇网站| 亚洲人久久久| 国产精品1区二区.| 久久精品国产成人av| 伊人久久免费视频| 亚洲精品黑牛一区二区三区| 日韩中文字幕在线免费| 国产欧美日韩在线视频| 国产高清免费观看| 欧美在线不卡区| 色喇叭免费久久综合| 久久精品无码一区二区三区毛片 | 国产精品免费精品一区| 中文字幕在线国产精品| eeuss国产一区二区三区四区| 无码内射中文字幕岛国片| 嫩草成人www欧美| 乱h高h女3p含苞待放| 日韩精品极品视频免费观看| 国产亚洲人成a在线v网站| 精品无码一区二区三区爱欲| 国产欧美日韩在线视频| 国产77777| 国产在线视频一区| 亚洲综合社区| 紧身裙女教师波多野结衣| 亚洲人永久免费| 99精品国产一区二区三区2021| 亚洲免费看av| 欧美日韩久久久久| 最新国产在线拍揄自揄视频|