1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        數(shù)倉建?!狾neID

        共 4587字,需瀏覽 10分鐘

         ·

        2022-04-01 21:22

        今天是我在上海租房的小區(qū)被封的第三天,由于我的大意,沒有屯吃的,外賣今天完全點(diǎn)不到了,中午的時(shí)候我找到了一包快過期的肉松餅,補(bǔ)充了1000焦耳的能量。但是中午去做核酸的時(shí)候,我感覺走路有點(diǎn)不穩(wěn),我看到大白的棉簽深入我的嘴里,我竟然以為是吃的,差點(diǎn)咬住了,還好我有僅存的一點(diǎn)意識。下午我收到女朋友給我點(diǎn)的外賣——面包(我不知道她是怎么點(diǎn)到的外賣,我很感動(dòng)),很精致的面包,擱平時(shí)我基本不喜歡吃面包,但是已經(jīng)到了這個(gè)份上,我大口吃起來,竟然覺得這是世界上最好吃的食物了。明天早晨5:50的鬧鐘,去叮咚和美團(tuán)買菜,看能不能搶幾桶泡面吧。愿神保佑,我暗暗下著決心并祈禱著,胸前畫著十字。。。

        數(shù)據(jù)倉庫系列文章(持續(xù)更新)

        1. 數(shù)倉架構(gòu)發(fā)展史
        2. 數(shù)倉建模方法論
        3. 數(shù)倉建模分層理論
        4. 數(shù)倉建?!獙挶淼脑O(shè)計(jì)
        5. 數(shù)倉建模—指標(biāo)體系
        6. 數(shù)據(jù)倉庫之拉鏈表
        7. 數(shù)倉—數(shù)據(jù)集成
        8. 數(shù)倉—數(shù)據(jù)集市
        9. 數(shù)倉—商業(yè)智能系統(tǒng)
        10. 數(shù)倉—埋點(diǎn)設(shè)計(jì)與管理
        11. 數(shù)倉—ID Mapping
        12. 數(shù)倉—OneID
        13. 數(shù)倉—AARRR海盜模型
        14. 數(shù)倉—總線矩陣
        15. 數(shù)倉—數(shù)據(jù)安全
        16. 數(shù)倉—數(shù)據(jù)質(zhì)量
        17. 數(shù)倉—數(shù)倉建模和業(yè)務(wù)建模

        OneID

        前面我們學(xué)習(xí)了ID Mapping,包括ID Mapping 的背景介紹和業(yè)務(wù)場景,以及如何使用Spark 實(shí)現(xiàn)ID Mapping,這個(gè)過程中涉及到了很多東西,當(dāng)然我們都通過文章的形式介紹給大家了,所以你再學(xué)習(xí)今天這一節(jié)之前,可以先看一下前面的文章

        1. Spark實(shí)戰(zhàn)—GraphX編程指南
        2. 數(shù)倉建?!狪D Mapping

        在上一節(jié)我們介紹ID Mapping 的時(shí)候我們就說過ID Mapping ?是為了打通用戶各個(gè)維度的數(shù)據(jù),從而消除數(shù)據(jù)孤島、避免數(shù)據(jù)歧義,從而更好的刻畫用戶,所以說ID Mapping是手段不是目的,目的是為了打通數(shù)據(jù)體系,ID Mapping最終的產(chǎn)出就是我們今天的主角OneID,也就是說數(shù)據(jù)收集過來之后通過ID Mapping 打通,從而產(chǎn)生OneID,這一步之后我們的整個(gè)數(shù)據(jù)體系就將使用OneID作為用戶的ID,這樣我們整個(gè)數(shù)據(jù)體系就得以打通

        OneData

        開始之前我們先看一下阿里的OneData 數(shù)據(jù)體系,從而更好認(rèn)識一下OneID,前面我們說過ID Mapping 只是手段不是目的,目的是為了打通數(shù)據(jù)體系,ID Mapping最終的產(chǎn)出就是OneID

        其實(shí)OneID在我們整個(gè)數(shù)據(jù)服務(wù)體系中,也只是起點(diǎn)不是終點(diǎn)或者說是手段,我們最終的目的是為了建設(shè)統(tǒng)一的數(shù)據(jù)資產(chǎn)體系。

        44655a1f96ffa6d0fc2b9995b276cbe1.webp

        沒有建設(shè)統(tǒng)一的數(shù)據(jù)資產(chǎn)體系之前,我們的數(shù)據(jù)體系建設(shè)存在下面諸多問題

        1. 數(shù)據(jù)孤島:各產(chǎn)品、業(yè)務(wù)的數(shù)據(jù)相互隔離,難以通過共性ID打通
        2. 重復(fù)建設(shè):重復(fù)的開發(fā)、計(jì)算、存儲,帶來高昂的數(shù)據(jù)成本
        3. 數(shù)據(jù)歧義:指標(biāo)定義口徑不一致,造成計(jì)算偏差,應(yīng)用困難

        在阿里巴巴 OneData 體系中,OneID 指統(tǒng)一數(shù)據(jù)萃取,是一套解決數(shù)據(jù)孤島問題的思想和方法。數(shù)據(jù)孤島是企業(yè)發(fā)展到一定階段后普遍遇到的問題。各個(gè)部門、業(yè)務(wù)、產(chǎn)品,各自定義和存儲其數(shù)據(jù),使得這些數(shù)據(jù)間難以關(guān)聯(lián),變成孤島一般的存在。

        OneID的做法是通過統(tǒng)一的實(shí)體識別和連接,打破數(shù)據(jù)孤島,實(shí)現(xiàn)數(shù)據(jù)通融。簡單來說,用戶、設(shè)備等業(yè)務(wù)實(shí)體,在對應(yīng)的業(yè)務(wù)數(shù)據(jù)中,會(huì)被映射為唯一識別(UID)上,其各個(gè)維度的數(shù)據(jù)通過這個(gè)UID進(jìn)行關(guān)聯(lián)。

        各個(gè)部門、業(yè)務(wù)、產(chǎn)品對業(yè)務(wù)實(shí)體的UID的定義和實(shí)現(xiàn)不一樣,使得數(shù)據(jù)間無法直接關(guān)聯(lián),成為了數(shù)據(jù)孤島?;谑謾C(jī)號、身份證、郵箱、設(shè)備ID等信息,結(jié)合業(yè)務(wù)規(guī)則、機(jī)器學(xué)習(xí)、圖算法等算法,進(jìn)行 ID-Mapping,將各種 UID 都映射到統(tǒng)一ID上。通過這個(gè)統(tǒng)一ID,便可關(guān)聯(lián)起各個(gè)數(shù)據(jù)孤島的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)通融,以確保業(yè)務(wù)分析、用戶畫像等數(shù)據(jù)應(yīng)用的準(zhǔn)確和全面。

        OneModel 統(tǒng)一數(shù)據(jù)構(gòu)建和管理

        將指標(biāo)定位細(xì)化為:

        1. 原子指標(biāo)
        2. 時(shí)間周期
        3. 修飾詞(統(tǒng)計(jì)粒度、業(yè)務(wù)限定, etc)

        通過這些定義,設(shè)計(jì)出各類派生指標(biāo) 基于數(shù)據(jù)分層,設(shè)計(jì)出維度表、明細(xì)事實(shí)表、匯總事實(shí)表,其實(shí)我們看到OneModel 其實(shí)沒有什么新的內(nèi)容,其實(shí)就是我們數(shù)倉建模的那一套東西

        OneService 統(tǒng)一數(shù)據(jù)服務(wù)

        OneService 基于復(fù)用而不是復(fù)制數(shù)據(jù)的思想,指得是我們的統(tǒng)一的數(shù)據(jù)服務(wù),因?yàn)槲覀円恢痹偬岢珡?fù)用,包括我們數(shù)倉的建設(shè),但是我們的數(shù)據(jù)服務(wù)這一塊卻是空白,所以O(shè)neService核心是服務(wù)的復(fù)用,能力包括:

        • 利用主題邏輯表屏蔽復(fù)雜物理表的主題式數(shù)據(jù)服務(wù)
        • 一般查詢+ OLAP 分析+在線服務(wù)的統(tǒng)一且多樣化數(shù)據(jù)服務(wù)
        • 屏蔽多種異構(gòu)數(shù)據(jù)源的跨源數(shù)據(jù)服務(wù)

        OneID 統(tǒng)一數(shù)據(jù)萃取

        基于統(tǒng)一的實(shí)體識別、連接和標(biāo)簽生產(chǎn),實(shí)現(xiàn)數(shù)據(jù)通融,包括:

        • ID自動(dòng)化識別與連接
        • 行為元素和行為規(guī)則
        • 標(biāo)簽生產(chǎn)

        OneID基于超強(qiáng)ID識別技術(shù)鏈接數(shù)據(jù),高效生產(chǎn)標(biāo)簽;業(yè)務(wù)驅(qū)動(dòng)技術(shù)價(jià)值化,消除數(shù)據(jù)孤島,提升數(shù)據(jù)質(zhì)量,提升數(shù)據(jù)價(jià)值。

        而ID的打通,必須有ID-ID之間的兩兩映射打通關(guān)系通過ID映射關(guān)系表,才能將多種ID之間的關(guān)聯(lián)打通,完全孤立的兩種ID是無法打通的。

        打通整個(gè)ID體系,看似簡單,實(shí)則計(jì)算復(fù)雜,計(jì)算量非常大。假如某種對象有數(shù)億個(gè)個(gè)體,每個(gè)個(gè)體又有數(shù)十種不同的ID標(biāo)識,任意兩種ID之間都有可能打通關(guān)系,想要完成這類對象的所有個(gè)體ID打通需要數(shù)億次計(jì)算,一般的機(jī)器甚至大數(shù)據(jù)集群都無法完成。

        大數(shù)據(jù)領(lǐng)域中的ID-Mapping技術(shù)就是用機(jī)器學(xué)習(xí)算法類來取代野蠻計(jì)算,解決對象數(shù)據(jù)打通的問題?;谳斎氲腎D關(guān)系對,利用機(jī)器學(xué)習(xí)算法做穩(wěn)定性和收斂性計(jì)算,輸出關(guān)系穩(wěn)定的ID關(guān)系對,并生成一個(gè)UID作為唯一識別該對象的標(biāo)識碼。

        OneID實(shí)現(xiàn)過程中存在的問題

        前面我們知道我們的ID Mapping 是通過圖計(jì)算實(shí)現(xiàn),核心就是連通圖,其實(shí)實(shí)現(xiàn)OneID我們在打通ID 之后,我們就可以為一個(gè)個(gè)連通圖生成一個(gè)ID, 因?yàn)橐粋€(gè)連通圖 就代表一個(gè)用戶,這樣我們生成的ID就是用戶的OneID,這里的用戶指的是自然人,而不是某一個(gè)平臺上的用戶。

        OneID 的生成問題

        首先我們需要一個(gè)ID 生成算法,因?yàn)槲覀冃枰獮榇罅坑脩羯蒊D,我們的ID 要求是唯一的,所以在算法設(shè)計(jì)的時(shí)候就需要考慮到這一點(diǎn),我們并不推薦使用UUID,原因是UUID了可能會(huì)出現(xiàn)重復(fù),而且UUID 沒有含義,所以我們不推薦使用UUID,我們這里使用的是MD5 算法,所以我們的MD5 算法的參數(shù)是我們的圖的標(biāo)示ID。

        OneID 的更新問題

        這里的更新問題主要就是我們的數(shù)據(jù)每天都在更新,也就是說我們的圖關(guān)系在更新,也就是說我們要不要給這個(gè)自然人重新生成OneID ,因?yàn)樗膱D關(guān)系可能發(fā)生了變化。

        其實(shí)這里我們不能為該自然人生成新的OneID ,否則我們數(shù)倉里的歷史數(shù)據(jù)可能無法關(guān)聯(lián)使用,所以我們的策略就是如果該自然人已經(jīng)有OneID了,則不需要重新生成,其實(shí)這里我們就是判斷該圖中的所有的頂點(diǎn)是否存在OneID,我們后面在代碼中體現(xiàn)著一點(diǎn)。

        OneID 的選擇問題

        這個(gè)和上面的更新問題有點(diǎn)像,上面更新問題我們可以保證一個(gè)自然人的OneID不發(fā)生變化,但是選擇問題會(huì)導(dǎo)致發(fā)生變化,但是這個(gè)問題是圖計(jì)算中無法避免的,我們舉個(gè)例子,假設(shè)我們有用戶的兩個(gè)ID(A_ID,C_ID),但是這兩個(gè)ID 在當(dāng)前是沒有辦法打通的,所以我們就會(huì)為這個(gè)兩個(gè)ID 生成兩個(gè)OneID,也就是(A_OneID,B_OneID),所以這個(gè)時(shí)候我們知道因?yàn)镮D Mapping 不上,所以我們認(rèn)為這兩個(gè)ID 是兩個(gè)人。

        后面我們有了另外一個(gè)ID(B_ID),這個(gè)ID可以分別和其他的兩個(gè)ID 打通,也就是B_ID<——>A_ID , B_ID<——>C_ID 這樣我們就打通這個(gè)三個(gè)ID,這個(gè)時(shí)候我們知道

        這個(gè)用戶存在三個(gè)ID,并且這個(gè)時(shí)候已經(jīng)存在了兩個(gè)OneID,所以這個(gè)時(shí)候我們需要在這兩個(gè)OneID中選擇一個(gè)作為用戶的OneID,簡單粗暴點(diǎn)就可以選擇最小的或者是最大的。

        我們選擇了之后,要將另外一個(gè)OneID對應(yīng)的數(shù)據(jù),對應(yīng)到選擇的OneID 下,否則沒有被選擇的OneID的歷史數(shù)據(jù)就無法追溯了

        OneID 代碼實(shí)現(xiàn)

        這個(gè)代碼相比ID Mapping主要是多了OneID 的生成邏輯和更新邏輯 ,需要注意的是關(guān)于頂點(diǎn)集合的構(gòu)造我們不是直接使用字符串的hashcode ,這是因?yàn)閔ashcode 很容易重復(fù)

        object?OneID??{
        ????val?spark?=?SparkSession
        ??????.builder()
        ??????.appName("OneID")
        ??????.getOrCreate()

        ??val?sc?=?spark.sparkContext

        ??def?main(args:?Array[String]):?Unit?=?{
        ????val?bizdate=args(0)
        ????val?c?=?Calendar.getInstance
        ????val?format?=?new?SimpleDateFormat("yyyyMMdd")
        ????c.setTime(format.parse(bizdate))

        ????c.add(Calendar.DATE,?-1)
        ????val?bizlastdate?=?format.format(c.getTime)

        ????println(s"?時(shí)間參數(shù)??${bizdate}????${bizlastdate}")
        ????//?dwd_patient_identity_info_df?就是我們用戶的各個(gè)ID?,也就是我們的數(shù)據(jù)源
        ????//?獲取字段,這樣我們就可以擴(kuò)展新的ID?字段,但是不用更新代碼
        ????val?columns?=?spark.sql(
        ??????s"""
        ?????????|select
        ?????????|???*
        ?????????|from
        ?????????|???lezk_dw.dwd_patient_identity_info_df
        ?????????|where
        ?????????|???ds='${bizdate}'
        ?????????|limit
        ?????????|???1
        ?????????|"
        "".stripMargin)
        ??????.schema.fields.map(f?=>?f.name).filterNot(e=>e.equals("ds")).toList

        ????//?獲取數(shù)據(jù)
        ????val?dataFrame?=?spark.sql(
        ??????s"""
        ????????|select
        ????????|???${columns.mkString("
        ,")}
        ????????|from
        ????????|???lezk_dw.dwd_patient_identity_info_df
        ????????|where
        ????????|???ds='${bizdate}'
        ????????|"
        "".stripMargin
        ????)

        ????//?數(shù)據(jù)準(zhǔn)備
        ????val?data?=?dataFrame.rdd.map(row?=>?{
        ??????val?list?=?new?ListBuffer[String]()
        ??????for?(column?<-?columns)?{
        ????????val?value?=?row.getAs[String](column)
        ????????list.append(value)
        ??????}
        ??????list.toList
        ????})
        ????import?spark.implicits._
        ????//?頂點(diǎn)集合
        ????val?veritx=?data.flatMap(list?=>?{
        ??????for?(i?<-?0?until?columns.length?if?StringUtil.isNotBlank(list(i))?&&?(!"null".equals(list(i))))
        ????????yield?(new?BigInteger(DigestUtils.md5Hex(list(i)),16).longValue,?list(i))

        ????}).distinct

        ????val?veritxDF=veritx.toDF("id_hashcode","id")
        ????veritxDF.createOrReplaceTempView("veritx")

        ????//?生成邊的集合
        ????val?edges?=?data.flatMap(list?=>?{
        ??????for?(i?<-?0?to?list.length?-?2?if?StringUtil.isNotBlank(list(i))?&&?(!"null".equals(list(i)))
        ???????????;?j?<-?i?+?1?to?list.length?-?1?if?StringUtil.isNotBlank(list(j))?&&?(!"null".equals(list(j))))
        ??????yield?Edge(new?BigInteger(DigestUtils.md5Hex(list(i)),16).longValue,new?BigInteger(DigestUtils.md5Hex(list(j)),16).longValue,?"")
        ????}).distinct


        ????//?開始使用點(diǎn)集合與邊集合進(jìn)行圖計(jì)算訓(xùn)練
        ????val?graph?=?Graph(veritx,?edges)
        ????val?connectedGraph=graph.connectedComponents()

        ????//?連通節(jié)點(diǎn)
        ????val??vertices?=?connectedGraph.vertices.toDF("id_hashcode","guid_hashcode")
        ????vertices.createOrReplaceTempView("to_graph")

        ????//?加載昨日的oneid?數(shù)據(jù)?(oneid,id,id_hashcode)?
        ????val?ye_oneid?=?spark.sql(
        ??????s"""
        ????????|select
        ????????|???oneid,id,id_hashcode
        ????????|from
        ????????|???lezk_dw.dwd_patient_oneid_info_df
        ????????|where
        ????????|???ds='${bizlastdate}'
        ????????|"
        "".stripMargin
        ????)
        ????ye_oneid.createOrReplaceTempView("ye_oneid")

        ????//?關(guān)聯(lián)獲取?已經(jīng)存在的?oneid,這里的min?函數(shù)就是我們說的oneid?的選擇問題
        ????val?exists_oneid=spark.sql(
        ??????"""
        ????????|select
        ????????|???a.guid_hashcode,min(b.oneid)?as?oneid
        ????????|from
        ????????|???to_graph?a
        ????????|inner?join
        ????????|???ye_oneid?b
        ????????|on
        ????????|???a.id_hashcode=b.id_hashcode
        ????????|group?by
        ????????|???a.guid_hashcode
        ????????|"
        "".stripMargin
        ????)
        ????exists_oneid.createOrReplaceTempView("exists_oneid")
        ????//?不存在則生成?存在則取已有的?這里nvl?就是oneid??的更新邏輯,存在則獲取?不存在則生成
        ????val?today_oneid=spark.sql(
        ??????s"""
        ????????|insert?overwrite?table?dwd_patient_oneid_info_df?partition(ds='${bizdate}')
        ????????|select
        ????????|???nvl(b.oneid,md5(cast(a.guid_hashcode?as?string)))?as?oneid,c.id,a.id_hashcode,d.id?as?guid,a.guid_hashcode
        ????????|from
        ????????|???to_graph?a
        ????????|left?join
        ????????|???exists_oneid?b
        ????????|on
        ????????|???a.guid_hashcode=b.guid_hashcode
        ????????|left?join
        ????????|???veritx?c
        ????????|on
        ????????|???a.id_hashcode=c.id_hashcode
        ????????|left?join
        ????????|???veritx?d
        ????????|on
        ????????|???a.guid_hashcode=d.id_hashcode
        ????????|"
        "".stripMargin
        ????)
        ????sc.stop
        ??}

        }

        這個(gè)代碼中我們使用了SparkSQL,其實(shí)你如果更加擅長RDD的API,也可以使用RDD 優(yōu)化,需要注意的是網(wǎng)上的很多代碼中使用了廣播變量,將vertices 變量廣播了出去,其實(shí)這個(gè)時(shí)候存在一個(gè)風(fēng)險(xiǎn)那就是如果你的vertices 變量非常大,你廣播的時(shí)候存在OOM 的風(fēng)險(xiǎn),但是如果你使用了SparkSQL的話,Spark 就會(huì)根據(jù)實(shí)際的情況,幫你自動(dòng)優(yōu)化。

        優(yōu)化點(diǎn) 增量優(yōu)化

        我們看到我們每次都是全量的圖,其實(shí)我們可以將我們的OneID 表加載進(jìn)來,然后將我們的增量數(shù)據(jù)和已有的圖數(shù)據(jù)進(jìn)行合并,然后再去生成圖

        val?veritx?=?ye_veritx.union(to_veritx)
        val?edges?=?ye_edges.union(to_edges)

        val?graph?=?Graph(veritx,?edges)

        總結(jié)

        1. ID MappingOneID 的提前,OneIDID Mapping 的結(jié)果,所以要想做OneID必須先做ID Mapping;
        2. OneID 是為了打通整個(gè)數(shù)據(jù)體系的數(shù)據(jù),所以OneID 需要以服務(wù)的方式對外提供服務(wù),在數(shù)倉里面就是作為基礎(chǔ)表使用,對外的話我們就需要提供接口對外提供服務(wù)

        瀏覽 59
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人精品视频在线| 东京热在线免费观看| 日本中文字幕在线| 99热国产免费| 91视频在线网站| 欧一美一婬一伦一区?| 约操少妇| 影音先锋男人站| 国产AV一二三区| 四川BBB嫩BBBB爽BBBB| 精品久草| a片视频免费观看| 麻豆乱婬一区二区三区| 亚洲成人小说| 91无码人妻一区二区成人AⅤ| 中文字幕视频一区日日骚| 黄色一级大片| 男女内射视频| 青青青草视频| 国产一级婬片A片免费无成人黑豆 国产真实露脸乱子伦对白高清视频 | 视频在线观看一区| 亚洲日产专区| 大香蕉国产在线视频| 日韩中字幕无码| 欧美一区二区三区在线| 一本一道AV| 午夜成人在线视频| 97国产成人| AV天堂偷拍亂伦| 成年人性生活免费视频| 黄色视频| 国产免费视频| 激情丁香| 午夜成人AV| 一道本无码在线视频| 好逼天天有| 日韩成人影片| 成人动漫一区二区| 国产TS变态重口人妖| 亚洲综合视频网| 日本三级片中文字幕| 日韩影音| 精品人妻一二三区| 欧美老妇性猛交| 国产精品久久久久久久久久久免费看 | 香蕉网址| av天天看| 亚洲人操逼视频| 狼人色综合| 日韩一级一片| 成人片成人片| 中文字幕无码在线观看| 丁香五月天激情| 91麻豆精品传媒| 久久99精品久久久久久水蜜桃| av在线中文| 男人的天堂免费视频| 91视频你懂的| 中文字幕成人在线观看| 国产精品久久久久无码| 亚洲小电影在线| 91国语对白| 国产一级女婬乱免费看| 欧美三级片在线视频| 大香蕉少妇| 久久国产一区二区| 黄色片一级片| 黄色视频A片| 丁香视频在线观看| 日p视频在线观看| 嫩BBB槡BBBB槡BBBB| 高潮视频在线| 91在线观看免费视频| 欧美三级在线观看视频| 91一区二区在线播放精品| 蝌蚪窝视频网| 国产寡妇亲子伦一区二区三区四区 | 国产熟睡乱子伦午夜视频_第1集| 中文字幕+乱码+中文乱码91在线观看 | 久久综合成人| 无码A级| 日韩人妻精品一区二区| 久草a视频| 国产成人精品亚洲男人的天堂| 国产一区视频在线| 特级西西444www高清大胆免费看 | 天堂中文8资源在线8| 国产黄色电影在线| 久久久久无码国产精品一区| 色播视频在线观看| 亚洲日韩黄色| 黄色操逼大片| 大香蕉网在线| 欧美一级棒| Japanese在线观看| 国产小电影在线| 日本激情视频| 在线免费观看黄色片| 亚洲免费一区二区| 欧美日韩精品久久久免费观看| 大香蕉性爱视频| 色综合久久88色综合天天| h片在线| 精品二区| 一区二区三区久久| 中韩AV在线免费观看| 亚洲精品国产精品乱玛不99| 9191久久| 日韩AⅤ视频| 久久久久久久久久久国产精品| 天天夜夜久久| 免费成人视频在线观看| 人人澡视频| 色诱AV| 国内精品久久久久久久| 黄色视频网站国产| 一本一道久久| 一区二区三区视频在线观看| 大香蕉啪啪| 国产美女精品久久AV爽| A级黄色网| AV资源网站在线| 在线观看免费人成视频| 欧美大鸡巴在线观看| 亚洲视频精品| 在线观看亚洲专区| 丝袜足交在线| 国产免费AV在线| 亚洲综合日韩在线| 操逼视频在线观看| 欧美特级AAA| 五月丁香在线播放| 一区二区免费在线观看| AV在线导航| 亚洲九九视频| 丁香五月婷婷六月| 日韩av一区二区三区| 婷婷精品| 欧美日韩视频| 国产成人在线精品| 天堂网www| 蜜臀AV午夜精品| 成人午夜福利高清视频| 免费一级A毛片夜夜看| 大鸡巴视频在线观看| 天堂在线| 亚洲精品字幕| 国产AV美女| 亚洲熟妇在线观看一区二区| 国产九九热视频| 激情操逼网| 福利网站在线观看| 逼特逼在线观看| 999reav| 在线观看黄片网站| av免费观看网址| 乱伦小视频| 京东一热本色道久久爱| 91女人18毛片水多的意思| 天堂中文字幕在线观看| 性99网站| 91精品国产乱码久久久| 校园春色亚洲色图| 国产毛片777777| 国产精品va| 悠悠色影院| 日韩三级AV在线观看| 一区二区三区小视频| 成人三级片网| 国产多人搡BBBB槡BBBB| 欧美在线色图| 激情乱伦视频| se婷婷| 高潮无码在线观看| 色噜噜狠狠一区二区三区牛牛影视 | 无码在线免费观看视频| 色妞一區| 日韩精品一区二区三区在线观看免费 | 成人色色| 大香蕉婷婷五月天| 九九视频在线观看| 国产精品大香蕉| 黄片视频链接| 中文字幕无码影院| 亚洲AV无码国产综合专区| 五月天国产精品| 久草网站| 大地资源第三页在线观看免费播放最新 | 不卡在线视频| 大地8免费高清视频观看大全| 亚洲一区二区视频在线观看| 一本色道无码道| 97一区二区三区| 久久国产乱子伦精品免费女,网站| 性饥渴欧美老妇XXXXX| 九九99精品视频| 一二三四区视频| 丁香五月婷婷综合| 加勒比日日综合| 波多野结衣视频在线观看| 日韩欧美一级二级| 青青超碰| 婷婷视频| 午夜成人免费福利| AV在线免费网站| 亚洲毛片视频| 国产日韩欧美在线| 日本大香蕉在线视频| 大香蕉在线网站| 免费在线A| 欧美性爱在线观看| 亚洲AV中文在线| 色噜| 亚洲成人小说| 三级AV在线免费观看| 欧美日韩美女| 一级二级三级无码| 在线无码一区| 欧美大鸡| 一级少女免费播放电视剧韩剧TV| 俺去俺来也www色官网cms| 麻豆乱伦| 啪啪视频m3u8| 日本欧美在线播放中文| 无码一二三区| 乱伦99| 久久国产精品精品国产色婷婷 | 黄色视频在线观看18| 国产人妖av| 69av在线观看视频| 日皮视频免费| 91白浆肆意四溢456| 亚洲精品麻豆| 久草中文网| 欧美日本国产| 高清毛片AAAAAAAAA郊外| 午夜成人在线视频| 神马午夜精品96| 国产精品系列视频| 性九九九九九九| 全国最大成人网| 黄色片大香蕉| 日韩免费成人视频| 2018天天干天天操| 国产无码AV大片| 成人在线黄片| 国产综合久久久7777777| 国产操B| 日逼免费| 日逼网站免费观看| 熊猫AⅤ| 手机在线操B视频| 国产欧美日韩| 风情万种AV| 99久久精品国产成人一区二区| 最新av| 无码三级| 江苏妇搡BBBB搡BBBB-百度 | 成人网站在线观看免费| 亚洲国产综合AV在线| 男人的天堂亚洲| 少妇精品| 精品一区二区三区无码| 91蜜桃网| 搞黄免费视频视频| 国产91久久婷婷一区二区| 亚洲夜夜操| 久久99高清视频| 日韩一级毛| 成人小视频在线观看| 一本久道综合| 毛片网站免费| 欧美天堂在线| 免费的黄色视频网站| 台湾一区二区| 久久黄色视频| 韩国无码一区二区| www.人人操| 日屄免费视频| 国产视频1区| 国产激情av| 超碰人人搞| 亚洲制服在线观看| 搡BBBB搡BBB搡五十粉嫩 | 欧美视频免费操逼图。| 91成人久久| 欧美精品在线播放| 96精品久久久久久久久久| 麻豆精品一区| 大香蕉电影网| 无码一区二区高清| 国产白丝在线观看| 开心五月色婷婷综合开心网| 羞羞视频com.入口| 1024黄| 免费A在线| 91精品人妻一区二区三区蜜桃| 波多一区| 日韩1页| 午夜福利电影无码| 色综合中文字幕| 色交视频| 日韩在线观看av| 五十路在线视频| 五月丁香激情四射| 午夜电影无码| 啪啪啪av| 中文字幕无码人妻在线视频| 亚洲AV在线人妻| 熟女人妻一区二区| 亚州成熟少妇视频在线观看| 日韩一级在线免费观看| 亚洲青草| 色色网站视频| 2025天天操| 91久久久裸身美女| 亚洲一区三区| 特黄AAAAAAAA片视频| 伊人在线视频观看| 午夜成人福利| 亚洲视频www| 嫩草av| 久久人体视频| 日韩无码一级片| 在线播放a| 成人视频在线观看免费| 亚洲色人妻| 一本色道久久综合狠狠躁的推荐| 亚洲国产成人精品综合99| 西西444WWW无码精品| 美少妇AV| 综合久久中文字幕| 国产激情欧洲在线观看一区二区三区| 综合激情网站| 91青青草| 国产粉嫩在线观看| 日韩人妻丰满无码区A片| 最新毛片网站| 国产精品电影| 99色婷婷| 国产97视频| 国产网站精品| 日韩天天干| 国产91探花精品一区二区| 日韩成人综合| 国产免费性爱| 日韩欧美久久| 91视频第一页| 桃色AV| 亚洲a电影| 国产操| 色色色欧美| 91性爱视频| 无码在线高清| 亚州毛多色色精品| 国产69精品久久久久久| 久久夜色视频网| 欧美一区二区三区成人片在线| 亚洲无码AV麻豆| 怡春院AV| 俺来也影院| 四季AV一区二区夜夜嗨| 欧美无遮挡| a在线观看视频| 国产波霸爆乳一区二区| 国产一区二区三区免费播放| 人妻一区二区在线| 人人看人人射| 影音先锋中文字幕av| 操逼视频大全| 国产三级网址| 91精产国品一二| 加勒比无码在线播放| 国产青娱乐在线视频| 国产一区二区成人久久919色| 日韩黄色视频在线观看| 仓井空一区二区| 插丰满少妇在线观看| 婷婷狠狠干| 69精品免费视频| AV女人天堂| 淫香淫色天天影视| 无码中文字幕| 婷婷爱五月| 97超碰在线视| 少妇特黄A一区二区三区| 日日99| 一级调教看片| aaa免费视频| 台湾无码精品| 毛片一区二区| 乱子伦日B视频| 边吃奶边做爱| 操逼大香蕉| 黄色中文字幕| 初学影院WWWBD英语完整版在线观看 | 亚洲在线高清视频| 欧美成人性爱网站| 影音先锋黄色资源| 水蜜桃视频网站| 日本大香蕉伊人| 黄频在线免费观看| 无码AV网站| 国产黄色小视频在线观看| 偷偷操av| 日韩欧美中文| 影音先锋成人在线视频| 驲韩在线视频免费观看| 黄色网址在线免费观看| 中文字幕日韩有码| 国产成人秘一区二区三区东京热| 大香蕉中文网| 蜜桃性视频| 爱搞搞就要搞| 亚欧三级| 91丨PORN首页| 制服.丝袜.亚洲.中文豆花| 欧美日色| 国产熟女AV| 久久精品一区二区| 激情丁香婷婷| 99免费热视频| 俺去俺来也在线www色官网| 噜噜在线| 亚洲女同在线| 国产av一区二区三区| 久久久亚洲无码精品| 麻豆国产91| 在线观看日韩三级片av| 狼友精品| 免费在线观看A| 国产成人综合自拍| 五十路无码| 小明成人免费视频| 伊人精品大香蕉| 成人做爰A片AAA毛真人| 亚洲日产专区| 五月一区| 黄片免费网站| 国产欧美精品一区二区色综合 | 亚洲在线成人| 操逼基地| 天天日天天色| 天堂一区二区三区18| 伊人蕉久| 大香蕉伊人青青草| 日韩电影一区| 体内射精视频| 超碰碰人人| 岛国AV在线| 激情丁香六月| 欧美深夜福利视频| 日韩中文字幕在线| 国产一区二区三区视频在线观看| 懂色av懂色av粉嫩av| 久久久久久精品国产三级| 一级片欧美| 国产精品后入| 一本色道久久综合狠狠躁的推荐| 日韩亚洲在线视频| 中文字幕+乱码+中文乱码电影| 牛牛aV| 日韩免费视频| 毛多水多丰满女人A片| 亚洲AVA| 成人在线网址| 999高清无码| A视频在线观看| 91麻豆福利| 欧美在线观看一区二区| 人人妻人人澡人人爽人人| 69国产在线| 黄色成人大片| 国产96在线亚洲| 欧一美一婬一伦一区二区三区黑人| 中文字幕五码| 性爱无码AV| 亚洲精品午夜福利| 亚洲小说区图片区都市| 男女黄色免费网站| 在线中文字幕在线观看| 无码123| 免费中文字幕av| 91麻豆电影| 国产海角视频| 五月激情六月丁香| 亚洲无码蜜桃| 国产夫妻露脸| 天干天干天夜夜操| H无码| 国产乱伦中文字幕| 国产精品久久7777777精品无码| 亚洲秘无码一区二区三区欧美| 蜜桃91精品秘成人取精库| 一级免费黄色视频| 蜜桃无码一区| 在线观看免费黄片| 天天干天天日天天| 色综合天天操| 午夜xxx| 按摩忍不住BD中文字幕| 中文天堂| 青青草中文字幕| 亚洲一区高清| 成人黄色性视频| 大香蕉一区二区三区| av在线观看中文字幕| 91久久精品日日躁夜夜躁欧美| 无码视屏| 97人人艹| 无码AⅤ一区二区三区| 人人摸人人操人人干| 欧美日韩色视频| 中文字幕的色| 天天操天天拍| 欧美色视频在线观看| 欧美精品乱码99久久蜜桃 | 最近日本中文字幕中文翻译歌词| 日韩成人在线看| 国产免费一区二区三区四区六区在线 | 91人妻人人爽人人澡人人爽| 国产精品囯产三级囯产AV野外| 快播激情小说| 一区二区三区在线观看| 九一久久| 99在线视频免费| 少妇人妻一区二区三区| 亚洲欧美日韩无码| 男女日逼视频| AV资源站| 午夜精品视频在线观看| 国产99页| 日本一区二区三区视频在线观看| 风情万种AV| 91无码在线观看| 黄色片视频在线观看| 人人操超碰在线| 91国内产香蕉| 欧美一级无码| 免费看欧美日黄片| 国产中文字幕视频| 丰满人妻一区二区三区不卡二| 只有精品| 亚洲丝袜av| 国产精品久久久久久最猛| 木下凛凛子AV888AV在线观看 | 日本少妇激情视频| 亚洲小说图片AV在线| 18禁日韩| 奇米狠狠色| 黄色片视频| 日韩精品视频免费在线观看| 老太色HD色老太HD.| 欧美在线观看一区| 日本一级婬片A片AAA毛多多| 欧美色色色色色色| 91AV无码| 亚洲午夜精品成人毛片| 欧美操逼操| 国产精品99久久免费黑人人妻| 操比二区| 青青av| 国产在线小电影| 成人a片在线观看| 国产卡一卡二| 精品无码视频在线| 亚洲黄色在线免费观看| 亚洲精品一区二区三区四区高清| 欧美毛视频| 成年人毛片| 波多野结衣无码AV在线| www.777av| 国产美女高潮视频| 激情久久av| 日韩一级片在线| 影音先锋av网| h在线观看h| 亚洲精品视频在线观看网站| 久久久五月天| 熟女一区二区| 色五婷婷| 成人精品水蜜桃| 中文字幕在线电影| 中文字幕在线免费观看电影| 操b视频在线免费观看| 成人影片在线观看18| 中文字幕一区三区三A片密月| 人人色人人色| 日韩操逼网| 人人色综合| 色色免费视频| 成人免费视频国产免费麻豆,| 久久99久久99| 中文字幕乱码中文乱码91| 人人看人人插| AV天堂偷拍亂伦| 国产欧美精品一区二区三区| 无码乱伦AV| 黃色A片一級二級三級免費久久久 亚洲AV无码第一区二区三区蜜桃 亚洲综合免费观看高清完整版在线 | 影音先锋91| 乱伦91视频| 亚洲无码A片在线| 亚洲综合免费观看高清完整版在线| 澳门黄片| 亚洲人妻av| 人人妻人人澡人人爽人人| 操逼网站免费看| 图片区小说区区亚洲五月| 怮交小拗女小嫩苞视频| 26uuu亚洲| 国产午夜视频在线| 日韩有码中文字幕在线观看| 欧美日韩国产成人电影| 国产秘精品区二区三区日本| 东京热av一区二区| 亚洲网站免费在线观看| 麻豆精品一区二区三区| 国产一级影院| 精品一区二区三区毛片| 欧美性猛交一区二区三区| 成人视频网站18| 国产成人久久777777黄蓉| 亚洲性爱AV| 一区二区三区在线观看视频| 日本A级视频| 97超碰人人操| 你懂的在线观看| 一级大片| 亚洲精品成人无码毛片| 亚洲无码专区在线观看| 久久精品视频99| 乖我硬了让老子cao你小视频| 热久久免费| 在线免费看黄色视频| 日韩亚洲欧美在线| 日韩欧美第一页| 一级成人毛片| 中文字字幕在线中文| 男人资源网| 国产97在线观看| 日本一区二区三区在线观看网站| 欧美日韩国产激情| 香蕉视频一区| 日韩无码视频网| 欧美一级AA| 围产精品久久久久久久| 北条麻妃在线视频聊天| 天堂俺去俺来也www久久婷婷| av在线免费观看网址| 日韩成年视频| 亚洲日韩视频在线播放| 亚洲小视频在线播放| 一本色道久久综合无码人妻软件| 亚洲在线一区| 逼特逼视频在线| 三级av无码| 熟妇人妻丰满久久久久久久无码| 国产精品911| 亚洲精品熟女| 欧美一级A片免费看| 国产成人无码免费看片| 91人妻论坛| 亚洲无码自拍偷拍| 蜜桃Av噜噜一区二区| 婷婷五月综合网| 日本色色网| 你懂的视频在线| 国产精品视频久久| 天堂a中文在线| 在线观看亚洲| 中文字幕乱码免费综合久久| 久久亚洲日韩天天做日日做综合亚洲| 长腿女神打扫偷懒被主人猛操惩罚 | 无码三级| 三级AV在线免费观看| 性做久久久久久| 亚洲小电影在线观看| 亚洲av二区| 国产成人小电影| 91高潮久久久久久久| 国产午夜精品一区二区三区嫩A | 欧美黄色小视频| 99热网站| 成人伊人网| 2025最新国产精品每日更新| 啪啪成人网| AV无码不卡| 怡红院在线观看| 围内精品久久久久久久久白丝制服 | 黄色av网站在线观看| 人人操狠狠操| 婷婷综合一区| 欧美老妇操逼视频| 大香蕉做爱| 国产成人无码区亚洲A片356p| 日韩欧美毛片| 人妻互换一二三区免费| 日韩在线免费观看视频| 国产高清av| 日韩无码久| 五月丁香婷婷久久| 欧美成人性爱影院| 大香蕉亚洲在线| 91在线不卡| 俺来也在线视频| 亚洲欧美日韩电影| 亚洲成人性爱网| 日本草逼视频| 久久精品亚洲| 亚洲无码aa| 青草在线视频| 99精品在线播放| 亚洲精品18禁| 国产卡一卡二| 亚洲综合在线网| 国产成人小视频| 操东北老女人| 丝袜诱惑AV| 91人体视频| 欧美一区二区三区系列电影 | 国产女人18毛片水真多1| 国产色无码网站www色视频| 毛片内射| 天天爱天天操| 日本欧洲三级| 欧美草比视频| 超碰在线天天| 亚洲av偷拍| 国产成人一级片| 嫩草亚洲小泬久久夂| 国产天堂| 欧美不卡在线视频| 一级aa视频| 国产精品久久久大香蕉| 亚洲码无人客一区二区三区| 日本翔田千里奶水| 人人妻人人澡人人爽人人DVD| 17.3c一起起草| 二区AV| 在线观看免费黄视频| 国产免费av在线| 蜜臀久久久| 国产在线无码视频| www.大鸡巴| 91麻豆大奶巨乳一区白虎| 老司机在线免费视频| 西欧超碰在线| 天天天天天天天干| 中文字幕日韩高清| 18禁一区二区三区| 日韩大香蕉| 国产免看一级a一片成人aⅴ| 91在线无码精品秘入口电车| 天天日天天操天天摸天天干天日射天天插 | 内射午夜福利在线免费观看视频| 91人妻一区二区三区无不码超满| 丁香AV| 丁香五月天av| 久久亚洲婷婷| 人人操人| 亚洲成人大香蕉视频| 高清无码网| 国产免费一级特黄A片| 国产熟女| 蜜桃Av噜噜一区二区| 黄色片免费看| 久久露脸国语精品国产91| 国产精品色综合| 三级国产AV| 久久久久无码精品亚洲日韩| 欧美亚洲天堂| 精品无码在线观看视频| 你懂得视频| 日本久久精品18| 69人妻人人澡人人爽人人精品| 国产激情综合五月久久| 在线看片国产| 伊人久久成人| 亚洲中文综合| 久久久999久久久999精神| 国产福利在线| 无码国精品一区二区免费蜜桃| 一区二区三区不卡在线| 九色PORNY蝌蚪自拍视频 | 91小仙女jK白丝袜呻吟| H片在线观看| 高清人妻无码| 五月天婷婷影院影院| 91精品国产99久久久久久天美 | 中文在线字幕电视剧免费平台| 91精品国产成人观看| 欧美日韩国| 久久婷婷婬片A片AAA| 亚洲第一毛片| 9999久久久久| 中国人妻HDbute熟睡| 3p视频网站| AV中文在线观看| 91青青| www.伊人大香蕉| 无码六区| 微拍福利一区| 久久免费黄色视频| 久久99无码| 国语操逼| 欧美在线小视频| 国产黄色免费看| 男人天堂无码成人| 国产热99| 日韩AV免费在线| 人人操人人射| 国产欧美第一页| 上海熟妇搡BBBB搡BBBB| 青青草免费在线| TheAV精尽人亡av| 国产无遮挡又黄又爽又色| 乱子伦】国产精品| 欧美人操逼一二区| 久久国产2025| 香蕉视频一区| 日韩国产高清无码| 成人做爰免费网站2023| 精品国产精品三级精品AV网址 | 中文字幕北条麻妃在线| 欧美三级大片| 大香蕉精品在线| 蝌蚪窝免费在线视频| 国产丰满乱子伦无码| 天天摸天天日| 激情综合五月天| 国产欧美一区二区三区国产幕精品| 日批视频免费观看| 波多野结衣无码一区二区| 午夜成人精品视频| 黑人av在线观看| 天天天天日天天干| www.蜜桃视频| 日韩一级在线| 欧美试看| 91探花秘在线播放偷拍| 有码在线| 日韩无码人妻系列| 天天艹天天干| 日韩中出| 中文字幕午夜福利| 欧美日韩日逼视频| 爱爱爱免费视频| 欧美色综合| 五月丁香婷中文字幕| 国产精品揄拍500视频| 亚洲A√| 欧洲精品在线视频| WWW久久久| 在线免费观看黄色小视频| 久草视频在线播放| 成人黃色A片免费看| 亚洲调教| 亚洲无码在线免费观看| 亚洲青娱乐在线| 日韩人妻码一区二区三区| 成人精品在线视频| 中文字幕日韩无码电影| 大地影视官网第三页入口| 久久婷婷六月综合| 日韩一级在线观看| 黄A在线| 国产综合久久久7777777 | 91一级A片在线观看| 日韩AV一二三| 亚洲免费视频观看| 一级婬片A片AAAAA毛片| 日韩大片在线观看| 国产精品视频播放| 欧美色图1| 国产成人精品久久久| 丁香五月天视频| 黄色av免费看| 日本一区不卡| 嫩BBB搡BBB搡BBB搡| 国产一视频| 国产精品第二页| 伊人99| 成人视频免费在线观看| 在线观看免费黄视频| 三级av无码| 国产高清视频| 久久九九电影| 色婷婷AV国产精品| 丝袜东京热AV高清| 麻豆成人精品国产免费| 77777色婷婷| 韩国无码中文| 国产在线拍偷自揄拍无码一区二区 | 亚洲性网| 国产成人三级在线播放| 老太色HD色老太HD| 91大神在线免费看| 黄网站在线免费| 91拍真实国产伦偷精品| 老太色HD色老太HD.|