999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Hadoop的數(shù)據(jù)倉庫構(gòu)建模式研究

2015-12-31 08:42:00王緩緩郭敬義張警燦余肖生
關(guān)鍵詞:云計(jì)算大數(shù)據(jù)

王緩緩,郭敬義,張警燦,余肖生

(三峽大學(xué) 計(jì)算機(jī)與信息學(xué)院,湖北 宜昌 443002)

基于Hadoop的數(shù)據(jù)倉庫構(gòu)建模式研究

王緩緩,郭敬義,張警燦,余肖生

(三峽大學(xué) 計(jì)算機(jī)與信息學(xué)院,湖北 宜昌443002)

摘要:針對目前基于Hadoop的數(shù)據(jù)倉庫一般采用“一對一”的模式或方法構(gòu)建的情況,首先通過實(shí)例分析其不足之處;然后借鑒軟件工程中的“生成器”設(shè)計(jì)模式的思想,提出一種Hadoop數(shù)據(jù)倉庫的構(gòu)建模式,稱為“元數(shù)據(jù)驅(qū)動(dòng)的生成器模式”,用于構(gòu)建基于Hadoop的數(shù)據(jù)倉庫,即ETL過程。該模式具有兩點(diǎn)優(yōu)勢:一是由元數(shù)據(jù)驅(qū)動(dòng),充分發(fā)揮了關(guān)系數(shù)據(jù)庫管理系統(tǒng)對元數(shù)據(jù)操作的效率優(yōu)勢;二是識別了“通用知識”和“具體對象知識”兩類知識,并在對知識的分類基礎(chǔ)上設(shè)計(jì)和實(shí)現(xiàn)ETL過程,消除了“一對一”模式下大量不必要的重復(fù)操作。

關(guān)鍵詞:云計(jì)算;大數(shù)據(jù);數(shù)據(jù)倉庫;Hadoop;ETL

目前,如何對大規(guī)模的歷史數(shù)據(jù)進(jìn)行有效的管理和挖掘,從中發(fā)現(xiàn)有用的信息用以輔助管理決策已經(jīng)成為相關(guān)領(lǐng)域的研究課題。數(shù)據(jù)倉庫在此需求背景下產(chǎn)生和發(fā)展。數(shù)據(jù)倉庫是一個(gè)“面向主題的、集成的、與時(shí)間有關(guān)的、非易失的數(shù)據(jù)集合”,它是一個(gè)存儲(chǔ)了依據(jù)業(yè)務(wù)需求經(jīng)過轉(zhuǎn)換和清洗后數(shù)據(jù)的數(shù)據(jù)庫[1]。ETL將數(shù)據(jù)抽取(Extract)、轉(zhuǎn)換(Transform)以及加載(Loading)到數(shù)據(jù)倉庫或數(shù)據(jù)集市中,以備前段分析工具使用[2-4]。ETL作為BI/DW(businessintelligence)的核心和靈魂,是實(shí)施數(shù)據(jù)倉庫的重要步驟,也是數(shù)據(jù)倉庫實(shí)施過程中工作量最大的環(huán)節(jié)。因此,對其進(jìn)行系統(tǒng)的改進(jìn)具有現(xiàn)實(shí)意義。

現(xiàn)有的關(guān)于數(shù)據(jù)倉庫ETL理論的研究主要集中在ETL建模研究[5-6]和ETL過程研究[7-14]兩個(gè)方面。此外,在數(shù)據(jù)倉庫ETL的實(shí)踐方面也有很多成果。商用的ETL工具方面,例如IBM公司的Datastage、Informatica公司的Powercenter、微軟公司的DataTransformationServices(DTS)、NCRTeradata公司的ETLAutomation;開源的ETL工具方面,例如Kettle、Talend、CloverETL等[15-16]。但是這些ETL工具基本上被用于傳統(tǒng)的關(guān)系型數(shù)據(jù)倉庫。另外,由于這些工具建立在操作系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之上,故其運(yùn)行效率打了折扣,而對于數(shù)據(jù)倉庫特別是基于云計(jì)算的數(shù)據(jù)倉庫構(gòu)建來說,其數(shù)據(jù)量相當(dāng)大,故命令行模式效率最高。然而,如果ETL系統(tǒng)是基于命令行模式的,那么傳統(tǒng)的關(guān)系型數(shù)據(jù)倉庫構(gòu)建則不能借助輔助ETL工具,而需要自行開發(fā)[17]。

目前基于云計(jì)算的數(shù)據(jù)倉庫ETL理論方面的研究相對較少,用于構(gòu)建HadoopHive數(shù)據(jù)倉庫的成熟的第三方ETL工具也較少,基本上是用戶自行開發(fā)。通過對現(xiàn)有理論和實(shí)踐成果進(jìn)行總結(jié)可以發(fā)現(xiàn),Hive在輔助用戶實(shí)現(xiàn)云數(shù)據(jù)倉庫的ETL過程時(shí),基本是一對一(case-to-case)模式。例如平面文件在抽取、轉(zhuǎn)換和加載時(shí)只能是按照每個(gè)文件逐一進(jìn)行,而不能批量進(jìn)行。這種模式的生產(chǎn)效率較低。對于具體對象,如某個(gè)具體的平面文件,這些不同的平面文件的內(nèi)容各不相同,即是不重復(fù)的,本文稱之為“具體對象知識”。而對于加載這些平面文件時(shí)用到的HiveQL關(guān)鍵字和語法則是相同的,本文稱之為“通用知識”。“一對一”模式在實(shí)現(xiàn)云數(shù)據(jù)倉庫ETL過程時(shí),具體對象知識和通用知識是混合的、不易清晰分離的。“通用知識”由開發(fā)設(shè)計(jì)人員設(shè)計(jì)完成后,在大量的設(shè)計(jì)說明書、程序及測試說明書中不斷重復(fù)出現(xiàn),導(dǎo)致了設(shè)計(jì)、開發(fā)、測試部門的重復(fù)勞動(dòng),是造成“一對一”模式實(shí)現(xiàn)云數(shù)據(jù)倉庫ETL過程低效的主要原因[18],因此改進(jìn)云數(shù)據(jù)倉庫ETL過程的模式是非常必要的[19]。

生成器模式 (builderpattern) 是軟件工程設(shè)計(jì)模式的一種,它將一個(gè)復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示[20]。本研究借鑒其思想,將云數(shù)據(jù)倉庫ETL過程中的“通用知識”和“具體對象知識”識別并分離開來,在知識分類的基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)Hadoop/Hive數(shù)據(jù)倉庫ETL系統(tǒng)。

1Hadoop/Hive及生成器模式

1.1 Hadoop項(xiàng)目及其結(jié)構(gòu)

大數(shù)據(jù)時(shí)代,對于如何高效地存儲(chǔ)、管理和分析海量數(shù)據(jù),傳統(tǒng)的關(guān)系型數(shù)據(jù)倉庫已經(jīng)不能滿足現(xiàn)有需求,云計(jì)算以其強(qiáng)大和高效的存儲(chǔ)和計(jì)算能力正在成為海量數(shù)據(jù)管理的經(jīng)濟(jì)有效方式。

Hadoop是一個(gè)開源的分布式云計(jì)算平臺,其核心是分布式文件系統(tǒng)(hadoopdistributedfilesystem,HDFS)和MapReduce。Hive是一個(gè)建立在Hadoop基礎(chǔ)上的數(shù)據(jù)庫管理系統(tǒng),提供類似于傳統(tǒng)RDBMS中SQL語言的查詢語言,即HiveQL(hiveSQL)。Hive編譯器把HQL編譯成一組MapReduce任務(wù),在用戶與MapReduce之間建立一個(gè)橋梁,以方便用戶進(jìn)行Hadoop系統(tǒng)開發(fā)[21]。Hive的系統(tǒng)結(jié)構(gòu)如圖1所示。

元數(shù)據(jù)對Hive來說至關(guān)重要。Hive的元數(shù)據(jù)存儲(chǔ)在傳統(tǒng)的RDBMS中,Hive通過ODBC或者JDBC連接RDBMS。這樣做是因?yàn)橥ǔP枰焖俚卦L問這些Metadata,如果將元數(shù)據(jù)存儲(chǔ)在hdfs中是無法滿足要求的。本文提出的構(gòu)建HadoopHive數(shù)據(jù)倉庫的生成器模式正是由Hive元數(shù)據(jù)驅(qū)動(dòng),對于提高構(gòu)建效率可起到至關(guān)重要的作用。Hive元數(shù)據(jù)組織結(jié)構(gòu)如表1所示。

表1  Hive元數(shù)據(jù)組織結(jié)構(gòu)

1.2 生成器模式

在軟件工程中,生成器模式(builderpattern)是指建造者模式可以將一個(gè)產(chǎn)品的內(nèi)部表象與產(chǎn)品的生成過程分割開來,從而使一個(gè)建造過程生成具有不同的內(nèi)部表象的產(chǎn)品對象。生成器模式的結(jié)構(gòu)如圖2所示。

圖1 Hive系統(tǒng)結(jié)構(gòu)

圖2 生成器模式的結(jié)構(gòu)

建造者(Builder)角色:給出一個(gè)抽象接口,以規(guī)范產(chǎn)品對象的各個(gè)組成成分的建造。一般而言,此接口獨(dú)立于應(yīng)用程序的商業(yè)邏輯。模式中直接創(chuàng)建產(chǎn)品對象的是具體建造者(ConcreteBuilder)角色。具體建造者類必須實(shí)現(xiàn)這個(gè)接口所要求的方法:一個(gè)是建造方法,另一個(gè)是結(jié)果返還方法。

具體建造者(ConcreteBuilder)角色:擔(dān)任這個(gè)角色的是與應(yīng)用程序緊密相關(guān)的類,它們在應(yīng)用程序調(diào)用下創(chuàng)建產(chǎn)品實(shí)例。這個(gè)角色主要完成的任務(wù)是實(shí)現(xiàn)Builder角色提供的接口,逐步完成創(chuàng)建產(chǎn)品實(shí)例的過程,并在建造過程完成后提供產(chǎn)品的實(shí)例。

指導(dǎo)者(Director)角色:擔(dān)任這個(gè)角色的類調(diào)用具體建造者角色以創(chuàng)建產(chǎn)品對象。指導(dǎo)者并沒有產(chǎn)品類的具體知識,真正擁有產(chǎn)品類的具體知識的是具體建造者對象。

產(chǎn)品(Product)角色:建造中的復(fù)雜對象。

指導(dǎo)者角色是與客戶端打交道的角色。建造者角色將客戶端創(chuàng)建產(chǎn)品的請求劃分為對各個(gè)零件的建造請求,再將這些請求委派給具體建造者角色。具體建造者角色做具體建造工作,但不為客戶端所知。

本文借鑒生成器模式的思想,采用shell腳本和關(guān)系數(shù)據(jù)庫的存儲(chǔ)過程來構(gòu)建基于Hadoop/Hive的數(shù)據(jù)倉庫。

2Hadoop/Hive數(shù)據(jù)倉庫的一般構(gòu)建模式分析

以一個(gè)簡單抽象的平面文件“test.txt”的抽取和加載到Hadoop/Hive數(shù)據(jù)倉庫的“test表”為例,對基于傳統(tǒng)范式的數(shù)據(jù)倉庫構(gòu)建行為進(jìn)行分析。

首先假設(shè)在Hadoop中已經(jīng)建了一張“test”表,建表的HiveQL語句為“CREATETABLEpokes(SNOINT,SNamestring,BirthDate)”,即“test表”含有SNO、SName、Birth3個(gè)字段。然后將test.csv文件加載到hadoop/hive的test表:

hive>LOADDATALOCALINPATH′/mgo/test.txt′OVERWRITEINTOTABLEtest

該操作僅完成一個(gè)平面文件的加載,如果有更多的平面文件需要加載,則必須根據(jù)要加載的平面文件的具體情況,多次復(fù)制并局部修改上述語句。因此,采用這種方法構(gòu)建HadoopHive數(shù)據(jù)倉庫,本文稱為“一對一”模式。需要指出的是,在加載之前通常伴隨著數(shù)據(jù)的清洗工作,因而如果采用“一對一”模式構(gòu)建HadoopHive數(shù)據(jù)倉庫,效率是非常低的。

3基于元數(shù)據(jù)驅(qū)動(dòng)的生成器模式構(gòu)建Hadoop/Hive的數(shù)據(jù)倉庫

3.1 通用知識和具體對象知識

分析上面的實(shí)例,可以發(fā)現(xiàn)最突出的問題是“重復(fù)”。這里有兩種類型的“重復(fù)”:

1) 內(nèi)容重復(fù):例如,上述完整加載過程的HiveQL命令“LOADDATA文件名intoTable表名”。

2) 操作重復(fù):即上述HiveQL命令的編輯操作,旨在為產(chǎn)生后續(xù)的加載更多的平面文件:“復(fù)制(命令語句)-粘貼(多次)-搜索(表名和文件名,多次)-替換(用新的表名和文件名替換舊的多次)-調(diào)整(如有必要的話,多次)-驗(yàn)證(驗(yàn)證結(jié)果語句是否正確,多次)”。

這些內(nèi)容重復(fù)和操作重復(fù)正是導(dǎo)致“一對一”模式構(gòu)建Hadoop/Hive數(shù)據(jù)倉庫低效的主要原因。 內(nèi)容重復(fù)出現(xiàn)的原因是因?yàn)樯鲜鰟?chuàng)建表和加載平面文件的HiveQL命令是相同的,本文中稱類似重復(fù)的內(nèi)容為“通用知識”。而在上述平面文件加載的實(shí)例中,表名和文件名是不重復(fù)的,稱之為“具體對象知識”。因此,可以總結(jié)如下規(guī)律:在實(shí)現(xiàn)Hadoop/Hive數(shù)據(jù)倉庫ETL過程中通用知識重復(fù),具體對象知識的載體不重復(fù)。

在“一對一”模式下,兩類知識是混合的,不易清晰分離。這就是“一對一”模式的本質(zhì)特征,正是該特征導(dǎo)致了“一對一”模式大量的內(nèi)容重復(fù)和操作重復(fù),是其效率低下的主要原因。

3.2 構(gòu)建Hadoop/Hive數(shù)據(jù)倉庫的元數(shù)據(jù)驅(qū)動(dòng)的生成器模式分析

本節(jié)仍以平面文件加載為例,介紹構(gòu)建Hadoop/Hive數(shù)據(jù)倉庫的元數(shù)據(jù)驅(qū)動(dòng)的生成器模式。Hadoop/Hive的元數(shù)據(jù)是采用關(guān)系型數(shù)據(jù)庫管理系統(tǒng)來存儲(chǔ)的,本文提出的生成器模式是一種元數(shù)據(jù)驅(qū)動(dòng)的、并采用shell腳本來生成Hive腳本代碼的方法,其工作流程如圖3所示。

圖3 構(gòu)建Hadoop/Hive數(shù)據(jù)倉庫的元數(shù)據(jù)驅(qū)動(dòng)的

構(gòu)建Hadoop/Hive的數(shù)據(jù)倉庫的元數(shù)據(jù)驅(qū)動(dòng)的生成器模式的具體實(shí)現(xiàn)偽代碼如圖4所示。

圖4 存儲(chǔ)過程和Shell腳本的偽代碼及其執(zhí)行順序

對于采用元數(shù)據(jù)驅(qū)動(dòng)的生成器模式,將具體對象知識作為shell腳本文件的參數(shù)。腳本文件通過調(diào)用關(guān)系數(shù)據(jù)庫中的存儲(chǔ)過程生成要加載的平面文件的HiveQL腳本文件,再將HiveQL腳本文件導(dǎo)入到Hive執(zhí)行,完成具體某一個(gè)平面文件的加載。僅通過在Shell腳本文件給出平面文件參數(shù)即可,不需做“查找&替換”。此外,通過關(guān)系數(shù)據(jù)庫的存儲(chǔ)過程來操作Hive元數(shù)據(jù)相比在Hive中使用HiveQL命令操作Hive數(shù)據(jù)的效率要高很多,因此,與“一對一”模式相比,元數(shù)據(jù)驅(qū)動(dòng)的生成器模式的效率明顯提高。

4結(jié)束語

本文設(shè)計(jì)了一種構(gòu)建基于Hadoop/Hive數(shù)據(jù)倉庫的方法,稱為“基于Hive元數(shù)據(jù)的生成器模式”。這種模式由于建立在“通用知識”和“具體對象知識”兩類知識分類的基礎(chǔ)上,因而有著更高的靈活性、可擴(kuò)展性。實(shí)踐證明,將本方法用于HadoopHive的數(shù)據(jù)倉庫ETL過程可以取得較好的效果。

參考文獻(xiàn):

[1]InmonWH.BuildingtheDataWarehouse[M].America:JohnWiley,1992.

[2]Luján-MoraS,VassiliadisP,TrujilloJ.DataMappingDiagramsforDataWarehouseDesignwithUML[C]//Proc.ofthe23rdInternationalConferenceonConceptualModeling.USA:Springer,2004:191-204.

[3]TrujilloJ,Lujan-MoraS.AUMLBasedApproachforModelingETLProcessesinDataWarehouses[C]//Proc.ofthe22ndInternationalConferenceonConceptualModeling.NewYork:ACM,2003:7-320.

[4]VassiliadisP,SimitsisA,GeorgantasP,etal.AGenericandCustomizableFrameworkfortheDesignofETLScenarios[J].InformationSystems,2005,30(7):492- 525.

[5]鮑玉斌,孫煥良,冷芳玲,等.?dāng)?shù)據(jù)倉庫環(huán)境下以用戶為中心的數(shù)據(jù)清洗過程模型[J].計(jì)算機(jī)科學(xué),2004,31(5):52-55.

[6]SellisT.FormalspecificationandoptimizationofETLscenarios[C]//Proceedingsofthe9thACMinternationalworkshopondatawarehousingandOLAP.NewYork:ACM,2006:1-2.

[7]SkoutasD,SimitsisA.Ontology-basedConceptualDesignofETLProcessesforbothStructuredandSemi-structuredData[J].Semanticwebandinformationsystems,2007,3 (4):1-24.

[8]KimballR,CasertaJ.TheDataWarehouseETLToolkit[M].USA:JohnWiley&Sons,2004.

[9]Oracle.OracleWarehouseBuilderProductPage[EB/OL].[2014-11-17].http://otn.oracle.com/products/warehouse/content.html.

[10]HalevyA,RajaramanA,OrdilleJ.Dataintegration:theteenageyears[C]//Proceedingsofthe32ndinternationalconferenceonverylargedatabases.NewYork:ACM,2006:9-16.

[11]VassiliadisP,VagenaZ,SkiadopoulosS,etal.Arktos:towardsthemodeling,design,controlandexecutionofETLprocesses[J].InformationSystems,2001,26 (1):537-561.

[12]XuJG,PeiY.Overviewofdataextraction,transformationandloading[J].JournalofComputerScienceinChina,2011,38(4):15-20.

[13]戴超凡,王濤.面向ETL的數(shù)據(jù)起源追蹤系統(tǒng)[J].計(jì)算機(jī)工程,2011,37(17):256-261.

[14]宿芳,壽永熙,蘇依拉.元數(shù)據(jù)驅(qū)動(dòng)ETL的研究[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(6):114-125.

[15]IBM.IBMDataWarehouseManager[EB/OL].[2014-11-17].http://www-3.ibm.com/software/data/db2/datawarehouse.

[16]Informatica.PowerCenter[EB/OL].[2014-11-17].http://www.informatica.com/products/powercenter.

[17]蔣彬,余肖生,王東娟,等.數(shù)據(jù)倉庫構(gòu)建之行為模式分析[J].信息系統(tǒng)學(xué)報(bào),2013(12):1-8.

[18]余肖生,吳西燕,王東娟,等.基于MGO的數(shù)據(jù)倉庫ETL過程構(gòu)建方法[J].重慶理工大學(xué)學(xué)報(bào):自然科學(xué)版,2014,28(2):63-66.

[19]JiangB.基于元數(shù)據(jù)驅(qū)動(dòng)通用操作器的數(shù)據(jù)倉儲(chǔ)構(gòu)建[M].鄭悅林,譯.武漢:武漢大學(xué)出版社,2013.

[20]GammaE,HelmR,JohnsonR,etal.DesignPatterns:AbstractionandReuseofObject-OrientedDesign[M].USA:Addison-WesleyProfessional,1994:11.

[21]Hadoop[EB/OL].[2014-11-25].http://hadoop.apache.org.

(責(zé)任編輯楊黎麗)

收稿日期:2015-03-22

基金項(xiàng)目:湖北省教育廳自然科學(xué)研究項(xiàng)目(Q20141212)

作者簡介:王緩緩(1978—),女,博士,副教授,主要從事信息管理與數(shù)據(jù)挖掘研究。

doi:10.3969/j.issn.1674-8425(z).2015.07.013

中圖分類號:TP311

文獻(xiàn)標(biāo)識碼:A

文章編號:1674-8425(2015)07-0069-05

ResearchonConstructionPatternofHadoopDataWarehouse

WANGHuan-huan,GUOJing-yi,ZHANGJing-can,YUXiao-sheng

(CollegeofComputerandInformationTechnology,

ChinaThreeGorgesUniversity,Yichang443002,China)

Abstract:The “case to case” pattern is a commonly used method for constructing Hadoop Hive data warehouse recently. Firstly, the “case to case” pattern was introduced and its disadvantage was shown with an example. Then inspired by the “Builder Pattern” which is one of design patterns in the area of software engineering, a pattern called “metadata-driven builder pattern” was put forward for constructing Hadoop Hive data warehouse and ETL process. This pattern has two advantages. One is that it is driven by the metadata and the metadata is operated by the relational database management (RDBMS). Doing so can achieve higher efficiency because the metadata of Hive is just stored in the RDBMS. The other one is that the “general knowledge” and “specific-object knowledge” are differentiated and the ETL process is designed and realized based on such differentiation. Doing so can avoid lots of repetitions that the “case to case” pattern leads to.

Key words:cloud computing; big data; data warehouse; Hadoop; ETL

引用格式:王緩緩,郭敬義,張警燦,等.基于Hadoop的數(shù)據(jù)倉庫構(gòu)建模式研究[J].重慶理工大學(xué)學(xué)報(bào):自然科學(xué)版,2015(7):69-73.

Citationformat:WANGHuan-huan,GUOJing-yi,ZHANGJing-can,etal.ResearchonConstructionPatternofHadoopDataWarehouse[J].JournalofChongqingUniversityofTechnology:NaturalScience,2015(7):69-73.

猜你喜歡
云計(jì)算大數(shù)據(jù)
志愿服務(wù)與“互聯(lián)網(wǎng)+”結(jié)合模式探究
云計(jì)算與虛擬化
基于云計(jì)算的移動(dòng)學(xué)習(xí)平臺的設(shè)計(jì)
大數(shù)據(jù)環(huán)境下基于移動(dòng)客戶端的傳統(tǒng)媒體轉(zhuǎn)型思路
新聞世界(2016年10期)2016-10-11 20:13:53
實(shí)驗(yàn)云:理論教學(xué)與實(shí)驗(yàn)教學(xué)深度融合的助推器
云計(jì)算中的存儲(chǔ)虛擬化技術(shù)應(yīng)用
科技視界(2016年20期)2016-09-29 13:34:06
基于大數(shù)據(jù)背景下的智慧城市建設(shè)研究
科技視界(2016年20期)2016-09-29 10:53:22
數(shù)據(jù)+輿情:南方報(bào)業(yè)創(chuàng)新轉(zhuǎn)型提高服務(wù)能力的探索
中國記者(2016年6期)2016-08-26 12:36:20
主站蜘蛛池模板: 中文字幕永久在线看| 国产99精品视频| 国产精品亚洲精品爽爽| 日韩av资源在线| 刘亦菲一区二区在线观看| 亚洲香蕉在线| 99中文字幕亚洲一区二区| 亚洲a级在线观看| 一级毛片高清| 日本爱爱精品一区二区| 国产日韩欧美视频| 成人国产精品视频频| 国产精品私拍99pans大尺度| 亚洲中文在线视频| 久久综合婷婷| 91午夜福利在线观看| 精品国产www| 国产午夜无码专区喷水| 亚洲一级毛片在线观| 国产免费怡红院视频| 亚洲一区二区精品无码久久久| 精品国产一二三区| 欧美激情伊人| 国产亚洲视频在线观看| 老司机aⅴ在线精品导航| 色九九视频| 亚洲成a人片77777在线播放| 久久亚洲美女精品国产精品| 久久久成年黄色视频| YW尤物AV无码国产在线观看| 国产成人精品18| 国产精品真实对白精彩久久| 欧美a级在线| 色香蕉影院| 久操中文在线| 全部免费毛片免费播放| 亚洲日韩图片专区第1页| 亚洲精品免费网站| 国产激情无码一区二区免费 | 五月丁香伊人啪啪手机免费观看| 久久狠狠色噜噜狠狠狠狠97视色| 国产亚洲精品yxsp| 国产av剧情无码精品色午夜| 怡红院美国分院一区二区| 国产精品尹人在线观看| 亚洲av无码专区久久蜜芽| 2021国产乱人伦在线播放 | 国产一区二区三区精品久久呦| 欧美a√在线| 亚洲精品无码av中文字幕| 91福利国产成人精品导航| 亚洲高清免费在线观看| 亚洲国产成熟视频在线多多| 国产主播喷水| 老色鬼久久亚洲AV综合| 伊人蕉久影院| 久久久久无码精品| 亚洲伦理一区二区| 亚洲一区二区三区麻豆| 在线免费亚洲无码视频| 中国国语毛片免费观看视频| 色综合天天娱乐综合网| 福利在线一区| 亚洲精品国产精品乱码不卞 | 日本免费a视频| 欧美国产在线看| 免费无码AV片在线观看中文| 国产一区二区三区在线观看视频| 四虎AV麻豆| 欧美日韩激情| 亚洲日韩在线满18点击进入| 国产一区三区二区中文在线| 国产白浆视频| 亚洲 欧美 日韩综合一区| 97se亚洲综合在线天天| 在线免费看黄的网站| 欧美日本二区| 国产波多野结衣中文在线播放| 四虎影视库国产精品一区| 国产理论一区| 亚洲性一区| 亚洲欧美在线精品一区二区|