成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > Spark SQL的整體實(shí)現(xiàn)邏輯解析

Spark SQL的整體實(shí)現(xiàn)邏輯解析

熱門標(biāo)簽:地圖標(biāo)注如何弄全套標(biāo) 武漢AI電銷機(jī)器人 電銷機(jī)器人 深圳 實(shí)體店地圖標(biāo)注怎么標(biāo) 在電子版地圖標(biāo)注要收費(fèi)嗎 萬利達(dá)綜合醫(yī)院地圖標(biāo)注點(diǎn) 南京電銷外呼系統(tǒng)哪家好 股票配資電銷機(jī)器人 外呼系統(tǒng)會(huì)封嗎

1、sql語句的模塊解析

   當(dāng)我們寫一個(gè)查詢語句時(shí),一般包含三個(gè)部分,select部分,from數(shù)據(jù)源部分,where限制條件部分,這三部分的內(nèi)容在sql中有專門的名稱:

當(dāng)我們寫sql時(shí),如上圖所示,在進(jìn)行邏輯解析時(shí)會(huì)把sql分成三個(gè)部分,project,DataSource,F(xiàn)ilter模塊,當(dāng)生成執(zhí)行部分時(shí)又把他們稱為:Result模塊、

DataSource模塊和Opertion模塊。

那么在關(guān)系數(shù)據(jù)庫中,當(dāng)我們寫完一個(gè)查詢語句進(jìn)行執(zhí)行時(shí),發(fā)生的過程如下圖所示:

整個(gè)執(zhí)行流程是:query -> Parse -> Bind -> Optimize -> Execute

1、寫完sql查詢語句,sql的查詢引擎首先把我們的查詢語句進(jìn)行解析,也就是Parse過程,解析的過程是把我們寫的查詢語句進(jìn)行分割,把project,DataSource和Filter三個(gè)部分解析出來從而形成一個(gè)邏輯解析tree,在解析的過程中還會(huì)檢查我們的sql語法是否有錯(cuò)誤,比如缺少指標(biāo)字段、數(shù)據(jù)庫中不包含這張數(shù)據(jù)表等。當(dāng)發(fā)現(xiàn)有錯(cuò)誤時(shí)立即停止解析,并報(bào)錯(cuò)。當(dāng)順利完成解析時(shí),會(huì)進(jìn)入到Bind過程。

2、Bind過程,通過單詞我們可看出,這個(gè)過程是一個(gè)綁定的過程。為什么需要綁定過程?這個(gè)問題需要我們從軟件實(shí)現(xiàn)的角度去思考,如果讓我們來實(shí)現(xiàn)這個(gè)sql查詢引擎,我們應(yīng)該怎么做?他們采用的策略是首先把sql查詢語句分割,分割不同的部分,再進(jìn)行解析從而形成邏輯解析tree,然后需要知道我們需要取數(shù)據(jù)的數(shù)據(jù)表在哪里,需要哪些字段,執(zhí)行什么邏輯,這些都保存在數(shù)據(jù)庫的數(shù)據(jù)字典中,因此bind過程,其實(shí)就是把Parse過程后形成的邏輯解析tree,與數(shù)據(jù)庫的數(shù)據(jù)字典綁定的過程。綁定后會(huì)形成一個(gè)執(zhí)行tree,從而讓程序知道表在哪里,需要什么字段等等

3、完成了Bind過程后,數(shù)據(jù)庫查詢引擎會(huì)提供幾個(gè)查詢執(zhí)行計(jì)劃,并且給出了查詢執(zhí)行計(jì)劃的一些統(tǒng)計(jì)信息,既然提供了幾個(gè)執(zhí)行計(jì)劃,那么有比較就有優(yōu)劣,數(shù)據(jù)庫會(huì)根據(jù)這些執(zhí)行計(jì)劃的統(tǒng)計(jì)信息選擇一個(gè)最優(yōu)的執(zhí)行計(jì)劃,因此這個(gè)過程是Optimize(優(yōu)化)過程。

4、選擇了一個(gè)最優(yōu)的執(zhí)行計(jì)劃,那么就剩下最后一步執(zhí)行Execute,最后執(zhí)行的過程和我們解析的過程是不一樣的,當(dāng)我們知道執(zhí)行的順序,對(duì)我們以后寫sql以及優(yōu)化都是有很大的幫助的.執(zhí)行查詢后,他是先執(zhí)行where部分,然后找到數(shù)據(jù)源之?dāng)?shù)據(jù)表,最后生成select的部分,我們的最終結(jié)果。執(zhí)行的順序是:operation->DataSource->Result

雖然以上部分對(duì)SparkSQL沒有什么聯(lián)系,但是知道這些,對(duì)我們理解SparkSQL還是很有幫助的。

2、SparkSQL框架的架構(gòu)

要想對(duì)這個(gè)框架有一個(gè)清晰的認(rèn)識(shí),首先我們要弄清楚,我們?yōu)槭裁葱枰猻parkSQL呢?個(gè)人建議一般情況下在寫sql能夠直接解決的問題就不要使用sparkSQL,如果想刻意使用sparkSQL,也不一定能夠加快開發(fā)的進(jìn)程。使用sparkSQL是為了解決一般用sql不能解決的復(fù)雜邏輯,使用編程語言的優(yōu)勢(shì)來解決問題。我們使用sparkSQL一般的流程如下圖:

如上圖所示,一般情況下分為兩個(gè)部分:a、把數(shù)據(jù)讀入到sparkSQL中,sparkSQL進(jìn)行數(shù)據(jù)處理或者算法實(shí)現(xiàn),然后再把處理后的數(shù)據(jù)輸出到相應(yīng)的輸出源中。

1、同樣我們也是從如果讓我們開發(fā),我們應(yīng)該怎么做,需要考慮什么問題來思考這個(gè)問題。

     a、第一個(gè)問題是,數(shù)據(jù)源有幾個(gè),我們可能從哪些數(shù)據(jù)源讀取數(shù)據(jù)?現(xiàn)在sparkSQL支持很多的數(shù)據(jù)源,比如:hive數(shù)據(jù)倉庫、json文件,.txt,以及orc文件,同時(shí)現(xiàn)在還支持jdbc從關(guān)系數(shù)據(jù)庫中取數(shù)據(jù)。功能很強(qiáng)大。

     b、還一個(gè)需要思考的問題是數(shù)據(jù)類型怎么映射啊?我們知道當(dāng)我們從一個(gè)數(shù)據(jù)庫表中讀入數(shù)據(jù)時(shí),我們定義的表結(jié)構(gòu)的字段的類型和編程語言比如scala中的數(shù)據(jù)類型映射關(guān)系是怎樣的一種映射關(guān)系?在sparkSQL中有一種來解決這個(gè)問題的方法,來實(shí)現(xiàn)數(shù)據(jù)表中的字段類型到編程語言數(shù)據(jù)類型的映射關(guān)系。這個(gè)以后詳細(xì)介紹,先了解有這個(gè)問題就行。

     c、數(shù)據(jù)有了,那么在sparkSQL中我們應(yīng)該怎么組織這些數(shù)據(jù),需要什么樣的數(shù)據(jù)結(jié)構(gòu)呢,同時(shí)我們對(duì)這些數(shù)據(jù)都可以進(jìn)行什么樣的操作?sparkSQL采用的是DataFrame數(shù)據(jù)結(jié)構(gòu)來組織讀入到sparkSQL中的數(shù)據(jù),DataFrame數(shù)據(jù)結(jié)構(gòu)其實(shí)和數(shù)據(jù)庫的表結(jié)構(gòu)差不多,數(shù)據(jù)是按照行來進(jìn)行存儲(chǔ),同是還有一個(gè)schema,就相當(dāng)于數(shù)據(jù)庫的表結(jié)構(gòu),記錄著每一行數(shù)據(jù)屬于哪個(gè)字段。

     d、當(dāng)數(shù)據(jù)處理完以后,我們需要把數(shù)據(jù)放入到什么地方,并切以什么樣的格式進(jìn)行對(duì)應(yīng),這個(gè)a和b要解決的問題是相同的。

2、sparkSQL對(duì)于以上問題的實(shí)現(xiàn)邏輯也很明確,從上圖已經(jīng)很清楚,主要分為兩個(gè)階段,每個(gè)階段都對(duì)應(yīng)一個(gè)具體的類來實(shí)現(xiàn)。

   a、 對(duì)于第一個(gè)階段,sparkSQL中存在兩個(gè)類來解決這些問題:HiveContext,SQLContext,同時(shí)hiveContext繼承了SQLContext的所有方法,同時(shí)又對(duì)其進(jìn)行了擴(kuò)展。因?yàn)槲覀冎溃?hive和mysql的查詢還是有一定的差別的。HiveContext只是用來處理從hive數(shù)據(jù)倉庫中讀入數(shù)據(jù)的操作,SQLContext可以處理sparkSQL能夠支持的剩下的所有的數(shù)據(jù)源。這兩個(gè)類處理的粒度是限制在對(duì)數(shù)據(jù)的讀寫上,同時(shí)對(duì)表級(jí)別的操作上,比如,讀入數(shù)據(jù)、緩存表、釋放緩存表表、注冊(cè)表、刪除注冊(cè)的表、返回表的結(jié)構(gòu)等的操作。

  b、sparkSQL處理讀入的數(shù)據(jù),采用的是DataFrame中提供的方法。因?yàn)楫?dāng)我們把數(shù)據(jù)讀入到sparkSQL中,這個(gè)數(shù)據(jù)就是DataFrame類型的。同時(shí)數(shù)據(jù)都是按照Row進(jìn)行存儲(chǔ)的。其中 DataFrame中提供了很多有用的方法。以后會(huì)細(xì)說。

 c、在spark1.6版本以后,又增加了一個(gè)類似于DataFrame的數(shù)據(jù)結(jié)構(gòu)Dataset,增加此數(shù)據(jù)結(jié)構(gòu)的目的是DataFrame有軟肋,他只能處理按照Row進(jìn)行存儲(chǔ)的數(shù)據(jù),并且只能使用DataFrame中提供的方法,我們只能使用一部分RDD提供的操作。實(shí)現(xiàn)Dataset的目的就是讓我們能夠像操作RDD一樣來操作sparkSQL中的數(shù)據(jù)。

d、其中還有一些其他的類,但是現(xiàn)在在sparkSQL中最主要的就是上面的三個(gè)類,其他類以后碰到了會(huì)慢慢想清楚。

3、sparkSQL的hiveContext和SQLContext的運(yùn)行原理

  hiveContext和SQLContext與我第一部分講到的sql語句的模塊解析實(shí)現(xiàn)的原理其實(shí)是一樣的,采用了同樣的邏輯過程,并且網(wǎng)上有好多講這一塊的,就直接粘貼復(fù)制啦!!

  sqlContext總的一個(gè)過程如下圖所示:

1.SQL語句經(jīng)過SqlParse解析成UnresolvedLogicalPlan;

2.使用analyzer結(jié)合數(shù)據(jù)數(shù)據(jù)字典(catalog)進(jìn)行綁定,生成resolvedLogicalPlan;

3.使用optimizer對(duì)resolvedLogicalPlan進(jìn)行優(yōu)化,生成optimizedLogicalPlan;

4.使用SparkPlan將LogicalPlan轉(zhuǎn)換成PhysicalPlan;

5.使用prepareForExecution()將PhysicalPlan轉(zhuǎn)換成可執(zhí)行物理計(jì)劃;

6.使用execute()執(zhí)行可執(zhí)行物理計(jì)劃;

7.生成SchemaRDD。

在整個(gè)運(yùn)行過程中涉及到多個(gè)SparkSQL的組件,如SqlParse、analyzer、optimizer、SparkPlan等等

hiveContext總的一個(gè)過程如下圖所示:

1.SQL語句經(jīng)過HiveQl.parseSql解析成Unresolved LogicalPlan,在這個(gè)解析過程中對(duì)hiveql語句使用getAst()獲取AST樹,然后再進(jìn)行解析;

2.使用analyzer結(jié)合數(shù)據(jù)hive、源數(shù)據(jù)Metastore(新的catalog)進(jìn)行綁定,生成resolved LogicalPlan;

3.使用optimizer對(duì)resolved LogicalPlan進(jìn)行優(yōu)化,生成optimized LogicalPlan,優(yōu)化前使用了ExtractPythonUdfs(catalog.PreInsertionCasts(catalog.CreateTables(analyzed)))進(jìn)行預(yù)處理;

4.使用hivePlanner將LogicalPlan轉(zhuǎn)換成PhysicalPlan;

5.使用prepareForExecution()將PhysicalPlan轉(zhuǎn)換成可執(zhí)行物理計(jì)劃;

6.使用execute()執(zhí)行可執(zhí)行物理計(jì)劃;

7.執(zhí)行后,使用map(_.copy)將結(jié)果導(dǎo)入SchemaRDD。

到此這篇關(guān)于Spark SQL的整體實(shí)現(xiàn)邏輯的文章就介紹到這了,更多相關(guān)Spark SQL實(shí)現(xiàn)邏輯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Spark SQL常見4種數(shù)據(jù)源詳解
  • Spark學(xué)習(xí)筆記之Spark SQL的具體使用
  • pyspark.sql.DataFrame與pandas.DataFrame之間的相互轉(zhuǎn)換實(shí)例
  • 淺談DataFrame和SparkSql取值誤區(qū)
  • Spark SQL操作JSON字段的小技巧
  • Spark SQL數(shù)據(jù)加載和保存實(shí)例講解

標(biāo)簽:泰安 廣東 臺(tái)州 汕頭 濟(jì)源 武威 濟(jì)寧 安徽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Spark SQL的整體實(shí)現(xiàn)邏輯解析》,本文關(guān)鍵詞  Spark,SQL,的,整體,實(shí)現(xiàn),邏輯,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Spark SQL的整體實(shí)現(xiàn)邏輯解析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Spark SQL的整體實(shí)現(xiàn)邏輯解析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    99久久99久久综合| 中文字幕在线中文字幕在线中三区| 国产福利成人在线| 国产精品久久久久久久久久ktv| 日本久久久久久久久久久久| 毛片av一区二区三区| 精品人妻无码一区二区三区蜜桃一| 精品欧美日韩| 91精品啪在线观看国产60岁| 日韩欧美亚洲日产国产| …久久精品99久久香蕉国产| 9国产精品视频| 人妻久久久一区二区三区| 黄色片一区二区| 欧美一区二区视频免费观看| 日本亚洲最大的色成网站www| 久久亚洲国产精品一区二区| 久久国产欧美日韩精品| 影视先锋午夜av| 欧美一区二区大胆人体摄影专业网站| 一区二区三区不卡视频在线观看| 国产av熟女一区二区三区| 午夜不卡久久精品无码免费| 中文在线资源新版官网| 日韩欧美国产电影| 可以免费在线看黄的网站| 色呦呦一区二区三区| 91亚洲视频在线观看| 国产深夜男女无套内射| 精品国产三级a∨在线| 国产中文日韩欧美| 国产无码精品视频| 另类少妇人与禽zozz0性伦| 成人黄色av网| 麻豆导航在线观看| 亚洲成人资源在线| 久久久亚洲精品一区二区三区| 久久精品这里只有精品| 8x8x成人免费视频| 国产精品扒开做爽爽爽的视频| 伊人久久大香线蕉av超碰| 国产乡下妇女做爰毛片| 国产极品美女高潮无套嗷嗷叫酒店| 中文字幕高清在线观看| 日韩激情免费| 久久国产精品影院| 欧美性大战久久久久xxx| 国产精品久久久久久无人区| 91小视频在线观看| 国产精品美女久久久| 国产精品久久久久久久裸模| www日韩大片| 伊人av成人| 亚洲黄色视屏| 丰满少妇高潮一区二区| 中文字幕一区二区三区免费看| 思思99re6国产在线播放| 裸体丰满少妇做受久久99精品| 国产女同91疯狂高潮互磨| 最新高清无码专区| 国产一区一区三区| 欧美国产一级片| 国产精品粉嫩av| 五月亚洲婷婷| 欧美日韩不卡视频| 99精品欧美一区二区三区| av一区二区三| 日本道精品一区二区三区| 51精品视频一区二区三区| 国产精品二区三区| 国产午夜免费视频| 这里只有精品66| 天天干天天做天天操| 天堂av在线电影| 中文字幕高清在线播放| 国产伦精品一区二区三区免| 美女黄视频在线播放| 欧美一级特黄高清视频| 91看片官网| 91高清免费视频| 国产综合无码一区二区色蜜蜜| 美丽的姑娘在线观看免费动漫| 亚洲无限av看| 91婷婷韩国| 亚洲图片有声小说| 欧美视频第一区| 最新中文字幕亚洲| 国产免费久久精品| 一区二区三区福利视频| 中文字幕第21页| 在线看片第一页欧美| 九九九伊在线综合永久| 韩国在线视频一区| 亚洲国产精品久久久| 天天色天天爱天天射综合| 午夜精品久久久久99蜜桃最新版| 久久午夜精品视频| 国产xxxx在线观看| 欧美激情喷水| 青青草国产成人av片免费| 中文字幕无码精品亚洲35| 暖暖成人免费视频| 国产男女无遮挡| 国产丝袜在线视频| 成人欧美一区二区三区黑人孕妇| 欧美极品一区| 又黄又免费的视频| 全免费a级毛片| 韩国女主播一区二区三区| 久久久久久国产免费| 国产精品久久久久久在线观看| 九色视频在线观看| 97久久超碰国产精品| 一二三四在线观看视频| 国产精品久久久久久久久免费桃花| 国产日产精品一区| 久草在线免费二| 久久久无码一区二区三区| 国产精品激情自拍| 日韩精品在线观看免费| 国产精品久久久久久久久图文区| 瑟瑟视频在线免费观看| 91九色最新地址| 美女被羞羞网站| 国产中文字幕在线视频| av亚洲天堂网| 国产 国语对白 露脸| 一区二区三区**美女毛片| 久久国产精品无码一级毛片| 国产精品欧美亚洲| 国色天香2019中文字幕在线观看| 天天爽夜夜爽一区二区三区| 亚洲精品久久久久久久蜜桃臀| 国产剧情麻豆剧果冻传媒视频免费| 综合视频在线观看| 久久99免费视频| 国产精品久久久久久久久久久久久| 91在线资源| 精品久久久久一区二区三区| 欧美xxxx做受欧美| www.xxxx精品| 天堂中文在线资源| 午夜精品一区在线观看| 草草草在线视频| 蜜臀av色欲a片无码精品一区| heisi视频网在线观看| 麻豆视频国产| 91黄色在线观看| 色哺乳xxxxhd奶水米仓惠香| 国产精品777一区二区| 91在线观看一区二区| 欧美性潮喷xxxxx免费视频看| 国产欧美熟妇另类久久久| 92裸体在线视频网站| 性色av一区二区三区| 欧美精品www| a免费在线观看| 精品国产欧美一区二区三区成人| japanese在线视频| 亚洲成人av福利| 国产美女18xxxx免费视频| 免费毛片在线不卡| 成人免费观看在线视频| 岛国视频一区| 在线观看污污网站| 福利社在线免费视频| 国产wwwwwww| 久久久成人精品| 亚洲色图在线看| 97精品国产97久久久久久粉红| 一区三区三区不卡| 国产在线一区二区综合免费视频| 日本欧洲国产一区二区| 777视频在线观看| 成人国产精品一区二区网站| 久久久www成人免费精品张筱雨| 国产精品视频自在线| 国产精品老熟女视频一区二区| 亚洲成人av动漫| 亚洲无线一线二线三线区别av| 国产精品pans私拍| 美女av在线免费观看| 欧美一区三区四区| 国产在视频一区二区三区吞精| 国产精品视频流白浆免费视频| 99精品人妻国产毛片| 黄色三及免费看| 欧美日韩午夜视频| zzjj国产精品一区二区| 国产麻豆精品一区二区三区v视界| 久久三级中文| 亚洲精品一区二区三区蜜桃下载| 午夜私人影院久久久久| 亚洲第一黄色片| 精品黑人一区二区三区在线观看| 亚洲36d大奶网| 国产精品传媒精东影业在线| 精品亚洲男同gayvideo网站| 青青草国产免费自拍| 亚洲激情中文在线| 国内精品免费在线观看| 国产精品magnet| 国产va免费精品高清在线观看| 久久精品99国产精品日本| 亚洲国产精品无码久久久久高潮| 男人天堂综合| 蜜桃成人在线| av免费不卡| 国产成人免费视频一区| 91久久久久久久久| 欧美在线观看一区二区| 亚洲高清视频在线播放| 日本精品中文字幕| 亚洲女同二女同志奶水| 国产传媒国产传媒| 日韩a在线观看| 丁香视频免费观看| 国内不卡的一区二区三区中文字幕| 亚洲精品国产精品乱码视色| 性欧美18+| 精品视频在线播放| 黄色高清视频在线观看| 一本一本久久a久久| 性欧美超级视频| 国产精品一区久久久| 精品福利影视| 114国产精品久久免费观看| 国产伦精品一区二区三区在线观看| 亚洲欧美综合一区二区| 国产精品午夜春色av| 日韩欧美精品在线视频| 黄瓜视频污在线观看| 庆余年2免费日韩剧观看大牛| 久久99热只有频精品91密拍| 在线视频欧美性高潮| 精品久久久久久无码国产| 欧美激情三级| 福利视频一区二区| 久热久热免费视频中文字幕777| 久久精品99久久久久久| 91九色在线看| 最新黄色网址在线观看| 三级资源在线| 中国女人内谢25xxxx免费视频| 中文字幕国产在线| 久久视频在线看| 亚洲第一第二区| 国产精品一区二区在线播放| 成人午夜一级二级三级| 一区二区三区中文在线观看| 91在线国产电影| 中文字幕亚洲无线码a| 国产成人av电影在线播放| 扒开腿狂躁女人爽出白浆2| 亚洲成人av免费观看| 99在线精品视频免费观看20| 男人操女人的视频在线观看欧美| 懂色av影视一区二区三区| 中文字幕乱在线伦视频乱在线伦视频| 国产91中文| 99精品小视频| 五月天亚洲视频| 91精品一区二区三区综合| 一区二区在线| 成人综合网址| 欧美啪啪一区| 欧产日产国产v| 五月天激情播播| √8天堂资源地址中文在线| 精品日本美女福利在线观看| 欧美 日韩 国产 一区| 成人禁用看黄a在线| 国产成人亚洲欧美电影| 亚洲精品www久久久久久广东| aa级大片欧美| 亚洲ab电影| 日韩精品视频一二三| 久久欧美在线电影| 在线免费观看的av网站| 精品视频免费在线播放| 国产精品入口麻豆| 91久久精品国产91久久| 91视视频在线观看入口直接观看www| 欧美高清性粉嫩交| 一区二区三国产精华液| 亚洲爆乳无码精品aaa片蜜桃| 成人免费观看视频在线观看| 8×8x拔擦拔擦在线视频网站| 精品一区二区三区日韩| 国产精品无码一区二区三| 2019最新中文字幕| 2019国产精品视频| 欧美一级片免费在线观看| 成年人视频网站免费观看| 黄色资源在线观看| 亚洲va久久久噜噜噜久久| 美女999久久久精品视频| 欧美精产国品一二三区| 欧美肥臀大乳一区二区免费视频| 91福利在线导航| 一级二级三级欧美| 久久天堂av综合合色蜜桃网| 黄色网页在线免费看| 亚洲深夜福利网站| 黄色小说综合网站| 国产91绿帽单男绿奴| 国产精品福利网| 精品人妻中文无码av在线| 97aⅴ精品视频一二三区| 久久久久久久久久久99| 精品三级在线观看视频| 国产精品一区二区三区av麻| 日韩一级片在线免费观看| 国产精品一区在线| www污网站在线观看| 日韩你懂的在线观看| 你懂的网址视频| 国产日韩欧美一区二区三区综合| 亚洲ⅴ国产v天堂a无码二区| 男人的天堂官网| www.日本久久久久com.| 黄色动漫在线| 亚洲精品男人的天堂| 欧美黄页免费| 韩国女同性做爰三级| 日韩欧美在线一区二区三区| 亚洲美女视频在线免费观看| 男女爱爱免费网站|