久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

MPP架構(gòu)詳解:從Shared-Nothing到分布鍵,剖析大規(guī)模并行處理的核心原理與工程實(shí)踐

MPP架構(gòu)詳解:從Shared-Nothing到分布鍵,剖析大規(guī)模并行處理的核心原理與工程實(shí)踐 MPP 這個詞很多人第一次接觸到它是在面試或者在處理一個跑了幾小時都沒出結(jié)果的報表時被有經(jīng)驗的同事一句“這表得走 MPP 引擎”給點(diǎn)醒。說實(shí)話MPP 不是一個新概念從數(shù)據(jù)倉庫時代它就存在了但這些年隨著大數(shù)據(jù)和云數(shù)倉的普及它又一次成了架構(gòu)選型里繞不開的坎。如果只看定義MPP 就是 Massively Parallel Processing大規(guī)模并行處理聽起來很直白但真正理解它并不是在說“把任務(wù)分成多個并行執(zhí)行”這么簡單而是要先搞明白它解決的是哪一類問題、為什么分布式系統(tǒng)繞了這么多年卻依然以 MPP 為骨干。這篇內(nèi)容我打算從一個實(shí)際問題切入當(dāng)單機(jī)計算撐不住的時候MPP 是如何通過一整套分工協(xié)作機(jī)制扛下來的。我會從架構(gòu)拆解、平臺支持、以及我實(shí)際踩過的幾個坑出發(fā)把 MPP 的“家底”一次說清楚。適合剛接觸分布式數(shù)據(jù)庫的讀者也適合那些正在做技術(shù)選型、想搞清楚 Greenplum、ClickHouse、Redshift 這些引擎底層邏輯的同學(xué)。1. 內(nèi)容整體設(shè)計與思路拆解1.1 核心需求解析單機(jī)瓶頸到底卡在哪要理解 MPP 存在的意義得先看單機(jī)架構(gòu)走到盡頭時暴露的三個瓶頸。硬件層面單臺服務(wù)器的 CPU 核數(shù)和內(nèi)存帶寬是有上限的即使一臺 128 核、2TB 內(nèi)存的機(jī)器在處理 TB 級數(shù)據(jù)的關(guān)聯(lián)聚合時內(nèi)存帶寬和 I/O 也會迅速飽和。軟件層面?zhèn)鹘y(tǒng)單機(jī)數(shù)據(jù)庫的查詢優(yōu)化器基于的是集中式執(zhí)行模型所有數(shù)據(jù)都要經(jīng)過一個執(zhí)行引擎節(jié)點(diǎn)數(shù)據(jù)量上去之后這個節(jié)點(diǎn)的 CPU 和網(wǎng)絡(luò)協(xié)議棧會成為絕對的瓶頸。運(yùn)維層面單機(jī)擴(kuò)容是縱向擴(kuò)展換一臺更強(qiáng)的機(jī)器往往意味著停機(jī)、遷移、重新壓測成本非常高。這三個瓶頸分別對應(yīng)了 MPP 架構(gòu)的核心設(shè)計目標(biāo)通過將數(shù)據(jù)分布到多個計算節(jié)點(diǎn)上讓每個節(jié)點(diǎn)只處理一部分?jǐn)?shù)據(jù)并且節(jié)點(diǎn)之間通過網(wǎng)絡(luò)連接協(xié)同完成一個查詢?nèi)蝿?wù)。如果把單機(jī)數(shù)據(jù)庫比作一家全能型的小店店員既要收銀又要理貨還要做售后那么 MPP 就是一家連鎖超市每家門店只負(fù)責(zé)自己片區(qū)里的商品總部通過一套調(diào)度系統(tǒng)把顧客的需求拆解到對應(yīng)的門店去執(zhí)行。這種“拆解”就是 MPP 的精髓也是它和普通分布式系統(tǒng)最本質(zhì)的區(qū)別。1.2 MPP 的定位不是某一個數(shù)據(jù)庫而是一類計算范式很多人容易把 MPP 理解為某款產(chǎn)品比如 Greenplum、Teradata或者干脆有人說 ClickHouse 就是 MPP其實(shí)這里有個概念混淆。MPP 是一個計算范式的統(tǒng)稱它描述的是“無共享架構(gòu)下多個節(jié)點(diǎn)并行處理同一任務(wù)”的軟件設(shè)計模式。在這個范式之下各家系統(tǒng)有不同的實(shí)現(xiàn)方式有基于 PostgreSQL 擴(kuò)展而來的 Greenplum有純列式存儲的 Vertica有基于 PostgreSQL 的 Citus也有 ClickHouse 這種兼顧列式存儲和分布式查詢的引擎。理解了這一點(diǎn)再去討論平臺支持就有意義了。因為 MPP 不是一個孤立的軟件而是一種架構(gòu)選型這意味著你在選型時更多是在選“哪套平臺對 MPP 的實(shí)現(xiàn)更貼合我的業(yè)務(wù)”而不是在選“哪個數(shù)據(jù)庫支持 MPP”。從這個角度看MPP 的架構(gòu)拆解反而是更值得花時間的地方因為無論底層是哪家系統(tǒng)它們的核心模型基本一致理解了共性再看差異就是分分鐘的事。2. MPP 的核心架構(gòu)拆解2.1 三個關(guān)鍵角色協(xié)調(diào)節(jié)點(diǎn)、計算節(jié)點(diǎn)、存儲層一套標(biāo)準(zhǔn)的 MPP 架構(gòu)里無論外觀怎么變內(nèi)部基本都跑不了這三個角色。協(xié)調(diào)節(jié)點(diǎn)Coordinator有的系統(tǒng)叫 Master、Leader、Query Planner負(fù)責(zé)接收用戶的 SQL做語法解析、邏輯優(yōu)化、生成執(zhí)行計劃然后把計劃分發(fā)到各個計算節(jié)點(diǎn)上執(zhí)行。它不存儲真正的業(yè)務(wù)數(shù)據(jù)或者說只有元數(shù)據(jù)、統(tǒng)計信息、分布策略這類輕量數(shù)據(jù)。這里很多人會有個誤區(qū)以為協(xié)調(diào)節(jié)點(diǎn)就是瓶頸其實(shí)在成熟的 MPP 系統(tǒng)里協(xié)調(diào)節(jié)點(diǎn)的作用更接近“指揮中樞”而不是“數(shù)據(jù)搬運(yùn)工”。它負(fù)責(zé)拆任務(wù)但不負(fù)責(zé)算數(shù)據(jù)數(shù)據(jù)還是在各個計算節(jié)點(diǎn)本地完成的這樣協(xié)調(diào)節(jié)點(diǎn)的壓力就能控制在一定范圍內(nèi)。計算節(jié)點(diǎn)Segment、Worker、Executor是最核心的角色。它們各自持有數(shù)據(jù)的一部分通常是以分片Shard或分區(qū)Partition的形式存儲。當(dāng)一個查詢被協(xié)調(diào)節(jié)點(diǎn)拆分后每個計算節(jié)點(diǎn)只需要處理自己本地的那份數(shù)據(jù)這個過程叫本地計算Local Compute也是 MPP 能獲得線性擴(kuò)展能力的基礎(chǔ)。存儲層在 MPP 里有兩種形態(tài)一種是存儲和計算耦合的本地盤模式像 Greenplum、ClickHouse 集群數(shù)據(jù)直接落在各節(jié)點(diǎn)的本地存儲上數(shù)據(jù)分布策略決定了數(shù)據(jù)落在哪些節(jié)點(diǎn)另一種是存儲和計算分離的模式像云數(shù)倉 Redshift Spectrum、Snowflake數(shù)據(jù)放在對象存儲上計算節(jié)點(diǎn)按需加載數(shù)據(jù)到本地緩存。后一種在彈性擴(kuò)縮容上更有優(yōu)勢但數(shù)據(jù)傳輸?shù)男释蔀樾碌钠款i這也是為什么云廠商都在搞緩存親和性和數(shù)據(jù)本地性優(yōu)化。2.2 數(shù)據(jù)分布策略分布鍵是 MPP 的靈魂如果說協(xié)調(diào)節(jié)點(diǎn)是 MPP 的大腦那分布鍵就是血液。MPP 的數(shù)據(jù)分布策略直接決定了后續(xù)所有查詢的性能表現(xiàn)。以 Greenplum 為例建表時通過 DISTRIBUTED BY 指定分布鍵數(shù)據(jù)會根據(jù)該鍵的哈希值散列到各個 Segment 節(jié)點(diǎn)上如果不指定系統(tǒng)會默認(rèn)按第一個字段的哈希分布。這個分布鍵的選擇極其講究因為它決定了關(guān)聯(lián)查詢時數(shù)據(jù)能否在本地完成。舉個例子一個訂單表和一個訂單明細(xì)表如果兩張表都用“訂單ID”作為分布鍵那么在關(guān)聯(lián)查詢時每個計算節(jié)點(diǎn)上都能找到自己本地對應(yīng)的訂單和明細(xì)數(shù)據(jù)整條關(guān)聯(lián)鏈路完全走本地執(zhí)行不需要任何跨節(jié)點(diǎn)數(shù)據(jù)傳輸。反之如果訂單表按訂單ID分布明細(xì)表按商品ID分布那關(guān)聯(lián)時系統(tǒng)就得把明細(xì)表的數(shù)據(jù)按訂單ID重新洗牌Redistribute到對應(yīng)節(jié)點(diǎn)上這一下會帶來巨大的網(wǎng)絡(luò)開銷查詢可能從秒級直接變成分鐘級。這種“按分布鍵對齊”的設(shè)計在 MPP 術(shù)語里叫 co-located join。不僅是關(guān)聯(lián)分組聚合、去重這類操作同樣受分布鍵影響。比如要按用戶維度做聚合用戶ID作為分布鍵時每個節(jié)點(diǎn)只需要聚合本地的那部分用戶完全不需要 shuffle 數(shù)據(jù)。所以分布鍵的選擇絕不是建表時隨便填一個字段那么簡單它需要結(jié)合業(yè)務(wù)最常見的查詢模式來做設(shè)計。這也是我后面要重點(diǎn)講的實(shí)操要點(diǎn)之一。2.3 為什么 Shared-Nothing 架構(gòu)是 MPP 的主流MPP 領(lǐng)域最經(jīng)典的架構(gòu)分類是 Shared-Nothing 和 Shared-Disk。Shared-Disk 指的是所有計算節(jié)點(diǎn)共享同一套存儲系統(tǒng)比如 Oracle RAC數(shù)據(jù)只有一份所有節(jié)點(diǎn)都能訪問但為了保證一致性需要額外的鎖機(jī)制和緩存融合機(jī)制這在高并發(fā)下非常容易出現(xiàn)阻塞。Shared-Nothing 指的是每個節(jié)點(diǎn)獨(dú)享自己的 CPU、內(nèi)存和磁盤節(jié)點(diǎn)之間只通過網(wǎng)絡(luò)交換數(shù)據(jù)不存在共享存儲的競爭問題。MPP 數(shù)據(jù)庫絕大多數(shù)都采用了 Shared-Nothing原因很直接第一擴(kuò)展性更好加一個節(jié)點(diǎn)數(shù)據(jù)就多一份分布落點(diǎn)計算能力跟著線性增長不需要考慮存儲層面的共享瓶頸第二數(shù)據(jù)本地性更好每個節(jié)點(diǎn)只需要處理本地數(shù)據(jù)不需要遠(yuǎn)程讀取I/O 延遲大幅降低第三故障隔離更好某個節(jié)點(diǎn)宕機(jī)其他節(jié)點(diǎn)還可以繼續(xù)工作配合副本機(jī)制可以實(shí)現(xiàn)高可用。當(dāng)然 Shared-Nothing 也有代價。數(shù)據(jù)需要冗余多份存儲成本高一些節(jié)點(diǎn)間通信依賴網(wǎng)絡(luò)質(zhì)量萬兆網(wǎng)卡和低延遲交換機(jī)幾乎是標(biāo)配數(shù)據(jù)重分布的操作代價也比較大比如集群擴(kuò)容時要重新平衡數(shù)據(jù)如果節(jié)點(diǎn)間傳輸?shù)臄?shù)據(jù)量巨大這個過程可能持續(xù)數(shù)小時。但整體上看Shared-Nothing 在大規(guī)模并行計算場景下依然是性價比最高的選擇這也是從 Teradata 到 Greenplum再到云上 Snowflake 都堅持這一架構(gòu)的根本原因。2.4 控制平面與數(shù)據(jù)平面的分離成熟的 MPP 系統(tǒng)在設(shè)計上會把控制平面和數(shù)據(jù)平面分開。控制平面處理元數(shù)據(jù)、鎖管理、會話管理、調(diào)度決策數(shù)據(jù)平面負(fù)責(zé)數(shù)據(jù)的存儲、傳輸和計算。這種分離帶來的好處非常實(shí)際控制平面負(fù)載很輕即使集群規(guī)模很大協(xié)調(diào)節(jié)點(diǎn)也能輕松應(yīng)對數(shù)據(jù)平面則可以充分水平擴(kuò)展每個計算節(jié)點(diǎn)獨(dú)立處理自己的數(shù)據(jù)分片互不干擾。以 Greenplum 為例控制平面由 Master 節(jié)點(diǎn)承擔(dān)數(shù)據(jù)平面由多個 Segment 節(jié)點(diǎn)構(gòu)成。Master 節(jié)點(diǎn)的硬件要求反而沒有那么夸張因為它的職責(zé)只是接收 SQL、生成計劃、匯總結(jié)果真正耗資源的計算都發(fā)生在 Segment 上。這個架構(gòu)設(shè)計的另一個好處是在做性能調(diào)優(yōu)時定位問題會清晰很多如果查詢計劃階段耗時高問題大概率在控制平面如果執(zhí)行階段耗時高再去看數(shù)據(jù)平面的節(jié)點(diǎn)負(fù)載和網(wǎng)絡(luò)傳輸。3. 平臺支持全景從傳統(tǒng)數(shù)倉到大數(shù)據(jù)庫生態(tài)再到云上數(shù)倉3.1 傳統(tǒng)數(shù)倉陣營里MPP 是怎么站穩(wěn)腳跟的MPP 在傳統(tǒng)數(shù)據(jù)倉庫領(lǐng)域的代表有 Teradata、Vertica、Greenplum、Netezza 等。Teradata 是鼻祖級的存在1990 年代就開始大規(guī)模應(yīng)用在金融、電信、零售行業(yè)它的節(jié)點(diǎn)間通信機(jī)制和優(yōu)化器設(shè)計影響了后來很多產(chǎn)品。Teradata 的架構(gòu)是典型的 Shared-Nothing每個節(jié)點(diǎn)也叫 AMP數(shù)據(jù)按主索引分布在各個 AMP 上這個設(shè)計和 Greenplum 的分布鍵幾乎是一個邏輯。Vertica 很有意思它是列式存儲和 MPP 結(jié)合的典范最早源自 C-Store 研究項目后來被 HP 收購現(xiàn)在是 Micro Focus 旗下的產(chǎn)品。Vertica 最大的特點(diǎn)是壓縮率極高列式存儲配合高級壓縮算法相同的數(shù)據(jù)量比行式存儲省 5-10 倍空間在這個基礎(chǔ)上再跑 MPP 查詢I/O 量就明顯小下去。Greenplum 則是開源領(lǐng)域最有代表性的 MPP 數(shù)據(jù)庫它基于 PostgreSQL 改造兼容 PostgreSQL 語法這大概是它能在互聯(lián)網(wǎng)公司大規(guī)模落地的重要原因。Greenplum 在 6.x 版本后引入了增強(qiáng)的 ORCA 優(yōu)化器對復(fù)雜查詢的優(yōu)化能力大幅提升。但要注意Greenplum 更像是一個分析型數(shù)倉OLTP 類的高并發(fā)點(diǎn)查并不是它的強(qiáng)項。Netezza 則被 IBM 收購它獨(dú)特的地方在于使用了 FPGA 加速在硬件層面做數(shù)據(jù)過濾和聚合這個設(shè)計理念至今仍有參考意義。3.2 大數(shù)據(jù)生態(tài)里的 MPPClickHouse、Trino、Impala大數(shù)據(jù)生態(tài)里掛 MPP 名字的系統(tǒng)更多ClickHouse、Trino前身 Presto、Impala 都常被歸入 MPP 陣營但它們的實(shí)現(xiàn)風(fēng)格差別很大。ClickHouse 是俄羅斯公司 Yandex 開源的列式數(shù)據(jù)庫它的 MPP 實(shí)現(xiàn)方式非常激進(jìn)。ClickHouse 默認(rèn)不做跨節(jié)點(diǎn)的數(shù)據(jù)關(guān)聯(lián)它更鼓勵通過預(yù)先設(shè)計好的分布式表和大寬表來規(guī)避 shuffle。ClickHouse 的分布式查詢走的是“每個分片獨(dú)立執(zhí)行完再由協(xié)調(diào)節(jié)點(diǎn)合并”的模式如果查詢涉及跨分片的數(shù)據(jù)關(guān)聯(lián)性能會退化得非常明顯。所以 ClickHouse 在多數(shù)場景下是被當(dāng)作“單機(jī)性能極強(qiáng)的分布式聚合引擎”來使用而不是一個完整的分布式數(shù)據(jù)倉庫。Trino 則走的是另一條路線它定位是分布式 SQL 查詢引擎本身不存儲數(shù)據(jù)數(shù)據(jù)源可以接 Hive、對象存儲、MySQL、PostgreSQL 等。它的 MPP 能力體現(xiàn)在查詢執(zhí)行階段數(shù)據(jù)從數(shù)據(jù)源并行讀入在內(nèi)存里完成 join 和 aggregation。Trino 的優(yōu)勢是靈活能跨多種數(shù)據(jù)源做聯(lián)邦查詢劣勢則是它完全依賴網(wǎng)絡(luò)傳輸數(shù)據(jù)如果數(shù)據(jù)源到引擎的網(wǎng)絡(luò)帶寬不夠查詢性能就上不去。Impala 是 Cloudera 推出的查詢引擎和 Trino 類似也依賴底層存儲如 HDFS 或 S3。Impala 的無共享架構(gòu)在查詢優(yōu)化和并行執(zhí)行上做得不錯尤其在搭配 Kudu 時可以實(shí)現(xiàn)分鐘級數(shù)據(jù)更新的分析場景。但它對內(nèi)存的要求很高深度分頁或者大聚合時內(nèi)存溢出是常見的事故源頭。3.3 云數(shù)倉對 MPP 的重塑Snowflake、Redshift、BigQuery云數(shù)倉把 MPP 從“物理集群”變成了“虛擬資源池”這是對傳統(tǒng)架構(gòu)的一次重大修正。Snowflake 的做法最有代表性存儲層用對象存儲計算層用虛擬 warehouse多個計算集群可以同時掛載在同一個存儲層上互不共享計算資源但共享同一份數(shù)據(jù)。這種架構(gòu)下擴(kuò)縮容只是啟停虛擬計算集群的事按需計費(fèi)而且讀寫隔離做得很好不會出現(xiàn)一個慢查詢拖垮其他查詢的情況。Redshift 是 AWS 的老牌數(shù)倉它的核心用的是基于 PostgreSQL 改造的 MPP 引擎。Redshift 早期是典型的 Shared-Nothing節(jié)點(diǎn)掛本地存儲后來推出 RA3 節(jié)點(diǎn)類型把數(shù)據(jù)落地到 S3 并引入本地緩存走向了存儲計算分離的方向。Redshift 的分布鍵和排序鍵設(shè)計非常關(guān)鍵和 Greenplum 的分布鍵是同一個邏輯但 Redshift 還額外增加了分布方式的選擇比如 ALL 分布適合小表廣播EVEN 分布適合按順序輪詢KEY 分布則是哈希分布。BigQuery 則是 Google 的云數(shù)倉它的 MPP 能力藏在柱狀存儲和分布式執(zhí)行引擎 Dremel 的背后。BigQuery 對用戶屏蔽了分片和節(jié)點(diǎn)概念用戶只管寫 SQL系統(tǒng)自動調(diào)度執(zhí)行。它的優(yōu)化器依賴統(tǒng)計信息自動選擇執(zhí)行策略因此用戶不需要手動指定分布鍵但反過來也意味著如果表數(shù)據(jù)的統(tǒng)計信息陳舊執(zhí)行計劃可能不理想。云數(shù)倉的共性趨勢是存儲和計算分離、彈性擴(kuò)縮容、按量計費(fèi)這些本質(zhì)上都是 MPP 架構(gòu)的延伸和優(yōu)化只是把資源管理的維度從物理節(jié)點(diǎn)提升到了虛擬資源池。對用戶來說運(yùn)維復(fù)雜度降低了很多但架構(gòu)理解和查詢優(yōu)化的工作量并沒有減少反而因為屏蔽了底層細(xì)節(jié)更考驗工程師對執(zhí)行計劃的把握。3.4 一個真實(shí)例子MPP 引擎處理一條查詢的全流程為了更直觀地理解 MPP 的工作流程我用 Greenplum 處理一條 SQL 來串一遍整個過程。假設(shè)有兩張表用戶表包含用戶ID、注冊城市、注冊時間訂單表包含訂單ID、用戶ID、訂單金額、下單時間。查詢需求是統(tǒng)計每個城市的訂單總額。這條 SQL 到達(dá) Master 節(jié)點(diǎn)后先是解析和驗證生成語法樹然后走優(yōu)化器。優(yōu)化器會做兩件事代價估算和執(zhí)行計劃生成。這里關(guān)鍵的點(diǎn)是優(yōu)化器需要知道兩張表的分布鍵是什么。如果用戶表按用戶ID分布訂單表也按用戶ID分布那優(yōu)化器會認(rèn)為這種 join 可以走本地關(guān)聯(lián)于是采用 co-located join 策略每個 Segment 節(jié)點(diǎn)只處理本地那部分用戶的訂單。之后按注冊城市做分組聚合每個 Segment 節(jié)點(diǎn)本地做一次聚合得到部分結(jié)果然后把結(jié)果發(fā)回 MasterMaster 再做最終合并返回給客戶端。如果分布鍵不匹配執(zhí)行計劃里就會多出一步 Redistribute 或者 Broadcast。Redistribute 是把一張表的數(shù)據(jù)按目標(biāo)字段重新哈希后發(fā)送到對應(yīng)節(jié)點(diǎn)Broadcast 則是把小表復(fù)制到所有節(jié)點(diǎn)。這兩種數(shù)據(jù)移動都會增大網(wǎng)絡(luò)開銷也是 MPP 查詢變慢最常見的可視化原因。通過 EXPLAIN 查看執(zhí)行計劃時如果看到運(yùn)動節(jié)點(diǎn)Motion非常多就該懷疑分布鍵設(shè)計是否有問題了。另外MPP 執(zhí)行還有一個值得注意的細(xì)節(jié)——物化中間結(jié)果。有些 MPP 引擎會把 shuffle 的中間結(jié)果寫磁盤Greenplum 在內(nèi)存不足時也會做磁盤溢出這會進(jìn)一步放大 I/O 開銷。所以控制中間結(jié)果集的大小比如盡早做過濾、避免 SELECT 全字段、盡量在聚合前壓縮數(shù)據(jù)量是 MPP 查詢優(yōu)化的重要思路。4. 實(shí)操過程與核心環(huán)節(jié)實(shí)現(xiàn)4.1 環(huán)境選型與節(jié)點(diǎn)規(guī)劃在規(guī)劃一套 MPP 集群時第一個要決定的是“要不要上 MPP”而不是“上哪個 MPP”。當(dāng)數(shù)據(jù)量在幾百 GB 到幾個 TB 級別、查詢模式以 SQL 聚合分析為主、對實(shí)時寫入沒有極端要求時MPP 是一個非常合理的選擇。但如果數(shù)據(jù)量只有幾十 GB且頻繁的并發(fā)點(diǎn)查占比很高傳統(tǒng)的關(guān)系型數(shù)據(jù)庫或者單機(jī) PostgreSQL 反而是更好的選擇。選型確定之后節(jié)點(diǎn)規(guī)劃有一些實(shí)戰(zhàn)經(jīng)驗可以分享。計算節(jié)點(diǎn)數(shù)量和 CPU 核數(shù)的配比要結(jié)合查詢復(fù)雜度來看。一般建議單個 Segment 節(jié)點(diǎn)分配 8 核到 16 核內(nèi)存和 CPU 核心數(shù)按 8GB 到 16GB 每核心來配。比如一個 4 節(jié)點(diǎn)的 Greenplum 集群每個節(jié)點(diǎn) 16 核、128GB 內(nèi)存總共 64 核、512GB 內(nèi)存這樣的規(guī)模應(yīng)對 5TB 左右的數(shù)倉數(shù)據(jù)是夠用的。另外要考慮網(wǎng)絡(luò)。MPP 集群的節(jié)點(diǎn)間通信對網(wǎng)絡(luò)延遲和帶寬非常敏感強(qiáng)烈建議上萬兆網(wǎng)絡(luò)。我見過一個集群因為用了千兆網(wǎng)絡(luò)結(jié)果在數(shù)據(jù)重分布階段網(wǎng)絡(luò)成了瓶頸整個集群跑一個跨節(jié)點(diǎn)的 join 都要十幾分鐘后來換成萬兆網(wǎng)絡(luò)同一個查詢只需要不到一分鐘這個差距非常夸張。4.2 建表語句里的分布鍵設(shè)計現(xiàn)場在建表時分布鍵的選擇需要結(jié)合業(yè)務(wù)的實(shí)際查詢模式。一個來自生產(chǎn)環(huán)境的經(jīng)驗做法是找出查詢頻率最高的三張表和它們最常用的關(guān)聯(lián)條件把這些關(guān)聯(lián)字段作為分布鍵的首選。比如前面的用戶表和訂單表如果訂單表是事實(shí)表用戶表是維度表那么訂單表按用戶ID分布用戶表也按用戶ID分布就能讓最常見的關(guān)聯(lián)查詢走本地關(guān)聯(lián)。另一個關(guān)鍵技巧是處理數(shù)據(jù)傾斜。如果分布鍵的取值分布不均比如用戶ID集中在少數(shù)幾個值上例如某個頭部用戶貢獻(xiàn)了絕大多數(shù)訂單那么這些熱點(diǎn)數(shù)據(jù)會全部落到同一個節(jié)點(diǎn)上導(dǎo)致該節(jié)點(diǎn)的負(fù)載遠(yuǎn)高于其他節(jié)點(diǎn)形成“木桶效應(yīng)”。解決方法是使用復(fù)合分布鍵或者在前綴字段上增加一個隨機(jī)因子也可以在建模時把大用戶的數(shù)據(jù)單獨(dú)分桶處理。簡單的檢查方法是執(zhí)行一個“SELECT 分布鍵, COUNT(*) FROM 表 GROUP BY 分布鍵”的查詢觀察各個取值的數(shù)據(jù)量如果發(fā)現(xiàn)有明顯的長尾分布就要考慮調(diào)整分布策略。在 Redshift 里還有一個 ALL 分布的選擇。對于數(shù)據(jù)量較小的維度表比如幾百 MB 的國家表、城市表直接用 ALL 分布在每個節(jié)點(diǎn)都放一份全量數(shù)據(jù)join 時就可以完全避免廣播操作。這個技巧雖然簡單但在實(shí)際優(yōu)化中的效果非常顯著。4.3 查詢優(yōu)化從執(zhí)行計劃里找運(yùn)動節(jié)點(diǎn)在實(shí)際做性能調(diào)優(yōu)時第一件事永遠(yuǎn)是看執(zhí)行計劃。以 Greenplum 為例EXPLAIN ANALYZE 輸出中的關(guān)鍵信息有三個每步操作的行數(shù)估算和實(shí)際行數(shù)、Motion 的類型和行數(shù)、以及每個節(jié)點(diǎn)的執(zhí)行耗時。Motion 在 Greenplum 執(zhí)行計劃里就是數(shù)據(jù)移動的標(biāo)志如果在計劃里看到很多 Redistribute Motion 或者 Broadcast Motion且涉及的行數(shù)很大那這個查詢必然快不了。一個經(jīng)常被忽略的問題是統(tǒng)計信息的時效性。MPP 優(yōu)化器依賴統(tǒng)計信息來做代價估算如果一張千萬級的表從創(chuàng)建后就沒跑過 ANALYZE優(yōu)化器可能認(rèn)為它是空表或者在過濾條件上嚴(yán)重低估行數(shù)導(dǎo)致選錯 join 順序。比如一張大事實(shí)表和維度表關(guān)聯(lián)維度表過濾后的數(shù)據(jù)量被低估了 10 倍優(yōu)化器就可能選擇把維度表廣播到所有節(jié)點(diǎn)產(chǎn)生大量無效數(shù)據(jù)傳輸。解決辦法是定期對關(guān)鍵表執(zhí)行 ANALYZE以及在大批量數(shù)據(jù)導(dǎo)入后立刻做一次統(tǒng)計信息更新。另外MPP 查詢中常見的高成本操作是“帶 ORDER BY 的聚合”和“窗口函數(shù)”。窗口函數(shù)在 MPP 下的執(zhí)行往往需要把數(shù)據(jù)按窗口字段重分布這是一個全量數(shù)據(jù)洗牌的過程。如果窗口函數(shù)用得太隨意比如 OVER (PARTITION BY 某個高基數(shù)字段)那代價極高。優(yōu)化思路是提前過濾數(shù)據(jù)、只在所需的數(shù)據(jù)范圍上做窗口計算或者拆分成更小的數(shù)據(jù)集分別處理再合并結(jié)果。4.4 資源管理隊列與并發(fā)控制MPP 集群的資源不是一個無限平攤的資源池每個查詢都會消耗一定配額。Greenplum 里的資源隊列Resource Queue就是用來控制并發(fā)的它定義了每個隊列的 CPU、內(nèi)存、并發(fā)數(shù)量限制。生產(chǎn)環(huán)境里常犯的錯誤是把所有查詢都放進(jìn)默認(rèn)隊列也不限制并發(fā)數(shù)結(jié)果幾個大查詢同時跑內(nèi)存直接耗盡集群狀態(tài)瞬間變得不可用。合適的做法是把查詢按業(yè)務(wù)優(yōu)先級分成幾個隊列實(shí)時報表一個隊列并發(fā)數(shù)限制在 5 個以內(nèi)內(nèi)存配額給足批量任務(wù)一個隊列并發(fā)數(shù) 2-3 個執(zhí)行時間長也沒關(guān)系臨時查詢一個隊列優(yōu)先級最低。這樣即使有人提交了一個跑 2 小時的大查詢也不會把實(shí)時報表的通道堵死。Redshift 里也有對應(yīng)的 WLMWorkload Management隊列配置原理完全一致。還有一個實(shí)踐中很有效的做法是設(shè)置 statement_mem 或類似的查詢內(nèi)存限制防止單個查詢吃掉整個節(jié)點(diǎn)內(nèi)存。大查詢?nèi)绻麅?nèi)存不足可以接受它落磁盤來換穩(wěn)定性但絕不能讓一個失控查詢把整個集群搞掛。4.5 常見問題與排查技巧實(shí)錄MPP 集群的常見故障我按大類整理了一份速查表現(xiàn)象可能原因排查手段解決思路查詢整體變慢但無報錯數(shù)據(jù)分布傾斜查看各節(jié)點(diǎn) CPU/IO 負(fù)載調(diào)整分布鍵增加隨機(jī)前綴執(zhí)行計劃中的 Motion 行數(shù)異常大分布鍵不匹配或統(tǒng)計信息過期EXPLAIN ANALYZE 對比估算與真實(shí)行數(shù)更新統(tǒng)計信息拆分子查詢單節(jié)點(diǎn)內(nèi)存溢出OOM并發(fā)過高或查詢中間結(jié)果過大查看資源隊列活躍查詢限制并發(fā)拆分大查詢集群擴(kuò)容后數(shù)據(jù)長期不均衡擴(kuò)縮容后數(shù)據(jù)重分布未完成查看系統(tǒng)表 rebalance 狀態(tài)手動執(zhí)行數(shù)據(jù)重分布任務(wù)高并發(fā)點(diǎn)查性能差未遵循 MPP 設(shè)計規(guī)則查看是否觸發(fā)了全表掃描在維度表和主鍵上建立索引或更換為 OLTP 類數(shù)據(jù)庫跨庫關(guān)聯(lián)頻繁出現(xiàn) Broadcast維度表未用 ALL 分布查看執(zhí)行計劃中的 Broadcast Motion小維度表改為 ALL 分布這里面最值得強(qiáng)調(diào)的是第一個問題——數(shù)據(jù)傾斜。傾斜問題的隱蔽性強(qiáng)集群看起來所有節(jié)點(diǎn)都在工作但只有一個節(jié)點(diǎn)負(fù)載接近 100%其他節(jié)點(diǎn)閑得發(fā)呆。排查起來也簡單Ganglia、Prometheus 這類監(jiān)控工具看節(jié)點(diǎn)負(fù)載圖對比各節(jié)點(diǎn) CPU 曲線的差異如果一條線豎得老高而兩側(cè)都是平線基本就是傾斜無疑了。之前在生產(chǎn)環(huán)境處理過一個問題一個按商品維度統(tǒng)計銷量的查詢某個頭部商品的數(shù)據(jù)占了全表 35%這一個值讓單節(jié)點(diǎn)負(fù)載比平均高出 4 倍查詢從預(yù)期的 30 秒拖到了 5 分鐘。后來把分布鍵改成了“商品ID 一個城市字段”的復(fù)合鍵讓大數(shù)據(jù)量的商品也能在不同節(jié)點(diǎn)上散開查詢恢復(fù)到了 40 秒以內(nèi)。第二個要提的坑是“MPP 未必比單機(jī)快”。當(dāng)數(shù)據(jù)量不大、單機(jī)完全能放下時MPP 的網(wǎng)絡(luò)通信開銷反而會讓性能更差。我有一次在同一套數(shù)據(jù)上對比測試數(shù)據(jù)量 200GBMPP 集群是 4 節(jié)點(diǎn)單機(jī)是 64 核大內(nèi)存。一個中等復(fù)雜度的 join 聚合查詢MPP 跑了 45 秒單機(jī) PostgreSQL 只跑了 28 秒。原因很簡單MPP 執(zhí)行計劃里有兩處 Redistribute Motion數(shù)據(jù)傳輸占了大半時間而這個查詢在單機(jī)上完全不需要移動數(shù)據(jù)。所以MPP 的“快”是有前提的數(shù)據(jù)量足夠大到單機(jī)無法合理承載或者查詢本身能通過并行化受益。數(shù)據(jù)量小的時候不要迷信分布式。第三個是關(guān)于并發(fā)和慢查詢互相干擾的典型事故。某個周五晚上一條數(shù)據(jù)清洗 SQL 和線上報表查詢同時運(yùn)行清洗任務(wù)一次性 UPDATE 了全表 80% 的行這個 UPDATE 在 MPP 里會生成巨大的中間結(jié)果并且鎖定大量行導(dǎo)致線上報表查詢被阻塞。最終的結(jié)果是清洗任務(wù)運(yùn)行了 3 小時期間線上報表一直超時。事后復(fù)盤下來核心問題是沒做資源隔離和鎖管理。后來把清洗任務(wù)放到專門的維護(hù)窗口并且提交前加上超時控制和鎖等待時間限制這類問題就再沒出現(xiàn)過。5. 繼續(xù)深挖的兩個方向其實(shí)聊到這里MPP 的基本盤已經(jīng)說完了架構(gòu)上理解 Shared-Nothing 和分布鍵平臺上理解各家的差異實(shí)操上理解執(zhí)行計劃和資源管理。但如果真想在這一塊繼續(xù)深入還有兩個方向值得花時間。第一個方向是“MPP 和 NewSQL”的邊界。MPP 在分析型場景里有統(tǒng)治力但在高并發(fā)事務(wù)場景里表現(xiàn)不理想。TiDB、OceanBase 這類 NewSQL 數(shù)據(jù)庫雖然也用了分布式存儲和計算分離的思路但它們的目標(biāo)是兼顧 OLTP 和 OLAP執(zhí)行引擎的設(shè)計和 MPP 有本質(zhì)差異。理解這個邊界對做技術(shù)選型的人非常重要——不是說分布式數(shù)據(jù)庫就能解決所有問題選型的關(guān)鍵前提要厘清“這個系統(tǒng)處理的是什么類型的查詢”。第二個方向是“湖倉一體”里的 MPP 角色。數(shù)據(jù)湖和數(shù)據(jù)倉庫的界限在模糊像 Trino、Hive 這類引擎已經(jīng)可以把數(shù)據(jù)湖文件當(dāng)作源來做 MPP 查詢Doris、StarRocks 也把數(shù)據(jù)湖聯(lián)邦查詢做成了常態(tài)化能力。在這個背景下MPP 的定位不再局限于數(shù)倉內(nèi)部它正在變成一個統(tǒng)一查詢計算層。這個演進(jìn)非??熘档贸掷m(xù)跟蹤。從我個人實(shí)際應(yīng)用的角度來說最好的學(xué)習(xí)方式不是在文檔里背概念而是找一個真實(shí)的業(yè)務(wù)場景拿一套小規(guī)模的 MPP 環(huán)境親手建表、設(shè)計分布鍵、跑 EXPLAIN ANALYZE 去觀察 Motion再故意選錯一次分布鍵感受一下性能回退。這個過程走一遍你對 MPP 的理解會遠(yuǎn)超讀十篇文章。最后再分享一個小經(jīng)驗MPP 集群里執(zhí)行計劃里的 Motion 數(shù)量永遠(yuǎn)和性能成反比優(yōu)化目標(biāo)就是盡可能減少數(shù)據(jù)移動所有的分布鍵設(shè)計、SQL 改寫、統(tǒng)計信息更新本質(zhì)上都是圍繞這一件事在轉(zhuǎn)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
一卡二卡三卡| 人妻无码后入| AAAAAAAAA黄片| 女人喷水视频在线观看| 中文字幕日韩电影人妻| 午夜毛片亚洲精品片国产久久久| 亚洲s色图| 欧美国产有色电影| 亚洲瓯美色图| 九九九九88| 欧美黄片视频在线观看免费 | 色妇91| 91九久| 色婷婷色99国产综合精品| 看日韩黄片| 少妇特黄一区二区三区| 极品少妇99| 97精品国产97久久久久久| 熟女六十路| 国产91啪| 国产 日韩 欧美高清| 久久精品国内Av熟女高清| 综合亚洲网| 久久综合av| 人妻久热在线| 国产伦精品免编号公布| 99热这里只有精| 夜夜嗨AV一区天天| 啊好大好舒服| 国产视频一区二区三区久久亚洲天堂| 男人的天堂在线有码| 影音先锋乱| 高清无码在线播放网站| 亚洲国产欧美一区二区潘金莲| 97精| 国产精品不卡高清在线观看| 中国农村熟妇毛片视频| 色网站导航大全| 伦理第一页| 夜夜嗨一区二区三区直播内容| 色香综合天天影视综合 | 亚州九九九精品视频| 欧美亚洲日韩16色| 青青草华人在线欧美在线| 天欧美在线| 免费视频观看60秒| 97久久超碰| 搡老熟女免费视频 | 精品女人999| 看黑人AV不卡| 91真人天天在线| 60秒免费小视频| 国产一| 毛片99-全集电影手机免费观看完整-B029AV | 99最新日韩偷拍视频| 欧美日韩国产人人| 97伊人超碰| 欧美性性性| 边做饭边操逼逼| 日本免费专区| 中文字暮97| 日韩亚洲美女一区久久| 精品小视频在线| 97久久国产精品| 日韩在线观看三级电影| 激情抓乳插进去啪啪啪日韩 | 再深点灬舒服灬太大了好硬好爽| 国产精品久久9| 黑人精品久久97| 殴美性天天| 人人看黄色视频| 成人免费看吃奶视频网站| 免费看A片毛毛片在线播| 噜噜吧,噜噜色,噜噜| 热天堂一区二区| 无卡一区=区| 超碰成人人人爽人人爽| 8050无码八戒| 日韩av三四区| 99AV| 成人乱码一区二区三少妇| 防屏蔽在线视频| 动漫区日韩区欧美区| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 一级黄色视频网| 五月天激情国产综合婷婷婷| 麻豆精品三区视频| 中文字幕亚洲热播人妻| 婷婷综合在线观看| 久久久久久久久久久久色网| 欧美日韩操逼嗦吊| 天天舔天天日天天射| 亚洲欧美黄| 亚洲精品影视老司机| 国产伊人自拍| 超碰97国产欧美| 久操网线| 欧美91色| 97人妻免费中文字幕| 97天天搞在线| 大香蕉综合网| 狠狠操夜夜操蜜桃视频三区| 免费国产| 九九人人操| 综合激情一一91| 无码免费精品高清| 亚洲欧洲日产国产综合网| 国产精品一区二区三区四区五区| av一区二区三区 中文| 欧美青青草视频| 一级成人性爱| 国产第二页| 国产精品亚洲无码| 日韩欧美偷拍美女视频| 久久久久亚洲?V片无码V| 夜夜操av亚洲一区二区| 69国产对白刺激| ,国产乱人伦精品一区二区三区| 欧美色图校园春色| 日韩精品一区二区三区色欲| 91少妇人妻| 狠狠综合网| 玖草在线视频| 日本一级真人黄色性爱视频| 一区二区久久天天干狠狠| 东京热天堂网| 天天日日本| 亚洲网站一区二区在线| 亚洲精品色| 性暴力欧美猛交在线直播| 伊人国产视频| 六月丁香啪啪| 激情小说日韩无码| 久草精品一区| 99热精品在线播放| 欧美色图第一页| 亚洲。日韩。欧美| AV网站高清无码在线观看| 啊啊啊啊啊啊啊在线| 亚洲一本大道中文字幕无码在线| 9 1果冻精品视频| 天天摸,夜夜摸| 亚洲精品97| 欧美狠狠操| www.99中文字幕| 丝袜高跟澳门91视频| 国产又爽又黄| 亚欧无码线免费观看视频| 久久超碰免费的| 国产精品激情久久久久久久| 久一区久久蜜桃| 亚洲少妇在线影音| 91视频国品一二三区| 亚洲无码com| 久久大陆| 日日干夜夜操视频h| 手机看av网站在线看| 欧美日韩中文字幕人妻| 精品97久久综合| 午夜免费福利视频一区| 中文字幕人成乱码熟女香港| 东北老熟女| 久久久久久久极品香蕉视频| 探花一区在线| 欧美色www亚洲国产阿娇要播| 色网在线| 91超碰人人| 日韩性爱再线视频| 欧美日韩另类在线播放| 超碰成人人人爽人人爽| 99精品九九九九九九| 国产亚洲欧洲在线观看| 精品久一区免费| 校园春色中文字幕AV| 99综合网| 亚洲少妇综合在线播放| 国产精品又黄又猛又粗| 天堂性色| 极品一区二区三区免费| 青青草日本中文字幕| 久久婷五月天| 人人扣人人操| 亚洲一区日韩| 日日操丁香五月天| 你懂的在线观看区国产| 欧亚日韩中文在线| 久久人妻熟女一区二区| 97天天插| 一级黄碟| 亚洲图片小说欧洲| 国产超碰欧美| 欧美骚少妇| 欧美 传媒 麻豆 日韩 偷拍| 第四色色综合91| 久久久网站| 国产精品久久久久久久久AV大片| 欧美一级特黄淫片在线观看| av强奸乱轮| 国产精品盗摄 偷窥盗摄| 密臀在线视频| 中文字幕欧洲有码| 亚洲Av诱惑| 欧美日韩妖精91com| 久草精品一区| 成人精品水蜜桃久久久久久久| 天天综合网1| 日han少妇无码| av午夜玫瑰| 亚洲成人精品久久久| 按摩中文字幕| 亚洲揄拍网| 久久神马影院| 男人网站婷婷| 青青草国产一区二区三区| 天堂伊人久久| 精品视频久久区| 欲色啪| 久久久少妇诱惑精品视频| 伊人少妇久久久| AV天黑人| 亚洲精品白浆高清久久久久久| 日韩免费av片高清无码| 国产91啪| 日韩啪啪网| 亚洲国产第一页综合视频| 欧美精品成人亚洲| 超碰性爱97| 粉嫩小泬久久久一区二区| 激情综合网一盗摄| 久久国产乱子伦精品免费女,网站| 青草一区二区| 五月天丁香婷婷综合网站| 久久久国产成人一区二区三区在线 | 色噜噜人妻av 中文字幕| 久久久久久久久久久999| 91国精产品| 超碰4A| 日韩免费在线观看不卡| 国产无马视频| 射丝袜高跟鞋99| 久久久久9999精品九九九| 久久久久久99999国产精品| 久久久久99精品成人片蜜臀| 一区二区三区高清天码| 婷婷色五月激情| 97天天搞在线| 欧美在线综合| 亚洲AV无码秘 蜜桃臀国精产品| 青娱乐欧美激情一区二区| 亚洲天堂无码| 啊啊啊啊操死我了| 男人的天堂一区| 内射小黄片| 夜夜草网站| 中文字幕乱碼在线| 先锋女优在线观看视频| 亚洲国产尤物yw在线观看| 99自拍视频| 97精品国产手机| 天美传媒麻豆一区二区三区国产精| 国产又粗又大硬免费色网视频| 韩国黄片aaaa| 国产精品国产自产拍高清AV| 日本在线播放不卡一区| 欧美精品日韩久久久九| 51久久夜色精品国产麻豆| 亚洲成aⅴ人片不卡无码| 2019久久久久久久久福利| 99在线观看| 91天天c| 风间由美日韩欧美久久| 日韩中文字幕精品一区在线| 欧美亚洲国内自拍| 97中文热色| 亚洲一级特黄大片在线播放91| 蜜桃久久综合视频| 农村少妇久久久久久久| 国产黄色av大片网站| 干b在线性社区| 亚洲人综合19| 九九在线视频| 女人香蕉久久毛毛片精品| 热无码中文亚洲H一道本一区二区| 色色色色综合网| 天天超级碰碰碰| 黄色人人| 久久久久密臀一区二区| 1000部熟女视频在线观看| AAA久久| 久久成人东京热人妻| 黄片免费看的| 亚洲涩涩| 在线观看中文av字幕| 高跟伊人julia ann| 欧美综合自拍| 防屏蔽在线视频| 色噜噜日韩精品| aaaa黄片| 美女t无毒不卡不卡| 户外裸露刺激视频第一区| 亚精品无码毛片一区二区三区| 老司机午夜精品视频| 91成人亚洲色图| 亚洲天堂AV在线播放| 久久 亚洲 日韩 人妻| 26uuu久久| 99re8免费高清在线| 日本性爱视频一级| 嗯嗯啊啊视频一区二区三区| 日韩一区二区高清在线观看的| 亚洲精品国产av天美传媒| 超碰在线香蕉| 传媒在线观看一区二区三区| 天堂蜜桃无码视频一区二区| 国产自制av蜜乳| 磁力99AV| 91在线精品| 清纯唯美激情| 国产天天骚| 伊人久久综合影院| 黑人精品欧美一区二区蜜桃| 色性荡荡荡荡视频| 日韩精品一区二区日韩| 黄色成年| 97碰碰日本乱偷人妻中文的| 国模少妇一区二区三区 | 国产精品成人无码av| 大香蕉人妻久久| 97色在线观看| 国产视频不卡在线观看| 亚洲不卡三级手机播放| 欧美亚洲在线| 91精品成人| 人人摸人人摸人人干| 最新AV在线| 国产农村妇女精品一| 日韩丰满熟妇| 色网站导航大全| 国产性爱欧美性爱在线| 97人肏| 老熟女乱子伦中文字幕一区二区| 97超级久久| 78p欧美| 五月综合久久| 中文字幕一二区二三区人妻专区| 日韩欧美女求操每天更新| 熟女天天干| 99热色精品| xxxx网站亚洲精品| 天天看天天日天天操| 97视频新免费| 青草香蕉网| 天天插天天射| 国产日韩在线播放| 国产精品久久久无码AV网站| 永久电影三级在线观看| 中文字幕成人乱码熟女精品国50 | 青娱乐啪啪视频| 亚洲熟女一区| 91爰爱欧美| 嗯嗯嗯好爽| 天天操天天舔| 狠狠操夜夜| V A在线| 97Ai亚洲| 久草看看看| 亚洲欧美综合网站| 人妻无码久久一区二区三区免费| 欧美男女午夜啪啪| 亚洲人妻一区二区三区| 性爱av网站| 中文字幕狠狠玩| 久久精品久久九九精品| 日韩免费高清大片在线| 国产精品ⅴ无码大片在线看.| 亚洲欧美另类图片| 日本一区不卡| A一区片| 日欧操屄视频| 国产高潮AA片免费看| 日本日皮视频逼| 欧美少妇性爱网站| 久久香蕉国产线看观看猫咪av| 国产亚洲精品无码三区| 青椒国产97在线熟女| 男插女青青影院| 日本操逼视频免费| 国内偷自视频区视频综合| 精品日韩人妻视频| 国产成人无码a| 日韩极品无码B| 亚洲啪啪视频免费| 神马久久久久久伦理片| 午夜精品五区| 六月激情婷婷| 五月黑AⅤ| 丰满人妻一区二区三区在线| 日少妇亚洲版| 欧美色日本| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 欧美亚男人的天堂| 欧美日韩国产电影| 欧美色图自拍| 97欧美视频| 日韩字幕一区| 激情五月天丁香社区| 狼人久草| 嗯嗯嗯不要不要免费视频| 97精品久久久久久久| 传媒免费一区二区三区| 四虎影视国产精品| 欧美日本成人一区二区| 亚洲av综合色| 99热免费| 天操老女人| 久久女女| 夜草网站| 亚洲av强奸乱伦| www.狠狠干.coom| 操学生天天| 97资源站国产精品| 久久亚州精品成人Av无| 99热91| 美女诱惑在线一区| 91n处女在线观看| 一中国女人毛片水真多| 成人av动漫在线观看| 色97| 九九九偷拍| 日韩福利综合一区| 亚洲激情四射| 久久久久久久久国产| 97色亚洲| 国产精品99久久久www| 熟妇一区二区三区| 日少妇视频| 亚洲国产一级精品毛一级精品看免费视频 | 免费看欧美美女黄色大片| 天美精品av| 国产美女口爆吞精视频| 亚洲第一综合| 国模久久在线| 无码精品久久| 亚洲日本韩国极品一区二区| 亚州欧美在线| 国产一级αv免费看片| 日本日日色视频| 国语少妇精| 在线看免费无码AV天堂的| 亚洲射综合网| 亚洲无线观看久久| 欧美国产日韩清纯唯美| 亚洲成人在线资源| 尤物一级在线免费观看| 久草在| 国产精品懂色tv影视免费观看| 日本免费亚洲欧美| 舔人妻中文免费视频| 变态乱伦伪娘灌肠一区二区| 亚洲精品天天影视综合网 | 操日韩第| 久久AV无码1区2区3区| 日韩情色一区二区| 日本三级中国三级99人妇网站| 超碰在线综合97| 婷婷午夜成人色中色| 啊啊啊啊啊啊啊好爽不要| 欧美天天综合| 射丝袜高跟鞋99| 天天澡天天狠天天天做| 色噜噜人妻av 中文字幕| 亚洲熟女av中文字幕| 色999;丁香五月| 欧美日韩人妻精品一区二区三区| 久久HD| 亚洲综合在线91| 久久xxxx| 伊人国产成人av网站| 超碰久久性爱| 伊人黄色片| 国产25页| 91精品伊人久久久大香线蕉91| 婷婷久草| 人人人人人人少妇| 色综合国产在线观看| 啊啊啊啊啊在线视频| 亚洲AV无码乱码| 91路www| 成人黑料社久久| 国产成人精品网站| 青青草伊人久久| 18禁美女裸体无遮挡啪啪| 久久久久久久久久久久欧美日| 欧美人妻精品一区二区| 亚洲深夜福利| 亚洲最大的黄色电影网站。| 亚洲 自拍偷拍 欧美| 夜夜操夜夜高潮夜夜爽国产精品区| 2024人人操人人摸| 久久伊人最新网址视频| 亚洲天天影视色综合| 成年女人18级毛片毛片免费观看| 超碰78| 人妻内射一区二区在线视频| www.色婷婷| AAAA欧美日韩| 大干人妻| 天天弄欧美| 五月天玖玖资源站| 黄片免费日韩| 成人草草视频| 久久久久久久久九九久孕交| 黑人黄片在线免费观看| 家庭乱伦国产精品| 伊人影院综合是一个与深夜成人在线| 亚洲中文字幕一区二区| 狠狠2050在线观看| 啊a一区在线| AV免费在线播放一区| 91综合网| 91日韩网站| 在线97在线| 欧美综合站| 黄色小视频日本txt| 中文?日韩?免费?精品| 人妻 欧美亚洲| 四虎视频在线观看| 97九色人妻| 5月婷婷6月六月丁香| 精品无码一区二区三区| 久久久久久999| 龙兴卡官方查询| 日日干夜夜操视频h| 久久99久久99久久99人受| 国产精品久久久久久久电影渣男| 亚洲丝袜少妇在线| 国产精品97超碰| 99久在线精品99re8a| 91久久国产综合久久| 熟女人妻一区二区三区| 成年女人黄网站| 欧美一区二区日韩三区| 婷婷久久五月综合激情| 国产极品馒头逼| 久九九九九九九九热| 中国的操老妇女| 四虎国产成人精品免费一女五男| 色嘟嘟人妻天堂网| 国产精品情侣啪啪| 亚洲熟女国产综合另类| 色av中文字| 国产一区96在线| 婷婷久久综合| 无码99| www.91色综合| 美女尤物福利视频| 91丨国产丨白浆| 97天天搞在线| 美女啊啊啊啊啊啊啊| 欧美制服网站美腿丝袜| 色穴精品| 欧中日成人免费影视| 殴美,日韩国产伦精品| 女人爽到高潮久久久| 大香蕉碰碰| 人妻久热在线| 手机不卡视频不卡在线一二三区| 蜜桃久久久久久久| 91丝袜激情在线| 国产精品不卡一区二区三区| 91久久久久久久| 国产av色网| 天天欲望网| 91另类| 亚洲黄色视频在线观看视频| 国产精品毛片?v一区二区三区 | 亚洲综合骚逼| 亚洲精品蜜桃久久久| 骚女天天综合网| 亚洲一区日韩精品中文字幕| 2018天天干在线视频| 丰满高潮18xxxx| 99精品在线播放| 天天操女人| 一区二区国产视频在线观看| 欧美专区17页| 大JI巴好深好爽又大又粗视频| 欧美视频一| 婷婷影院入口| 97午夜剧场日韩| 丁香七月婷婷| 国产亚洲女v在线观看| 亚洲AV永久无码一区仙野| 69精品少妇一区二区三区蜜桃| 九九热免费在线国产视频伊人五月| 中文幕97| 91日韩国产欧美亚洲另类精盘州至城都| 亚洲黑人在线| 日韩欧美中文| 亚洲精品97在线| 骚货 中文字幕 av| 欧美精品三级黄片| 国产AV超爽| 久久成年精品| 啊啊啊免费| 搡老女人老妇女AAA一VU麻豆| 亚洲日韩成人性爱视频| 宗合情欲网| 91日韩网站| 影音先锋新男人| 五月丁香啪啪啪| 国产成人天堂| 黄色免费一级在线毛片| 成人精品在线| 久湿久久| 精品国产一区二区三区四区在线看| 婷婷九月色| 久9久精品视频| 91操操操操| 亚洲无码99| 99最新日韩偷拍视频| 韩三级a视频在线观看| 亚洲日本成人动漫| 超碰97极品9| 无套内射人妻在线播放| 国产白嫩精品久久| 激情小说亚洲| 色玖玖| 老熟妇一区二区三区| 丁香六月激情| 91av天美性媒精品视频| 青春草莓视频在线观看网址| 骚逼高潮久久精品| 理论久久婷婷网8| 欧美强奸一区二区诱惑| 天堂涩涩| 免费在线黄片视频| 欧美少妇色综合| 婷婷在线视频在线观看| 91欧美偷拍| 日语五十路和六十路亚洲国产精品| 婷婷五月丁香五月| 超碰99在线| 狠狠操狠狠| 日本 情色 1区| 任你爽视频| 久99在线免费观看视频| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 欧美精品三级黄片| 九九玖玖精品| 中文字幕日韩专区精品系列| 97精品视频免费| 免费av高清无码| 国产精品第二页| 久久直播国产| 亚洲日韩黑丝| 激情五月综合网| 亚洲另类春色| 日韩精品人妻中文字幕有码午| 欧美极品美女aaaaaa级黄片| 一区| 最新国产亚洲精品精品国产亚洲综合| 欧美亚洲综合999| 99热这里只有精品地址| 97在线观| 欧美 综合| 国产 热久久久久国产精品| 99re综合伊人| 激情综合五| 欧美色图综合| 18禁久极品美女久久哦哟呀!| 免费看A片毛毛片在线播| 国产精品一二三| 久久女人一区二区三区| 黄色片A级一区二区三区| 天操老女人| 蜜桃臀一区二区aV| www.色五月| 51国产午夜精品视频| 欧美人人天天网| 九九99精品| 国产午夜精品理论片一二三区区| 中文字幕文字幕无码一区二区三区电影99| 8050无码八戒| 一区二区高清视频| 亚洲人久久久网| 99热这里都是精品| 欧美性生活免费网| 天天干18禁| 亚洲大胆人体av| 五月天伊人| 日韩激情小说一区二区| 九久9精品| 天堂射| 殴美性色a级欧美| 自拍偷拍 高清无码| 96精品久久| 五月开心久久AV官网| 亚 欧 美 综合| 欧美亚洲| 26uuu成人影片| 色吊丝 日日骚 清纯唯美| 麻豆性爱视频在线播放| 免费视频无码| 久久久久久久国产a∨| 日韩在线国产字幕| 日韩无码第3页| 成人片视频| 亚洲精品色| 超碰99在线| 精品性爱一二三区| 涩涩这里只有精品视频| 蜜桃狠狠色伊人亚洲综合网站| 免看60秒涩涩视频| 一区,二区,三区视频| 久久这里都是精品| 五月丁香影院| 日韩成人网址| 国产 v乱码一区二| 色伊人91| 日本熟女免费視颖| 久久久久久久久久va| 夜夜嗨视频| 久久免费9| 久久97视频| 免费国产| 丝袜天堂网| 亚洲十八禁止| 极品色电影院| 久久久久久久久久久久九| 精久久久91| 黑人中出21连凳花野真衣| 人妻夜夜爽天天爽麻豆三区网站| 99热综合| 校园春色制服丝袜中文字亚洲| 欧美日韩性爱精品| 色婷婷导航| 日韩操人| 亚洲精品男人的天堂| 一级黄色影片| 久久性爱视频| 激情综合网激情五月天| 人人操AV| 99久久com免费视频′| 欧美三级不卡| 大香蕉十区| 撸撸成人在线视频| 99色骚| 嫩草 我啊~嗯~在线| 99这里都是精品| 国产中文字幕在线观看| 少妇贴图| 欧美综合自拍| 久久久久久午夜男人的天堂| 欧美综合色图片| 精品人妻视频一区二区在线播放 | 久久精品国产亚洲粉嫩| 加勒比中文av| 中文字幕三四区| 一区二区三区美女超清| 韩三级a视频在线观看| 亚洲成人性| 亚洲无码久久久久久久| 好看的久久不射无码影视影院| 天美传媒Av在线| 九草九九九| 超碰碰97资源站| 日韩成人性日韩成人性爱视频在线免费观看| 韩国一级做a久久久久| 五月丁香六月综合缴清无码| 无码操逼网| 欧美一级色| 欧美人妻二区三区| 啊啊啊啊啊好舒服视频| 激情欧美97| av无线看| 人人摸人人干| 嗯嗯啊好大| 欧美日韩狠狠爱| 日韩成人精品| 久久99视频| 99re只有精品| 亚洲情色 自拍| 欧美大波激情xxxx| 日本在线不卡一二区| 久久久久久大| 欧美色图亚洲色,麻豆| 国产午夜在线观看| 日韩av在线播放不卡| 欧美熟妇乱码在线一区| 国产91丝袜在线播放蜜月| 91精品老女人| 午夜福利成人免费视频| 中文字幕版| 国产伊人精品在线| 国产黄色影片在线观看| 亚洲少妇喷视频看| 久久久久久少妇| 欧美区亚洲区偷拍区| 9久久精品| 加勒比伊人综合| 精品人妻中文字幕高清| 久久9视频| 亚洲视频二区 | 亚洲国产综合视频| 大香蕉丝袜一级片| 国产第二页| 亚洲 无码 偷拍| 色婷婷综合网| 91亚洲狠狠色| 十八岁啪啪视频免费看| 德国一二三不卡| 综合亚洲欧美| 午夜男女爽爽爽在线视频| 久久免费精品96| 韩国免费播放一级毛片| 一区二区 韩日AV| 亚洲日精品| 欧美专区日本专区| 亚热日本熟女| 亚洲阿v天堂无码z2018| 久久综合18p| 超碰97 线线 在现| 另类小说五月天| 午夜福利 成人 91| 蜜乳AV色欲AVAV无码| 日本最新1区2区3区| 强奸乱伦大香蕉| 欧美亚洲日韩16色| 可以在线观看的黄色网址| 91+欧美| 亚洲一区二区在线观看91| 色丁香五月婷婷| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 在线可观看的黄色网址| 91久久久老司机| 欧美日韩色综合网| 330dv亚洲成年视频网| 超碰人人操97碰| surenchaopeng| 中文字幕一区二区日韩网| 久久亚洲熟妇在线视频| 一区二区三区亚洲| 国产视频第2页| 国产成人免费观看在线视频| 午夜精品久久久99热蜜桃的功能特点| 国产成年精品高清在线观看91| 日本99一区二区| 国产h片在线观看视频| 蜜桃精品一区二区三区久在线| 国产偷拍自拍在线视频| 日日玩天天干| 激情99| 日韩免费簧片| 欧美综合网1| 国产成人无码久久精品| 密臀视频三区免费网站| 蜜色网色哟哟| 久操com| 精品少妇一区二区| 久久久蜜桃一区二区三区| 国产综合色精品在线观看| 日本不卡二三区| 99久久精品国产高潮| 97在线免费视频观看| 日韩影片中文字幕一区二区三区| 国产精品 久久久精品一牛| 啊啊啊啊好大好硬啊啊啊啊啊| 日韩不卡av一二三| 久久夜夜| daxiangjiao你懂的 | 久久久久久9| 欧洲一区二区三区免费| 亚洲综合射| 色综合色色| 一级做a爰片性色毛片久久| 蜜臀一二三| 9 9精品一区二区三区| 蜜乳AV免费观看| 五月婷婷青青草娱乐伊人| 密桃99999| 很黄很色的视频在线观看| 大逼色网站| 欧美少妇性乱| 日韩三级一区 | 久久久久精| 欧美日韩国产中文精品字幕自在自线 | 强被迫伦姧在线观看无码网站| 日韩精品9区| 国模限制级电影| 亚洲国产麻豆一区二区三区| 97操| 国产美女91| 伊人精品视频| 国产欧美日韩女同性恋ww喷水精品| 久久综合亚洲色1080p| 九九久久玖玖| 人人操人人精品影片| 亚洲精品天天影视综合网 | 日本韩国国产精品一区| 日日97| 91丨精品丨国产丨丝袜| 69AV女优男人的天堂| 这里都是精品在线观看| 亚洲精品国产熟女| 97啪啪| 亚洲色图A| 天天影视网色欲色香| 色狠狠综合噜一二三区| 99热最新网址| 久久久久久AⅤ无码免费肉站 | 女人的久久久| 狼人久草| 91粉嫩萝控精品福利网站_精品影音先锋国| 男插女青青影院| 97精品在线视频| avav青青草久久夜| 亚洲一二三四区在线免费看视频| 日韩午夜国产| 一区二区 日韩 欧美 国产 传媒| 91美女丝袜诱惑视频| 亚洲精品视频在线播放| 国产浮力影院第1页| 亚洲伊人a线观看视频| 操屄日韩| 欧美视频一| 凹凸视频在线一区二区| 天天日天天干少妇日| 四虎在线视频| 99999久久精| 精品十八在线观看| 免费视频观看60秒| 老熟女阿 国产91| 9美女超碰在线免费观看| 一区二区三区四区在线不卡| 国产精品熟妇一区二区三| 天天舔九色婷婷| 久久久久久中文版| 夜夜久久| 韩国国产欧美情侣视频在线| 丝袜av一区二区三区| 天天看高清麻豆| 天天操人人操骚逼网站| 亚洲日韩久久精品一区| 毛片麻豆91糖心精品毛情片| 亚州Av天美传媒| 亚洲综合色在线| 大香蕉日韩欧美| 欧美热图99| 亚洲天天更新| 色激情综合网站| 无码免费在线观看黄色片| 91在线超高颜值国产| 无码免费精品高清| 丁香婷婷久久 | 99综合自拍| 9999九九九久久久| 老司机福利社视频在线观看| 九九九久久久W精品| av中亚| 五十路六十路素人熟女| 先锋色眉乱伦资源| 亚洲午夜福利视频| 婷婷六月天| 人人摸人人干| 久热99999| 啊啊啊啊啊啊好多水| 亚洲一区中文精品| 国产精品久久久久中文字幕| 久久激情视频| 亚洲情色一区三区| 日日玩天天干| 亚洲色图综合| 秋霞蝌科网日本一区| 色99久草| 午夜毛片亚洲精品片国产久久久| 午夜福利一区二区影院| 天天躁日日躁AAA片李宗瑞| 男人天堂2019亚洲| 91成人社区| 亚洲在线a| 盗摄女人妻在线| 精品国产乱码久久久久久影片| 98精品国产乱码久久久久久| 九九热re99re6在线精品| 日本精品中文字幕视频| 九九性爱网| 国产传媒1234区| 东京热91| 一起草日韩| 欧洲综合视频| 欧美精品亚洲精品日韩传电影| 国产97在线视频| 久久鲁干| 麻豆精品A片免费观看| 蜜臀99久| 久久99午夜精品一区人妻| 国产人伦精品一区二区三区| 毛片99-全集电影手机免费观看完整-B029AV | 屁屁影院一区二区三区国产| 旡码电影特区| 色路综合| 97人人操人人摸人人爱| 一区久久久二区| 国产精品成人午夜福利| 成人性爱美曰韩| 东北女人被操| 97超碰站| www.色婷婷.com| 精品久操| 久久久久久精品免费看A级| 99国产在线绯色一区| 美女啊啊啊啊啊| 日本护士高潮| 91色堂| 人人操人人插人人摸人人干| 日韩美女久久一区二区三区| 就去色综合| 久久精品三级影视| 青青操视频在线| 午夜精品久久久久久久久久蜜桃| 资源在线观一 二| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 亚洲色狠| 大香蕉男女超碰精品在线| 草B在线| av天堂手机版追回| 91AV天美在线视频| 双插性欧美一二三区| 久久久久久久久久黄色网| 乱伦日本中文自拍| 九九九九九九亚洲| 3PAV乱伦视频| 97青青操视频| 国产色产精品在线观看| 亚洲色图在线视频| 亚洲91色| 久久久久国产亚洲一区欧美色图日韩| 九t超碰| 日韩欧美视频青青| 91人人| 国产精品久久9| 亚洲国产美女久久久久| 大香蕉免| 精品人妻1区| 欧美久久人妻少妇一区二区| 欧美十八禁导航成人| 91精品久久久久久久久久| 国产 亚洲 丝袜 制服| 黄色av播放免不| 日本污ww视频网站| 男人天堂2019| 精品大久久| 欧美人人曰人人操人人射射 | 老熟妇一区二区三区…| 欧亚日韩综合精品国产| 国产日韩在线播放| 亚洲成成熟女人综合一区二区| 日本三级中国三级99人妇网站| 天天综合网日韩| 日韩情色AV| 五月天婷精品激情| 中文字幕激情小说| 久久久不能久久久久| 日本一区视频在线观看| 韩国毛片一区二区三区| 五月丁香婷婷色| 网站A V在线| 中文子幕一二三| 久久久久免费少妇| 亚洲一卡二卡在线免费| 日韩高清一二三| 91色综| 美国一区二区三区视频| 18精品一二区| 色91综合网| 韩国一级婬片A片AAAAA| 欧美第一页| 亚洲人码13| 免费观看欧美日韩操逼视频| 思思热在线视频免费| 亚洲性猛| 亚洲18禁| 操比国产| 亚洲 无码 偷拍| 中文字幕第95页| 精品大久久| 麻豆国产96在线| yaouchengrenav| 欧美色图亚洲色,麻豆| 亚洲精品欧美专业| 女人爽到高潮潮喷18禁网站| 日韩激情无码影院| 蜜桃久久一区| 男人的天堂VA在线| 欧美性爱五月天| 国产99精品一区二区三区免费| 黄色成年| 欧美精品久久| 精精夜夜| 大香蕉综合| 中文字幕一区二区在线日韩精品| 亚洲在线a| 欧美在线第五页| 五十路熟女工口| 性色一线| 看一级黄色视频| 国产女人与拘做受视频免费| 九九九九热| 日韩精品亚洲一二三| 亚洲天堂人人妻| 国产最新AV| 99热自拍| 人人操人人摸人| 日本黄色大片一级视频免费麻豆| 青青草久草| 亚洲资源吧| 亚洲无限观看| 青青草日本中文字幕 | 亚洲天堂欧美| 亚洲图片欧美偷拍| 亚洲,欧美,综合网| 男人网站婷婷| 欧亚久久偷拍视频| 久草视频制服诱惑| 五月丁香啪| 日韩成人网址| 久久东京国产精品视频| 特级毛片特黄久久免费看| 国产一区二区三三视频| 欧美精品69性爱| 久久狠狠色噜噜狠狠狠狠97| 久久精品区| 性爱乱伦网址| 免费啪啪一级视频| 91成人久久| 韩国黄片aaaa| 国模不卡| 粉嫩粉嫩一区性色AV片| 美女午夜福利免费视频| 精品久久久久久中文字幕三区| 91精品人妻偷情| 日韩欧美福利视频看看| 在线视频亚洲无码| 亚洲本色精品一区二区久久| 成人羞羞视频国产| 国产精品久久久啊| 6080yy午夜理论三级一区二区三区无码| 高潮嗯啊性感美女久久久| 狠狠躁AV| 九九九久千久久激情蜜桃在线看| 久久综合18p| 黄色二级片网站| 青娱乐大香蕉| 午夜福利在线合集| 呻吟 欧美 日本 中出| 91网站在线播放| 亚洲情色 自拍| 91丝袜美女视频| 日本性感人妻91|