諸多老牌數(shù)據(jù)倉(cāng)庫(kù)廠商當(dāng)前,Snowflake如何創(chuàng)近12年最大IPO金額

      網(wǎng)友投稿 1107 2025-03-31

      1.引子

      云數(shù)據(jù)倉(cāng)庫(kù)Snowflake 9月份IPO的新聞引起了業(yè)界的關(guān)注。2012年才成立的Snowflake,一上市就來個(gè)驚雷,IPO籌資38億美元,創(chuàng)近12年來最大IPO金額。

      在數(shù)據(jù)倉(cāng)庫(kù)/分析領(lǐng)域,有傳統(tǒng)廠商Oracle,Teradata,開源軟件Hadoop,云廠商AWS Redshift,Google Bigquery,Snowflake成功的技術(shù)原因是什么?

      先從2016年Snowflake在SIGMOD上發(fā)表的論文入手。

      2. The Snowflake Elastic Data Warehouse論文

      注:文中部分圖,論文中沒有,我個(gè)人理解和補(bǔ)充的。

      2.1.數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)比對(duì)

      Share everything VS Share nothing

      傳統(tǒng)數(shù)倉(cāng)架構(gòu)

      Share every everything的典型代表如Oracle 一體機(jī)

      Share nothing的代表。例如Greenplum,ClickHouse,PGXC/XL

      MPP架構(gòu)(PGXL)

      Snowflake的架構(gòu),強(qiáng)調(diào)多租和數(shù)據(jù)共享:

      2.2.Snowflake的關(guān)鍵特征包括:

      純SaaS體驗(yàn)

      支持關(guān)系型(ANSI)和事務(wù)

      支持半結(jié)構(gòu)化數(shù)據(jù)處理,例如JSON和Avro

      彈性,存儲(chǔ)和計(jì)算資源可獨(dú)立擴(kuò)展,不影響性能和并發(fā)查詢

      高可靠,支持節(jié)點(diǎn),集群,甚至整個(gè)數(shù)據(jù)中心down掉都沒有問題

      持久性,支持?jǐn)?shù)據(jù)clone,刪除撤回和跨region備份

      安全,端到端數(shù)據(jù)加密,SQL級(jí)別基于角色的訪問控制

      Multi-Cluster, Shared Data Architecture

      Snowflake架構(gòu)分為三層,存儲(chǔ),計(jì)算和服務(wù)

      Data Storage

      This layer uses Amazon S3 to store table data and query results.

      注:2016年的論文發(fā)表時(shí)的存儲(chǔ)支持情況,當(dāng)前除了支持S3,還支持 Google Cloud Storage, Microsoft Azure blob storage。避免了云服務(wù)商的lock in。

      諸多老牌數(shù)據(jù)倉(cāng)庫(kù)廠商當(dāng)前,Snowflake如何創(chuàng)近12年最大IPO金額

      這也是共有云服務(wù)客戶關(guān)心的問題。

      計(jì)算層

      Virtual Warehouses

      The “muscle” of the system. This layer handles query execution within elastic clusters of virtual machines, called virtual warehouses.

      服務(wù)層

      Cloud Services

      The “brain” of the system. This layer is a collection of services that manage virtual warehouses,queries, transactions, and all the metadata that goes

      around that: database schemas, access control information, encryption keys, usage statistics and so forth.

      2.3存儲(chǔ)層:

      數(shù)據(jù)保存在S3上,和本地存儲(chǔ)訪問相比,時(shí)延比較高,S3支持PUT/GET/DELETE 簡(jiǎn)單的訪問方式。S3還有個(gè)特點(diǎn)是,文件不能在文件尾追加,只能刪除或覆蓋。S3支持GET接口獲取文件的部分?jǐn)?shù)據(jù)。

      這些特點(diǎn)對(duì)Snowflake的表文件格式設(shè)計(jì)和并發(fā)訪問模式有重大影響。

      表被水平分區(qū)成多個(gè)大的,不變的文件。文件等同于傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)的page或block。每個(gè)文件內(nèi),每個(gè)列被分組,并高度壓縮。這種存儲(chǔ)模式學(xué)名叫PAX或行列混合。每個(gè)表文件的文件頭,包含元數(shù)據(jù)信息,包括每個(gè)列在文件中的偏移量。

      Snowflake使用PAX存儲(chǔ)格式

      PAX存儲(chǔ)格式,可以參考附件的參考論文。

      2.4計(jì)算層:

      計(jì)算層是通過虛擬集群來對(duì)外提供邏輯上獨(dú)立的數(shù)倉(cāng),叫虛擬數(shù)倉(cāng)。VW(虛擬數(shù)倉(cāng))是純的計(jì)算資源,可以按需創(chuàng)建或銷毀。創(chuàng)建或銷毀不影響數(shù)據(jù)庫(kù)狀態(tài)。

      注:MPP或Hadoop體系的存算一體比存算分離架構(gòu)系統(tǒng)有低時(shí)延的訪問優(yōu)勢(shì)。

      數(shù)據(jù)來源:見存算分離性能參考

      沒有計(jì)算存儲(chǔ)訪問本地文件系統(tǒng)的低時(shí)延的優(yōu)點(diǎn),Snowflake在計(jì)算層增加了一層cache來緩存文件和元數(shù)據(jù),解決文件遠(yuǎn)程訪問帶來的時(shí)延問題。

      2.4.1計(jì)算層的彈性和隔離:

      VM(虛擬機(jī))分給一個(gè)獨(dú)立的用戶。VM(虛擬機(jī))組成虛擬數(shù)倉(cāng)(VW)。組成虛擬數(shù)倉(cāng)的一個(gè)個(gè)虛擬機(jī)叫WorkNode,WorkNode不跨VM共享。這樣可以保證查詢時(shí)的性能隔離(會(huì)帶來資源利用率低的問題,后續(xù)版本會(huì)考慮共享)。

      查詢提交時(shí),每個(gè)VW的worknode創(chuàng)建一個(gè)工作進(jìn)程,工作進(jìn)程的生命周期僅僅存活于查詢時(shí)。

      進(jìn)程失敗可以進(jìn)行嘗試。部分嘗試后續(xù)版本會(huì)支持。

      每個(gè)用戶可能會(huì)有多個(gè)VW。每個(gè)VW可以訪問共享的表,不需要物理的數(shù)據(jù)copy。

      本地緩存和file stealing:

      每個(gè)worknode在本地磁盤上維護(hù)了表數(shù)據(jù)的緩存。緩存是表文件的內(nèi)容,也就是本節(jié)點(diǎn)過去訪問S3對(duì)象。精確的講,緩存包含文件頭和每個(gè)列對(duì)應(yīng)文件。緩存在worknode的生命周期,在當(dāng)前和隨后的work process間共享。緩存采用LRU算法進(jìn)行管理。

      為了提升緩存命中率,避免VW內(nèi)的work node建的表文件冗余,查詢優(yōu)化器根據(jù)表文件名稱,采用一致性哈希的算法把輸入的文件?分配到work node。隨后的或并發(fā)的查詢,如果訪問同一個(gè)表文件,將分配到同一個(gè)worknode。

      補(bǔ)一致性hash的圖

      一致性hash示意

      在Snowflake中,一致性哈希的實(shí)現(xiàn)采用懶實(shí)現(xiàn)的方式。當(dāng)work node變化(例如節(jié)點(diǎn)失敗或VM的規(guī)格調(diào)整),數(shù)據(jù)不會(huì)立刻被調(diào)度(shuffle)。實(shí)際上,Snowflake依賴LRU替換策略來最終替換緩存內(nèi)容。

      這種解決方案緩解了替換多個(gè)查詢緩存內(nèi)容的代價(jià),帶來了更好的可用性。share nothing應(yīng)用系統(tǒng)是立刻替換。

      這種懶實(shí)現(xiàn)的方式對(duì)系統(tǒng)實(shí)現(xiàn)也帶來了簡(jiǎn)化,系統(tǒng)沒有降級(jí)模式。

      除了緩存,傾斜處理在云數(shù)倉(cāng)中也特別重要。一些節(jié)點(diǎn)或許因?yàn)樘摂M化或網(wǎng)絡(luò)方面的原因?qū)е卤绕渌?jié)點(diǎn)慢。Snowflake在掃描層進(jìn)行解決切斜問題。當(dāng)一個(gè)工作進(jìn)程完成輸入文件集的掃描,工作進(jìn)程需要從其他工作進(jìn)程請(qǐng)求額外的文件時(shí),我們采用了一種 file stealing(Snowflake自己起的名字)的方式。

      當(dāng)一個(gè)工作進(jìn)程發(fā)現(xiàn)在輸入文件集中有多個(gè)剩余的文件時(shí),收到file stealing的請(qǐng)求時(shí),會(huì)轉(zhuǎn)移文件的所有權(quán)到請(qǐng)求工作進(jìn)程。請(qǐng)求者直接從S3上下載文件。這種設(shè)計(jì)保證file stealing不會(huì)對(duì)被請(qǐng)求的工作進(jìn)程帶來額外的負(fù)載。

      2.4.2執(zhí)行引擎:

      列式存儲(chǔ)。列式存儲(chǔ)被認(rèn)為比行存儲(chǔ)在數(shù)據(jù)分析中要好。

      列式存儲(chǔ)可以更充分利用CPU緩存,SIMD指令集,更多的壓縮調(diào)優(yōu)的機(jī)會(huì)。

      向量執(zhí)行。

      Snowflake采用向量化執(zhí)行,與MapReduce相比,避免中間結(jié)果的物化。向量執(zhí)行方式,數(shù)據(jù)按流水線方式執(zhí)行,每批可以處理一個(gè)列的數(shù)千行記錄。向量化執(zhí)行(MonetDB/X100首先采用),可以節(jié)省IO,極大的改善緩存效率。

      基于推的執(zhí)行Push-based execution 是指關(guān)系算子把他們的結(jié)果推給下游的算子,而不是等這些下游算子來拉取數(shù)據(jù)(經(jīng)典的火山模型采用拉取數(shù)據(jù)的方式)。基于推的執(zhí)行提升緩存效率,因?yàn)楣?jié)省了控制流邏輯。基于推的執(zhí)行也讓Snowflake可以高效地處理DAG形狀的執(zhí)行計(jì)劃,可以對(duì)共享/流水線的中間結(jié)果進(jìn)行優(yōu)化。

      與傳統(tǒng)查詢處理相比,Snowflake沒有額外的負(fù)載要處理,例如查詢時(shí)不需要進(jìn)行事務(wù)管理。

      對(duì)查詢引擎來講,查詢時(shí),文件集是不變的。

      同樣,也沒有緩沖池。

      2.5云服務(wù)層:

      Metadata such as catalog objects, which table consists of which S3 files, statistics, locks, transaction logs, etc. is stored in a scalable, transactional key-value store, which is part of the Cloud Services layer

      云服務(wù)層是多租的。云服務(wù)層的每個(gè)服務(wù)(訪問控制,查詢優(yōu)化,事務(wù)管理..)是長(zhǎng)期存在并在多個(gè)用戶間共享。

      考慮到高可用,每個(gè)服務(wù)都有副本。單個(gè)服務(wù)的失敗不會(huì)影響數(shù)據(jù)的丟失或可用。但可以會(huì)導(dǎo)致正在運(yùn)行的查詢失敗。

      2.5.1查詢管理和優(yōu)化

      Snowflake的查詢優(yōu)化器遵循經(jīng)典的 Cascades style,with top-down cost-based optimization

      所有的統(tǒng)計(jì)信息當(dāng)數(shù)據(jù)加載或更新時(shí)自動(dòng)進(jìn)行維護(hù)。

      Snowflake不使用索引。執(zhí)行計(jì)劃的搜索空間比其他系統(tǒng)要小很多。

      執(zhí)行計(jì)劃空間通過延遲到執(zhí)行時(shí)間來進(jìn)一步降低。例如join時(shí)的數(shù)據(jù)分布。

      這種設(shè)計(jì)減少了執(zhí)行計(jì)劃不準(zhǔn)的情況。同時(shí)增加了健壯性。

      一旦優(yōu)化器完成,執(zhí)行計(jì)劃被分布到所有的work node。

      當(dāng)查詢執(zhí)行時(shí),云服務(wù)持續(xù)跟蹤查詢狀態(tài),收集性能數(shù)據(jù),檢測(cè)節(jié)點(diǎn)失敗。所有信息和統(tǒng)計(jì)信息被保存,用于審計(jì)和性能分析。

      2.5.2并發(fā)控制

      通過SI(Snapshot Isolation)快照隔離方式來實(shí)現(xiàn)ACID事務(wù)。

      SI在MVCC基礎(chǔ)上進(jìn)行實(shí)現(xiàn)。

      除了SI,Snowflake也通過快照進(jìn)行時(shí)間旅行,高效的克隆數(shù)據(jù)庫(kù)對(duì)象。

      2.5.3修剪

      Snowflake使用的修剪模式

      傳統(tǒng)的數(shù)據(jù)庫(kù)數(shù)據(jù)訪問采用基于B+Tree的索引來進(jìn)行。傳統(tǒng)索引方式依賴隨機(jī)訪問,這種方式對(duì)S3和列壓縮不友好。同時(shí)維護(hù)索引會(huì)增加數(shù)據(jù)存儲(chǔ)占用,增加數(shù)據(jù)加載時(shí)間。

      最后,索引管理是復(fù)雜,昂貴,有風(fēng)險(xiǎn)的操作。

      Snowflake支持修剪的技巧是在元文件中維護(hù)文件頭,文件最大,最小,count,avg,sum等元數(shù)據(jù)信息。

      除了靜態(tài)修剪,Snowflake也支持執(zhí)行時(shí)動(dòng)態(tài)修剪。例如再hash join時(shí),snowflake收集build-side records的參與join的key的分布式信息,然后推送給probe side,用于過濾或跳過probe side側(cè)的文件。

      2.6重點(diǎn)特性

      2.6.1純的SaaS體驗(yàn)。

      支持JDBC,ODBC, Python PEP-0249接口。支持第三方服務(wù),例如Tableau, Informatica, Looker

      無(wú)任何調(diào)優(yōu)參數(shù):

      用戶只有在采購(gòu)時(shí)才選擇一個(gè)數(shù)倉(cāng)的大小T-SIZE模式。

      2.6.2持續(xù)可用

      Multi-Data Center Instance of Snowflake

      Snowflake tolerates individual and correlated node failures at all levels of the architecture。

      2.6.3在線升級(jí)

      所有的服務(wù)時(shí)無(wú)狀態(tài)的,都可以配置多版本。所有的有狀態(tài)的數(shù)據(jù)被保存在基于key/value的存儲(chǔ)中。狀態(tài)數(shù)據(jù)通過映射層進(jìn)行元數(shù)據(jù)版本和schema演進(jìn)。任何時(shí)候更改元數(shù)據(jù)schema,保證后向兼容。

      云服務(wù)的兩個(gè)版本共享同樣的元數(shù)據(jù)存儲(chǔ)信息。

      2.6.4半結(jié)構(gòu)化和Schema-Less數(shù)據(jù)

      Snowflake 通過三個(gè)數(shù)據(jù)類型來擴(kuò)展SQL類型:VARIANT, ARRAY, and OBJECT。

      VARIANT 可以保存任何原生SQL類型,也可以保存變長(zhǎng)ARRAYs值,JavaScript類似的對(duì)象,string到VARIANT的映射信息

      ARRAY 和OBJECT是限制版的VARIANT,內(nèi)部實(shí)現(xiàn)是一樣的:

      a self-describing, compact binary serialization which supports fast key-value lookup, as well as efficient type tests, comparison, and hashing

      列式存和處理

      Cloudera Impala (using Parquet) and Google Dremel have demonstrated that columnar storage of semi-structured data is possible and beneficial. 、However,Impala and Dremel (and its externalization BigQuery)require users to provide complete table schemas for columnar storage.

      To achieve both the flexibility of a schema-less serialized representation and the performance of a columnar

      relational database, Snowflake introduces a novel automated approach to type inference and columnar storage

      Snowflake 采用新穎的自動(dòng)進(jìn)行類型推斷和列式數(shù)據(jù)存儲(chǔ)的方式。

      2.6.5 TCP-H性能

      2.7安全

      采用AES 256強(qiáng)加密方式分層加密,上層加密下層的key。Rootkey 保存在AWS CloudHSM(硬件)中。

      每個(gè)用戶獨(dú)立的account key。

      Key支持生命周期管理:

      3實(shí)際性能

      從SIGMOD2016的論文上只提到了一些模糊的數(shù)據(jù)

      The system runs several million queries per day over multiple petabytes of data.

      每天數(shù)百萬(wàn)查詢,支持?jǐn)?shù)PB數(shù)據(jù)。

      2018年:每天數(shù)百M(fèi)illion的查詢,數(shù)百PB數(shù)據(jù)量

      2020年:每天500 Million的查詢

      從snowflake分享的宣傳材料上,提到的3個(gè)行業(yè)的性能比對(duì)

      420/26 =16倍

      480/1.5 = 320倍

      和傳統(tǒng)數(shù)倉(cāng)比最高快200倍。

      Gigaom 公司2019年提供的性能比對(duì)數(shù)據(jù)(sponsored? by Microsoft)

      30TB的TPC-DS標(biāo)準(zhǔn)所有測(cè)試數(shù)據(jù)總共耗時(shí)

      從測(cè)試結(jié)果來看,微軟的Azure 的數(shù)據(jù)倉(cāng)庫(kù)性能排第一,Snowflake排第二。

      2020年Fivetran公司提供的性能測(cè)試數(shù)據(jù)

      1TB TPC-DS性能測(cè)試數(shù)據(jù)

      此測(cè)試數(shù)據(jù)沒有微軟的Azure數(shù)倉(cāng)的比對(duì)。

      In April 2019, Gigaom ran a version of the TPC-DS queries on BigQuery, Redshift, Snowflake and Azure SQL Data Warehouse. This benchmark was sponsored by Microsoft. They used 30x more data (30 TB vs 1 TB scale). They configured different-sized clusters for different systems, and observed much slower runtimes than we did:

      對(duì)于Gigaom2019的測(cè)試結(jié)果,F(xiàn)ivetran也感覺比較奇怪。

      注:Fivetran 是Snowflake的合作伙伴,做數(shù)據(jù)集成的。

      4性價(jià)比

      從Gigaom報(bào)告看,微軟云數(shù)倉(cāng)性價(jià)比第一,Snowflake排第二

      從Gigaom和Fivetran 的報(bào)告來看,Snowflake的性能都排在Google的BigQuery和Redshift之前。

      5客戶

      2018年是1000多個(gè)用戶

      2020.1超過3000個(gè)用戶,56個(gè)價(jià)值用戶

      注:客戶信息來自IPO說明書

      6Snowflake設(shè)計(jì)的經(jīng)驗(yàn)

      半結(jié)構(gòu)化處理帶來的效果超出預(yù)期。

      彈性比性能更重要。

      7挑戰(zhàn)

      當(dāng)支持上萬(wàn)用戶的并發(fā)訪問時(shí)帶來巨大挑戰(zhàn),例如元數(shù)據(jù)層變的巨大。

      SQL性能調(diào)優(yōu),傾斜數(shù)據(jù)處理要持續(xù)優(yōu)化。

      8后續(xù)規(guī)劃(2018年的plan)

      多云:(2020年支持微軟 AWS Google)

      從Snowflake的后續(xù)版本規(guī)劃來看,也可以看出業(yè)界數(shù)倉(cāng)產(chǎn)品的部分演進(jìn)方向,例如 自動(dòng)調(diào)優(yōu),物化視圖,數(shù)據(jù)湖,流數(shù)據(jù)處理,時(shí)序數(shù)據(jù)處理(畢竟IOT大數(shù)據(jù)的分析也是一個(gè)重點(diǎn)方向)。

      9總結(jié)

      從技術(shù)角度,Snowflake值得我們學(xué)習(xí)的技術(shù)點(diǎn)包括計(jì)算存儲(chǔ)分離,PAX列式存儲(chǔ),向量化執(zhí)行,元數(shù)據(jù)管理和緩存機(jī)制。

      從管理的角度,一個(gè)好的產(chǎn)品成功。離不開牛人。

      20多年的數(shù)據(jù)庫(kù)設(shè)計(jì)經(jīng)驗(yàn)

      微軟和oracle的大神

      向量化查詢的發(fā)明者。

      10附參考信息

      SIGMOD 2016年的論文:

      https://dl.acm.org/doi/pdf/10.1145/2882903.2903741

      https://0xzx.com/202009202141832030.html

      snowflake相關(guān)

      https://www.slideshare.net/snowflakedb/data-sharing-with-snowflake

      https://www.slideshare.net/Visual_BI/snowflake-the-most-costeffective-agile-and-scalable-data-warehouse-ever

      https://www.slideshare.net/databricks/databricks-snowflake-catalyzing-data-and-ai-initiatives

      https://www.slideshare.net/snowflakedb/the-struggle-for-data

      https://www.slideshare.net/snowflakedb/introducing-the-snowflake-computing-cloud-data-warehouse

      https://www.youtube.com/watch?v=xojAXXRo_S0

      https://docs.snowflake.com/en/user-guide/intro-cloud-platforms.html

      PAX相關(guān)

      Weaving Relations for Cache Performance

      https://research.cs.wisc.edu/multifacet/papers/vldb01_pax.pdf

      Data Page Layouts for Relational Databases on Deep Memory Hierarchies

      https://research.cs.wisc.edu/multifacet/papers/vldbj02_pax.pdf

      Spanner: Becoming a SQL System

      https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/46103.pdf

      https://zhuanlan.zhihu.com/p/75330265

      Data Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilation

      Snowflake參與編寫

      https://db.in.tum.de/downloads/publications/datablocks.pdf

      存算分離性能參考

      http://www.odbms.org/2018/01/how-the-separation-of-compute-and-storage-impacts-your-big-data-analytics-way-of-life/

      IPO上市說明書

      https://www.sec.gov/Archives/edgar/data/1640147/000162828020013010/snowflakes-1.htm

      https://mp.weixin.qq.com/s/BeVHkj4rBRvFrtrseFDCvw

      https://mp.weixin.qq.com/s/tdOLALrAtFBXh7szxco00w

      https://zhuanlan.zhihu.com/p/54439354

      https://segmentfault.com/a/1190000006655623

      圖解一致性hash算法:

      https://segmentfault.com/a/1190000021199728

      數(shù)據(jù)可視化 數(shù)據(jù)倉(cāng)庫(kù)服務(wù) GaussDB(DWS) 存儲(chǔ)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:如何在Excel中將多列導(dǎo)出到單個(gè)文本文件
      下一篇:WPS表格怎樣制作帶公式的空白表格(空白表格怎么制作表格)
      相關(guān)文章
      色婷婷六月亚洲综合香蕉| 亚洲美女又黄又爽在线观看| 亚洲国产精品高清久久久| www.亚洲一区| 亚洲综合精品伊人久久| 色噜噜综合亚洲av中文无码| 亚洲成AV人在线观看天堂无码| 亚洲第一区精品观看| 国产亚洲精品美女久久久久| 含羞草国产亚洲精品岁国产精品| 亚洲国产人成网站在线电影动漫| 亚洲日本在线播放| 亚洲国产美女精品久久| 亚洲人成电影青青在线播放| 亚洲春色另类小说| 亚洲专区中文字幕| xxx毛茸茸的亚洲| 亚洲综合偷自成人网第页色| 亚洲视频无码高清在线| 男人天堂2018亚洲男人天堂| 日韩亚洲产在线观看| 亚洲乱码中文字幕在线| 欧美色欧美亚洲另类二区| 亚洲av无码成人精品国产| 丰满亚洲大尺度无码无码专线| 亚洲AV无码成人网站在线观看| 久久水蜜桃亚洲AV无码精品| 国产AV无码专区亚洲AV琪琪| 久久久久亚洲精品无码网址| 亚洲成A人片在线观看无码不卡| 亚洲人成网站在线播放影院在线| 久久亚洲精品AB无码播放| 亚洲视频免费播放| 亚洲一区中文字幕| 亚洲精品女同中文字幕| 国产偷国产偷亚洲高清人| 亚洲综合色视频在线观看| 国外亚洲成AV人片在线观看| 国产成A人亚洲精V品无码| 久久精品亚洲一区二区三区浴池| 亚洲精品日韩中文字幕久久久|