<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          10分鐘了解啥是數(shù)倉

          共 5294字,需瀏覽 11分鐘

           ·

          2021-05-19 20:40

          ????關(guān)注后回復(fù) “進(jìn)群” ,拉你進(jìn)程序員交流群????

          作者丨sowhat1412

          來源丨sowhat1412

          隨著互聯(lián)網(wǎng)及物聯(lián)網(wǎng)等技術(shù)發(fā)展,越來越多的數(shù)據(jù)被生成,如何有效利用這些數(shù)據(jù)就成為了企業(yè)決勝的法寶了。大型公司會(huì)基于數(shù)據(jù)做出BI、推薦系統(tǒng)、決策支持、統(tǒng)計(jì)分析、報(bào)表等業(yè)務(wù)。

          其中數(shù)據(jù)存儲(chǔ)涉及眾多知識(shí)點(diǎn),本文目的就是對(duì)這些名詞術(shù)語及內(nèi)涵進(jìn)行解析,便于讀者對(duì)數(shù)據(jù)平臺(tái)相關(guān)的概念有全面的認(rèn)識(shí)。

          1 OLTP VS OLAP

          1970年隨著關(guān)系數(shù)據(jù)庫理論的提出,誕生了一系列經(jīng)典的RDBMS,如MySQL、Oracle、SQL Server、DB2等。這些RDBMS為社會(huì)信息化的發(fā)展做出的重大貢獻(xiàn)。然而隨著數(shù)據(jù)庫使用范圍的不斷擴(kuò)大,它被逐步劃分為操作型數(shù)據(jù)庫OLTP分析型數(shù)據(jù)庫OLAP。

          1.1 OLTP

          操作型數(shù)據(jù)庫OLTP(On-Line Transaction Processing 聯(lián)機(jī)事務(wù)處理)也可以稱面向交易的處理系統(tǒng),它是針對(duì)具體業(yè)務(wù)在數(shù)據(jù)庫聯(lián)機(jī)的日常操作,通常對(duì)記錄進(jìn)行CRUD。

          OLTP模式下用戶較為關(guān)心操作的響應(yīng)時(shí)間、數(shù)據(jù)的安全性、完整性并發(fā)支持的用戶數(shù)等問題。傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)作為數(shù)據(jù)管理的主要手段,主要用于操作型處理。

          1.2 OLAP

          分析型數(shù)據(jù)庫OLAP(On-Line Analytical Processing)叫聯(lián)機(jī)分析處理,主要用于歷史數(shù)據(jù)分析。這類數(shù)據(jù)庫作為公司的單獨(dú)數(shù)據(jù)存儲(chǔ),負(fù)責(zé)利用歷史數(shù)據(jù)對(duì)公司各主題域進(jìn)行統(tǒng)計(jì)分析。為啥要分成操作型跟分析型呢?原因是他們有太多不同了!

          對(duì)比

          1.3 操作型OLTP VS 分析型OLAP

          之所以區(qū)分為操作型跟分析型,那是因?yàn)檫@倆的核心功能不同!前者主要是面向操作,后者主要是面向分析,在細(xì)節(jié)上存在眾多差異。

          1.3.1 數(shù)據(jù)組成差別
          1. 數(shù)據(jù)時(shí)間范圍不同:一般操作型數(shù)據(jù)庫只存放90天內(nèi)數(shù)據(jù),分析型數(shù)據(jù)存放數(shù)年內(nèi)數(shù)據(jù),所以這倆要進(jìn)行物理分離。

          2. 數(shù)據(jù)細(xì)節(jié)差異不同:操作型數(shù)據(jù)庫主要存放細(xì)節(jié)數(shù)據(jù),匯總數(shù)據(jù)是動(dòng)態(tài)技術(shù)而成的。分析型數(shù)據(jù)庫中既存放細(xì)節(jié)數(shù)據(jù)又存放用戶關(guān)系的匯總數(shù)據(jù)。

          3. 數(shù)據(jù)時(shí)間表示不同:操作型數(shù)據(jù)庫反應(yīng)的是當(dāng)前狀態(tài),分析師數(shù)據(jù)庫中既又當(dāng)前狀態(tài)又有過去各時(shí)刻的快照數(shù)據(jù)。

          1.3.2 技術(shù)差別
          1. 查詢數(shù)量跟頻率不同:操作型數(shù)據(jù)庫查詢頻率但量小,分析型數(shù)據(jù)庫查詢量大但頻率小。

          2. 數(shù)據(jù)更新不同:操作型數(shù)據(jù)庫設(shè)計(jì)到用戶CRUD。分析型數(shù)據(jù)庫屬于歸檔性質(zhì)存儲(chǔ),只提供查詢。

          3. 數(shù)據(jù)冗余性不同:操作型數(shù)據(jù)庫在設(shè)計(jì)表的時(shí)候就會(huì)減少數(shù)據(jù)冗余避免更新復(fù)雜。分析型數(shù)據(jù)庫中則只有查詢功能,因此數(shù)據(jù)冗余性一般都存在。

          1.3.3 功能差別
          1. 數(shù)據(jù)讀者不同:操作型數(shù)據(jù)的使用者是業(yè)務(wù)環(huán)節(jié)下的各個(gè)角色,比如用戶、商家等。分析型數(shù)據(jù)庫一般只有研發(fā)跟數(shù)據(jù)分析人員專門使用。

          2. 定位不同:操作型數(shù)據(jù)庫主要是面向應(yīng)用層的數(shù)據(jù)庫,是為了支持具體業(yè)務(wù)而存在的。分析型數(shù)據(jù)庫是針對(duì)特定業(yè)務(wù)主體域的分析人物而創(chuàng)建的,是面向主體型數(shù)據(jù)庫

          2 數(shù)倉

          2.1 數(shù)倉簡(jiǎn)介

          數(shù)倉發(fā)展

          隨著人類IT發(fā)展,數(shù)據(jù)越來越多被產(chǎn)生,并且這些數(shù)據(jù)還可能跨部門,跨業(yè)務(wù)。如何把數(shù)據(jù)集成起來進(jìn)行OLAP是個(gè)巨大挑戰(zhàn)。

          數(shù)據(jù)倉庫(Data Warehouse)應(yīng)運(yùn)而生,數(shù)據(jù)倉庫是一個(gè)面向主題的、集成的、相對(duì)穩(wěn)定的、反映歷史變化的數(shù)據(jù)集合,用于支持管理中的決策制定。

          數(shù)據(jù)倉庫是伴隨著企業(yè)信息化發(fā)展起來的,在企業(yè)信息化的過程中,隨著信息化工具的升級(jí)和新工具的應(yīng)用,數(shù)據(jù)量變的越來越大,數(shù)據(jù)格式越來越多,決策要求越來越苛刻,數(shù)據(jù)倉庫技術(shù)也在不停的發(fā)展。數(shù)據(jù)倉庫的趨勢(shì):

          1. 實(shí)時(shí)數(shù)據(jù)倉庫以滿足實(shí)時(shí)化&自動(dòng)化決策需求。

          2. 大數(shù)據(jù)&數(shù)據(jù)湖以支持大量&復(fù)雜數(shù)據(jù)類型(文本、圖像、視頻、音頻)。

          數(shù)倉發(fā)展

          對(duì)于數(shù)倉可以理解為原來各個(gè)數(shù)據(jù)孤島中的數(shù)據(jù)可能存儲(chǔ)位置、存儲(chǔ)格式、編程語言等各個(gè)方面不同。數(shù)倉要做的就是把數(shù)據(jù)按照所需格式提取出來,進(jìn)行轉(zhuǎn)換、過濾、清洗。最終裝載到數(shù)據(jù)倉庫,整個(gè)過程也叫ETL。

          1. 提取 Extraction:表示從操作型數(shù)據(jù)庫搜集指定數(shù)據(jù)。

          2. 轉(zhuǎn)換 Transformation:表示將數(shù)據(jù)轉(zhuǎn)化為指定格式,并進(jìn)行數(shù)據(jù)清洗保證數(shù)據(jù)質(zhì)量。

          3. 加載 Load:加載過程表示將轉(zhuǎn)換過后滿足指定格式的數(shù)據(jù)加載進(jìn)數(shù)據(jù)倉庫。

          隨著數(shù)倉的不斷普及跟使用,信息產(chǎn)業(yè)就開始從以關(guān)系型數(shù)據(jù)庫為基礎(chǔ)的運(yùn)營(yíng)式系統(tǒng)慢慢向決策支持系統(tǒng)發(fā)展。這個(gè)決策支持系統(tǒng),其實(shí)就是我們現(xiàn)在說的商務(wù)智能(Business Intelligence)即BI。

          可以這么說,數(shù)據(jù)倉庫為OLAP解決了數(shù)據(jù)來源問題,數(shù)據(jù)倉庫和OLAP互相促進(jìn)發(fā)展,進(jìn)一步驅(qū)動(dòng)了商務(wù)智能的成熟,但真正將商務(wù)智能賦予智能的,其實(shí)是數(shù)據(jù)挖掘。

          2.2 數(shù)倉特征

          2.2.1 面向主題

          面向主題特性是數(shù)據(jù)倉庫和操作型數(shù)據(jù)庫的根本區(qū)別。

          1. 操作型數(shù)據(jù)庫是為了支撐各種業(yè)務(wù)而建立,是按照業(yè)務(wù)功能進(jìn)行組織的。

          2. 分析型數(shù)據(jù)庫則是為了對(duì)從各種繁雜業(yè)務(wù)中抽象出來的分析主題進(jìn)行分析而建立。

          3. 所謂主題是指用戶使用數(shù)據(jù)倉庫進(jìn)行決策時(shí)所關(guān)心的重點(diǎn)方面,如:收入、客戶、銷售渠道等。所謂面向主題,是指數(shù)據(jù)倉庫內(nèi)的信息是按主題進(jìn)行組織的。

          2.2.2 集成性

          集成性指數(shù)據(jù)倉庫中的信息不是從各個(gè)業(yè)務(wù)系統(tǒng)中簡(jiǎn)單抽取出來的,而是經(jīng)過一系列加工、整理和匯總的過程,因此數(shù)據(jù)倉庫中的信息是關(guān)于整個(gè)企業(yè)的一致的全局信息。

          2.2.3 企業(yè)范圍

          數(shù)據(jù)倉庫內(nèi)的數(shù)據(jù)是面向公司全局的。比如某個(gè)主題域?yàn)槌杀?,則全公司和成本有關(guān)的信息都會(huì)被匯集進(jìn)來。

          2.2.4 歷史性

          較之操作型數(shù)據(jù)庫,數(shù)據(jù)倉庫的時(shí)間跨度通常比較長(zhǎng)。前者通常保存幾個(gè)月,后者可能幾年甚至幾十年。

          2.2.5 時(shí)變性

          時(shí)變性是指數(shù)據(jù)倉庫包含來自其時(shí)間范圍不同時(shí)間段的數(shù)據(jù)快照。有了這些數(shù)據(jù)快照以后,用戶便可將其匯總,通過這些信息,可以對(duì)企業(yè)的發(fā)展歷程和未來趨勢(shì)做出定量分析和預(yù)測(cè)。

          2.3  數(shù)倉架構(gòu)

          2.3.1 架構(gòu)

          數(shù)據(jù)倉庫標(biāo)準(zhǔn)上可以分為四層:ODS(臨時(shí)存儲(chǔ)層)、PDW(數(shù)據(jù)倉庫層)、DM(數(shù)據(jù)集市層)、APP(應(yīng)用層)。

          DWBI

          各個(gè)系統(tǒng)的數(shù)據(jù)通過ETL同步到操作性數(shù)據(jù)倉庫ODS中,對(duì)ODS數(shù)據(jù)進(jìn)行面向主題域建模形成DW(數(shù)據(jù)倉庫),DM是針對(duì)某一個(gè)業(yè)務(wù)領(lǐng)域建立模型,具體用戶(決策層)查看DM生成的報(bào)表。
          1. 臨時(shí)存儲(chǔ)數(shù)據(jù)運(yùn)營(yíng)層:ODS(Operational Data Store)
            ODS層將來自不同數(shù)據(jù)源的數(shù)據(jù)通過ETL(Extract-Transform-Load)過程匯聚整合成面向主題的、集成的、企業(yè)全局的、一致的數(shù)據(jù)集合?,F(xiàn)在可選擇的大數(shù)據(jù)同步技術(shù)也比較多,如datax,canal,kafka等。這一層的主要目的是把源系統(tǒng)的數(shù)據(jù)基本原樣(有些數(shù)據(jù)敏感等級(jí)高不同步)的同步到大數(shù)據(jù)平臺(tái),因此比較容易進(jìn)行方案的統(tǒng)一。

          2. 倉庫層:DW(Data Warehouse)
            DW為數(shù)據(jù)倉庫層,DW層的數(shù)據(jù)應(yīng)該是一致的、準(zhǔn)確的、干凈的數(shù)據(jù)。主要有清洗,拆分,整合,標(biāo)準(zhǔn)化,備份,隔離幾個(gè)任務(wù)。即對(duì)源系統(tǒng)數(shù)據(jù)進(jìn)行了清洗后的數(shù)據(jù)。這一層的數(shù)據(jù)一般是遵循數(shù)據(jù)庫第三范式的,在DW層會(huì)保存BI系統(tǒng)中所有的歷史數(shù)據(jù),例如保存10年的數(shù)據(jù)。

          1. DW : Data Warehouse 翻譯成數(shù)據(jù)倉庫,DW由下到上分為 DWDDWB、DWS。

          2. DWD:Warehouse Detail 細(xì)節(jié)數(shù)據(jù)層,有的也稱為 ODS層,是業(yè)務(wù)層與數(shù)據(jù)倉庫的隔離層

          3. DWB:Data Warehouse Base 基礎(chǔ)數(shù)據(jù)層,存儲(chǔ)的是客觀數(shù)據(jù),一般用作中間層,可以認(rèn)為是大量指標(biāo)的數(shù)據(jù)層。

          4. DWS:Data Warehouse Service 服務(wù)數(shù)據(jù)層,基于DWB上的基礎(chǔ)數(shù)據(jù),整合匯總成分析某一個(gè)主題域的服務(wù)數(shù)據(jù),一般是寬表。

          1. 集市層:DM(Data Mart)
            這一層有一個(gè)更直觀的叫法是寬表層,前面提到這一層主要是為了解決某一類的分析問題,也就是面向分析,既然是面向分析,那么一般來講是多個(gè)業(yè)務(wù)過程,而將多個(gè)業(yè)務(wù)過程融合成一個(gè)分析主題,勢(shì)必會(huì)關(guān)聯(lián)很多數(shù)據(jù)。寬表就是這樣來的。在OLAP分析工具還不是很成熟的時(shí)候,仍然建議構(gòu)建多維寬表,這樣可以避免過多的模型間的關(guān)聯(lián)操作。一般用于機(jī)器學(xué)習(xí)的特征寬表存在于這一層。集市層構(gòu)建的好壞有一個(gè)比較好的衡量標(biāo)準(zhǔn)就是是否可以滿足超過80%的應(yīng)用層數(shù)據(jù)需要,剩下的20%來源于數(shù)倉層。

          2. 應(yīng)用層:Application層
            該層數(shù)據(jù)完全是為了滿足具體的分析需求而構(gòu)建的數(shù)據(jù),從數(shù)據(jù)的廣度來說,則并不一定會(huì)覆蓋所有業(yè)務(wù)數(shù)據(jù),而是DM層數(shù)據(jù)的一個(gè)真子集,從某種意義上來說是DM層數(shù)據(jù)的一個(gè)重復(fù)。面向應(yīng)用的特點(diǎn)一般有以下幾個(gè)特征,靈活多變,簡(jiǎn)單。靈活多變是說業(yè)務(wù)需要各種形式或者各種自定義口徑的數(shù)據(jù),如KV結(jié)構(gòu)的,各種條件來計(jì)算的。簡(jiǎn)單指的是數(shù)據(jù)一般是高度匯總的,如報(bào)表或者核心KPI指標(biāo)。

          2.3.2 數(shù)倉分層原因
          1. 用空間換時(shí)間:通過大量的預(yù)處理來提升應(yīng)用系統(tǒng)的效率,因此數(shù)據(jù)倉庫會(huì)存在大量冗余的數(shù)據(jù)。

          2. 解耦:不分層的話如果源業(yè)務(wù)系統(tǒng)的業(yè)務(wù)規(guī)則發(fā)生變化將會(huì)影響整個(gè)數(shù)據(jù)清洗過程,工作量巨大。

          3. 簡(jiǎn)化:通過數(shù)據(jù)分層管理可以簡(jiǎn)化數(shù)據(jù)清洗的過程,因?yàn)榘言瓉硪徊降墓ぷ鞣值搅硕鄠€(gè)步驟去完成,當(dāng)數(shù)據(jù)發(fā)生錯(cuò)誤的時(shí),往往只需要局部調(diào)整某個(gè)步驟即可。

          2.4 元數(shù)據(jù)介紹

          2.4.1 元數(shù)據(jù)定義

          數(shù)倉的元數(shù)據(jù)Metadata是關(guān)于數(shù)據(jù)倉庫中數(shù)據(jù)的數(shù)據(jù)。它的作用類似于數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)字典,可以簡(jiǎn)答理解為一本書的目錄,保存了邏輯數(shù)據(jù)結(jié)構(gòu)、文件、地址和索引等信息。廣義上講,元數(shù)據(jù)描述了數(shù)據(jù)倉庫內(nèi)數(shù)據(jù)的結(jié)構(gòu)和建立方法的數(shù)據(jù),一般我們會(huì)用關(guān)系型數(shù)據(jù)庫來存儲(chǔ)這些數(shù)據(jù),比如MySQL。

          元數(shù)據(jù)是數(shù)據(jù)倉庫管理系統(tǒng)的重要組成部分,元數(shù)據(jù)管理器是企業(yè)級(jí)數(shù)據(jù)倉庫中的關(guān)鍵組件,貫穿數(shù)據(jù)倉庫構(gòu)建的整個(gè)過程,直接影響著數(shù)據(jù)倉庫的構(gòu)建、使用和維護(hù)。

          1. 構(gòu)建數(shù)據(jù)倉庫的主要步驟之一是ETL。這時(shí)元數(shù)據(jù)將發(fā)揮重要的作用,它定義了源數(shù)據(jù)系統(tǒng)到數(shù)據(jù)倉庫的映射、數(shù)據(jù)轉(zhuǎn)換的規(guī)則、數(shù)據(jù)倉庫的邏輯結(jié)構(gòu)、數(shù)據(jù)更新的規(guī)則、數(shù)據(jù)導(dǎo)入歷史記錄以及裝載周期等相關(guān)內(nèi)容。數(shù)據(jù)抽取和轉(zhuǎn)換的專家以及數(shù)據(jù)倉庫管理員正是通過元數(shù)據(jù)高效地構(gòu)建數(shù)據(jù)倉庫。

          2. 用戶在使用數(shù)據(jù)倉庫時(shí),通過元數(shù)據(jù)訪問數(shù)據(jù),明確數(shù)據(jù)項(xiàng)的含義以及定制報(bào)表。

          3. 數(shù)據(jù)倉庫的規(guī)模及其復(fù)雜性離不開正確的元數(shù)據(jù)管理,包括增加或移除外部數(shù)據(jù)源,改變數(shù)據(jù)清洗方法,控制出錯(cuò)的查詢以及安排備份等。

          元數(shù)據(jù)可分為技術(shù)元數(shù)據(jù)業(yè)務(wù)元數(shù)據(jù)。

          1. 技術(shù)元數(shù)據(jù)為開發(fā)和管理數(shù)據(jù)倉庫的IT人員使用,它描述了與數(shù)據(jù)倉庫開發(fā)、管理和維護(hù)相關(guān)的數(shù)據(jù),包括數(shù)據(jù)源信息、數(shù)據(jù)轉(zhuǎn)換描述、數(shù)據(jù)倉庫模型、數(shù)據(jù)清洗與更新規(guī)則、數(shù)據(jù)映射和訪問權(quán)限等。

          2. 業(yè)務(wù)元數(shù)據(jù)為管理層和業(yè)務(wù)分析人員服務(wù),從業(yè)務(wù)角度描述數(shù)據(jù),包括商務(wù)術(shù)語、數(shù)據(jù)倉庫中有什么數(shù)據(jù)、數(shù)據(jù)的位置和數(shù)據(jù)的可用性等,幫助業(yè)務(wù)人員更好地理解數(shù)據(jù)倉庫中哪些數(shù)據(jù)是可用的以及如何使用。

          由上可見,元數(shù)據(jù)不僅定義了數(shù)據(jù)倉庫中數(shù)據(jù)的模式、來源、抽取和轉(zhuǎn)換規(guī)則等,而且是整個(gè)數(shù)據(jù)倉庫系統(tǒng)運(yùn)行的基礎(chǔ),元數(shù)據(jù)把數(shù)據(jù)倉庫系統(tǒng)中各個(gè)松散的組件聯(lián)系起來,組成了一個(gè)有機(jī)的整體,如圖所示

          在這里插入圖片描述
          2.4.2 元數(shù)據(jù)作用

          在數(shù)倉中元數(shù)據(jù)的主要作用如下:

          1. 描述哪些數(shù)據(jù)在數(shù)據(jù)倉庫中,幫助決策分析者對(duì)數(shù)據(jù)倉庫的內(nèi)容定位。

          2. 定義數(shù)據(jù)進(jìn)入數(shù)據(jù)倉庫的方式,作為數(shù)據(jù)匯總、映射和清洗的指南。

          3. 記錄業(yè)務(wù)事件發(fā)生而隨之進(jìn)行的數(shù)據(jù)抽取工作時(shí)間安排。

          4. 記錄并檢測(cè)系統(tǒng)數(shù)據(jù)一致性的要求和執(zhí)行情況。

          5. 評(píng)估數(shù)據(jù)質(zhì)量。

          6. 相當(dāng)于寫了一部數(shù)據(jù)用戶指南手冊(cè)

          2.5 數(shù)據(jù)治理

          如果你做過推薦系統(tǒng)跟BI報(bào)表等基于數(shù)據(jù)的系統(tǒng),你就會(huì)知道數(shù)據(jù)治理的重要性!如果做過機(jī)器學(xué)習(xí)就會(huì)知道數(shù)據(jù)遠(yuǎn)遠(yuǎn)比算法更重要。通常我們對(duì)數(shù)據(jù)質(zhì)量的判斷來自準(zhǔn)確性、完整性和一致性三方面,然而這三點(diǎn)原始數(shù)據(jù)通常并不具備,原始數(shù)據(jù)一般有如下留個(gè)特點(diǎn)。

          1. 數(shù)據(jù)重復(fù)

          2. 字段名跟結(jié)構(gòu)前后不一致

          3. 某些記錄存在字段缺失

          4. 原始數(shù)據(jù)來源跟格式各不相同

          5. 重點(diǎn)數(shù)據(jù)存在異常值

          在做數(shù)據(jù)清洗時(shí),一般有如下幾點(diǎn)規(guī)則可尋:

          1. 確保原始數(shù)據(jù)的準(zhǔn)確輸入

          2. 小心處理NA值跟字符串為空的字段

          3. 檢查字符型變量?jī)H包含有效值

          4. 檢查數(shù)值型變量在預(yù)定范圍內(nèi)

          5. 檢查是否存在缺失數(shù)據(jù)

          6. 檢查并刪除重復(fù)數(shù)據(jù)

          7. 檢查特殊值是否唯一

          8. 檢查是否存在無效數(shù)據(jù)

          參考

          1. 數(shù)倉簡(jiǎn)介:https://www.cnblogs.com/coco2015/p/11299620.html

          2. 數(shù)倉四萬字:https://t.1yb.co/lQt2

          -End-

          最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

          點(diǎn)擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

          在看點(diǎn)這里好文分享給更多人↓↓

          瀏覽 18
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.肏屄 | 安徽妇女BBBWBBBwm | 欧美成人手机在线砚看 | 一本道中文字幕 | 三级视频成人在线观看 |