精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MSSQL · 特性分析 · 列存儲技術做實時分析

存儲 存儲軟件
使用傳統(tǒng)RDBMS數(shù)據(jù)分析架構,遇到了前所未有的挑戰(zhàn),高延遲、數(shù)據(jù)處理流程復雜和成本過高。這篇文章討論如何利用SQL Server 2016列存儲技術做實時數(shù)據(jù)分析,解決傳統(tǒng)分析方法的痛點。

數(shù)據(jù)分析指導商業(yè)行為的價值越來越高,使得用戶對數(shù)據(jù)實時分析的要求變得越來越高。使用傳統(tǒng)RDBMS數(shù)據(jù)分析架構,遇到了***的挑戰(zhàn),高延遲、數(shù)據(jù)處理流程復雜和成本過高。這篇文章討論如何利用SQL Server 2016列存儲技術做實時數(shù)據(jù)分析,解決傳統(tǒng)分析方法的痛點。

傳統(tǒng)RDBMS數(shù)據(jù)分析

在過去很長一段時間,企業(yè)均選擇傳統(tǒng)的關系型數(shù)據(jù)庫做OLAP和Data Warehouse工作。這一節(jié)討論傳統(tǒng)RDBMS數(shù)據(jù)分析的結構和面臨的挑戰(zhàn)。

傳統(tǒng)RDBMS分析架構

傳統(tǒng)關系型數(shù)據(jù)庫做數(shù)據(jù)分析的架構,按照功能模塊可以劃分為三個部分:

OLTP模塊:OLTP的全稱是Online Transaction Processing,它是數(shù)據(jù)產生的源頭,對數(shù)據(jù)的完整性和一致性要求很高;對數(shù)據(jù)庫的反應時間(RT: Response Time)非常敏感;具有高并發(fā),多事務,高響應等特點。

ETL模塊:ETL的全稱是Extract Transform Load。他是做數(shù)據(jù)清洗、轉化和加載工作的。可以將ETL理解為數(shù)據(jù)從OLTP到Data Warehouse的“搬運工”。ETL***的特定是具有延時性,為了***限度減小對OLTP的影響,一般會設計成按小時,按天或者按周來周期性運作。

OLAP模塊:OLAP的全稱是Online Analytic Processing,它是基于數(shù)據(jù)倉庫(Data Warehouse)做數(shù)據(jù)分析和報表呈現(xiàn)的終端產品。數(shù)據(jù)倉庫的特點是:數(shù)據(jù)形態(tài)固定,幾乎或者很少發(fā)生數(shù)據(jù)變更,統(tǒng)計查詢分析讀取數(shù)據(jù)量大。

傳統(tǒng)的RDBMS分析模型圖,如下圖展示(圖片直接截取自微軟的培訓材料):

 

從這個圖,我們可以非常清晰的看到傳統(tǒng)RDBMS分析模型的三個大的部分:在圖的最左邊是OLTP業(yè)務場景,負責采集和產生數(shù)據(jù);圖的中部是ETL任務,負責“搬運”數(shù)據(jù);圖的右邊是OLAP業(yè)務場景,負責分析數(shù)據(jù),然后將分析結果交給BI報表展示給最終用戶。企業(yè)使用這個傳統(tǒng)的架構長達數(shù)年,遇到了不少的挑戰(zhàn)和困難。

面臨的挑戰(zhàn)

商場如戰(zhàn)場,戰(zhàn)機隨息萬變,數(shù)據(jù)分析結果指導商業(yè)行為的價值越來越高,使得數(shù)據(jù)分析結果變得越來越重要,用戶對數(shù)據(jù)實時分析的要求變得越來越高。使用傳統(tǒng)RDBMS分析架構,遇到了***的挑戰(zhàn),主要的痛點包括:

  • 數(shù)據(jù)延遲大
  • 數(shù)據(jù)處理流程冗長復雜
  • 成本過高

數(shù)據(jù)延遲大:為了減少對OLTP模塊的影響,ETL任務往往會選擇在業(yè)務低峰期周期性運作,比如凌晨。這就會導致OLAP分析的數(shù)據(jù)源Data Warehouse相對于OLTP有至少一天的時間差異。這個時間差異對于某些實時性要求很高的業(yè)務來說,是無法接受的。比如:銀行卡盜刷的檢查服務,是需要做到秒級別通知持卡人的。試想下,如果你的銀行卡被盜刷,一天以后才收到銀行發(fā)過來的短信提醒,會是多么糟糕的體驗。

數(shù)據(jù)處理流程冗長復雜:數(shù)據(jù)是通過ETL任務來抽取、清洗和加載到Data Warehouse中的。為了保證數(shù)據(jù)分析結果的正確性,ETL還必須要解決一系列的問題。比如:OLTP變更數(shù)據(jù)的捕獲,并同步到Data Warehouse;周期性的進行數(shù)據(jù)全量和增量更新來確保OLTP和Data Warehouse中數(shù)據(jù)的一致性。整個數(shù)據(jù)流冗長,實現(xiàn)邏輯異常復雜。

成本過高:為了實現(xiàn)傳統(tǒng)的RDBMS數(shù)據(jù)分析功能,必須新增Data Warehouse角色來保存所有的OLTP數(shù)據(jù)冗余,專門提供分析服務功能。這勢必會加大了硬件、軟件和維護成本投入;隨之還會到來ETL任務做數(shù)據(jù)抓取、清洗、轉換和加載的開發(fā)成本和時間成本投入。

那么,SQL Server有沒有一種技術既能解決以上所有痛點的方法,又能實現(xiàn)數(shù)據(jù)實時分析呢?當然有,那就是SQL Server 2016列存儲技術。

SQL Server 2016列存儲技術做實時分析

為了解決OLAP場景的查詢分析,微軟從SQL Server 2012開始引入列存儲技術,大大提高了OLAP查詢的性能;SQL Server 2014解決了列存儲表只讀的問題,使用場景大大拓寬;而SQL Server 2016的列存儲技術徹底解決了實時數(shù)據(jù)分析的業(yè)務場景。用戶只需要做非常小規(guī)模的修改,便可以可以非常平滑的使用SQL Server 2016的列存儲技術來解決實時數(shù)據(jù)分析的業(yè)務場景。這一節(jié)討論以下幾個方面:

SQL Server 2016數(shù)據(jù)分析架構

  • Disk-based Tables with Nonclustered Columnstore Index
  • Memory-based Tables with Columnstore Index
  • Minimizing impacts of OLTP

SQL Server 2016數(shù)據(jù)分析架構

SQL Server 2016數(shù)據(jù)分析架構相對于傳統(tǒng)的RDBMS數(shù)據(jù)分析架構有了非常大的改進,變得更加簡單。具體體現(xiàn)在OLAP直接接入OLTP數(shù)據(jù)源,如此就無需Data Warehouse角色和ETL任務這個“搬運工”了。

OLAP直接接入OLTP數(shù)據(jù)源:讓OLAP報表數(shù)據(jù)源直接接入OLTP的數(shù)據(jù)源頭上。SQL Server會自動選擇合適的列存儲索引來提高數(shù)據(jù)分析查詢的性能,實現(xiàn)實時數(shù)據(jù)分析的場景。

不再需要ETL任務:由于OLAP數(shù)據(jù)源直接接入OLTP的數(shù)據(jù),沒有了Data Warehouse角色,所以不再需要ETL任務,從而大大簡化了數(shù)據(jù)處理流程中的各環(huán)節(jié),沒有了相應的開發(fā)維護和時間成本。

SQL Server 2016實時分析架構圖,展示如下(圖片來自微軟培訓教程):

 

 

 

 

SQL Server 2016之所以能夠實現(xiàn)如此簡化的實時分析,底氣是來源于SQL Server 2016的列存儲技術,我們可以建立基于磁盤存儲或者基于內存存儲的列存儲表來進行實時數(shù)據(jù)分析。

Disk-based Tables with Nonclustered Columnstore Index

使用SQL Server 2016列存儲索引實現(xiàn)實時分析的***種方法是為表建立非聚集列存儲索引。在SQL Server 2012版本中,僅支持非聚集列存儲索引,并且表會成為只讀,而無法更新;在SQL Server 2014版本中,支持聚集列存儲索引表,且數(shù)據(jù)可更新;但是非聚集列存儲索引表還是只讀;而在SQL Server 2016中,完全支持非聚集列存儲索引和聚集列存儲索引,并且表可更新。所以,在SQL Server 2016版本中,我們完全可以建立非聚集列存儲索引來實現(xiàn)OLAP的查詢場景。創(chuàng)建方法示例如下:

  1. DROP TABLE IF EXISTS dbo.SalesOrder; 
  2. GO 
  3. CREATE TABLE dbo.SalesOrder 
  4.     OrderID BIGINT IDENTITY(1,1) NOT NULL 
  5.     ,AutoID INT NOT NULL 
  6.     ,UserID INT NOT NULL 
  7.     ,OrderQty INT NOT NULL 
  8.     ,Price DECIMAL(8,2) NOT NULL 
  9.     ,OrderDate DATETIME NOT NULL 
  10.     ,OrderStatus SMALLINT NOT NULL 
  11.     CONSTRAINT PK_SalesOrder PRIMARY KEY NONCLUSTERED (OrderID) 
  12. ) ; 
  13. GO 
  14.  
  15. --Create the columnstore index with a filtered condition   
  16. CREATE NONCLUSTERED COLUMNSTORE INDEX NCCI_SalesOrder  
  17. ON dbo.SalesOrder (OrderID, AutoID, UserID, OrderQty, Price, OrderDate, OrderStatus) 
  18. GO 

在這個實例中,我們創(chuàng)建了SalesOrder表,并且為該表創(chuàng)建了非聚集列存儲索引,當進行OLAP查詢分析的時候,SQL Server會直接從該列存儲索引中讀取數(shù)據(jù)。

Memory-based Tables with Columnstore Index

SQL Server 2014版本引入了In-Memory OLTP,又或者叫著Hekaton,中文稱之為內存優(yōu)化表,內存優(yōu)化表完全是Lock Free、Latch Free的,可以***限度的增加并發(fā)和提高響應時間。而在SQL Server 2016中,如果你的服務器內存足夠大的話,我們完全可以建立基于內存優(yōu)化表的列存儲索引,這樣的表數(shù)據(jù)會按列存儲在內存中,充分利用兩者的優(yōu)勢,***程度的提高查詢查詢效率,降低數(shù)據(jù)庫響應時間。創(chuàng)建方法實例如下:

  1. DROP TABLE IF EXISTS dbo.SalesOrder; 
  2. GO 
  3. CREATE TABLE dbo.SalesOrder 
  4.     OrderID BIGINT IDENTITY(1,1) NOT NULL 
  5.     ,AutoID INT NOT NULL 
  6.     ,UserID INT NOT NULL 
  7.     ,OrderQty INT NOT NULL 
  8.     ,Price DECIMAL(8,2) NOT NULL 
  9.     ,OrderDate DATETIME NOT NULL 
  10.     ,OrderStatus SMALLINT NOT NULL 
  11.     CONSTRAINT PK_SalesOrder PRIMARY KEY NONCLUSTERED HASH (OrderID) WITH (BUCKET_COUNT = 10000000) 
  12. WITH(MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA) ; 
  13. GO 
  14.  
  15. ALTER TABLE dbo.SalesOrder 
  16.     ADD INDEX CCSI_SalesOrder CLUSTERED COLUMNSTORE 
  17. GO 

在這個實例中,我們創(chuàng)建了基于內存的優(yōu)化表SalesOrder,持久化方案為表結構和數(shù)據(jù);然后在這個內存表上建立聚集列存儲索引。當OLAP查詢分析執(zhí)行的時候,SQL Server可以直接從基于內存的列存儲索引中獲取數(shù)據(jù),大大提高查詢分析的能力。

Minimizing impacts of OLTP

考慮到OLTP數(shù)據(jù)源的高并發(fā),低延遲要求的特性,在某些非常高并發(fā)事務場景中,我們可以采用以下方法***限度減少對OLTP的影響:

  • Filtered NCCI + Clustered B-Tree Index
  • Compress Delay
  • Offloading OLAP to AlwaysOn Readable Secondary
  • Filtered NCCI + Clustered B-Tree Index

帶過濾條件的索引在SQL Server產品中并不是什么全新的概念,在SQL Server 2008及以后的產品版本中,均支持創(chuàng)建過濾索引,這項技術允許用戶創(chuàng)建存在過濾條件的索引,以加速特定條件的查詢語句使用過濾索引。而在SQL Server 2016中支持存在過濾條件的列存儲索引,我們可以使用這項技術來區(qū)分數(shù)據(jù)的冷熱程度(數(shù)據(jù)冷熱程度是指數(shù)據(jù)的修改頻率;冷數(shù)據(jù)是指幾乎或者很少被修改的數(shù)據(jù);熱數(shù)據(jù)是指經(jīng)常會被修改的數(shù)據(jù)。比如在訂單場景中,訂單從生成狀態(tài)到客戶收到貨物之間的狀態(tài),會被經(jīng)常更新,屬于熱數(shù)據(jù);而客人一旦收到貨物,訂單信息幾乎不會被修改了,就屬于冷數(shù)據(jù))。利用過濾列存儲索引來區(qū)分冷熱數(shù)據(jù)的技術,是使用聚集B-Tree索引來存放熱數(shù)據(jù),使用過濾非聚集列存儲索引來存放冷數(shù)據(jù),這樣SQL Server 2016的優(yōu)化器可以非常智能的從非聚集列存儲索引中獲取冷數(shù)據(jù),從聚集B-Tree索引中獲取熱數(shù)據(jù),這樣使得OLAP操作與OLTP事務操作邏輯隔離開來,最終OLAP***限度的減少對OLTP的影響。

下圖直觀的表示了Filtered NCCI + Clustered B-Tree Index的結構圖(圖片來自微軟培訓教程):

 

實現(xiàn)方法參見以下代碼:

  1. -- create demo table SalesOrder 
  2. DROP TABLE IF EXISTS dbo.SalesOrder; 
  3. GO 
  4. CREATE TABLE dbo.SalesOrder 
  5.     OrderID BIGINT IDENTITY(1,1) NOT NULL 
  6.     ,AutoID INT NOT NULL 
  7.     ,UserID INT NOT NULL 
  8.     ,OrderQty INT NOT NULL 
  9.     ,Price DECIMAL(8,2) NOT NULL 
  10.     ,OrderDate DATETIME NOT NULL 
  11.     ,OrderStatus SMALLINT NOT NULL 
  12.     CONSTRAINT PK_SalesOrder PRIMARY KEY NONCLUSTERED (OrderID) 
  13. ) ; 
  14. GO 
  15. /* 
  16. — OrderStatus Description 
  17. — 0 => ‘Placed’  
  18. — 1 => ‘Closed’ 
  19. — 2 => ‘Paid’ 
  20. — 3 => ‘Pending’ 
  21. — 4 => ‘Shipped’ 
  22. — 5 => ‘Received’ 
  23. */ 
  24.  
  25. CREATE CLUSTERED INDEX  CI_SalesOrder  
  26. ON dbo.SalesOrder(OrderStatus) 
  27. GO 
  28.   
  29. --Create the columnstore index with a filtered condition   
  30. CREATE NONCLUSTERED COLUMNSTORE INDEX NCCI_SalesOrder  
  31. ON dbo.SalesOrder (AutoID, Price, OrderQty, orderstatus)   
  32. WHERE orderstatus = 5   
  33. ;   
  34. GO 

在這個實例中,我們創(chuàng)建了SalesOrder表,并在OrderStatus字段上建立了Clustered B-Tree結構的索引CI_SalesOrder,然后再建立了帶過濾條件的非聚集列存儲索引NCCI_SalesOrder。當客人還未收到貨物的訂單,會處于前面五中狀態(tài),屬于需要經(jīng)常更新的熱數(shù)據(jù),SQL Server查詢會根據(jù)Clustered B-Tree索引CI_SalesOrder來查詢數(shù)據(jù);客人已經(jīng)收貨的訂單,處于第六種狀態(tài),屬于冷數(shù)據(jù),SQL Server查詢冷數(shù)據(jù)會直接從非聚集列存儲索引中獲取數(shù)據(jù)。從而***限度減少對OLTP影響的同時,提高查詢效率。

Compress Delay

如果按照業(yè)務邏輯層面很難明確劃分出數(shù)據(jù)的冷熱程度,也就是說很難從過濾條件來邏輯區(qū)分數(shù)據(jù)的冷熱。這種情況下,我們可以使用延遲壓縮(Compress Delay)技術從時間層面來區(qū)分冷熱數(shù)據(jù)。比如:我們定義超過60分鐘的數(shù)據(jù)為冷數(shù)據(jù),60分鐘以內的數(shù)據(jù)為熱數(shù)據(jù),那么我們可以在創(chuàng)建列存儲索引的時候添加WITH選項COMPRESSION_DELAY = 60 Minutes。當數(shù)據(jù)產生超過60分鐘以后,數(shù)據(jù)會被壓縮存放到列存儲索引中(冷數(shù)據(jù)),60分鐘以內的數(shù)據(jù)會駐留在Delta Store的B-Tree結構中,這種延遲壓縮的技術不但能夠達到隔離OLAP對OLTP作用,還能***限度的減少列存儲索引碎片的產生。

實現(xiàn)方法參見以下例子:

  1. -- create demo table SalesOrder 
  2. DROP TABLE IF EXISTS dbo.SalesOrder; 
  3. GO 
  4. CREATE TABLE dbo.SalesOrder 
  5.     OrderID BIGINT IDENTITY(1,1) NOT NULL 
  6.     ,AutoID INT NOT NULL 
  7.     ,UserID INT NOT NULL 
  8.     ,OrderQty INT NOT NULL 
  9.     ,Price DECIMAL(8,2) NOT NULL 
  10.     ,OrderDate DATETIME NOT NULL 
  11.     ,OrderStatus SMALLINT NOT NULL 
  12.     CONSTRAINT PK_SalesOrder PRIMARY KEY NONCLUSTERED (OrderID) 
  13. ) ; 
  14. GO 
  15.  
  16. --Create the columnstore index with a filtered condition   
  17. CREATE NONCLUSTERED COLUMNSTORE INDEX NCCI_SalesOrder  
  18. ON dbo.SalesOrder (AutoID, Price, OrderQty, orderstatus)   
  19. WITH(COMPRESSION_DELAY = 60 MINUTES) 
  20. ;   
  21. GO 
  22.  
  23. SELECT name 
  24.         ,type_desc 
  25.         ,compression_delay  
  26. FROM sys.indexes 
  27. WHERE object_id = object_id('SalesOrder'
  28.     AND name = 'NCCI_SalesOrder' 

檢查索引信息截圖如下:

 

Offloading OLAP to AlwaysOn Readable Secondary

另外一種減少OLAP對OLTP影響的方法是利用AlwaysOn只讀副本,這種情況,可以將OLAP數(shù)據(jù)源從OLTP剝離出來,接入到AlwaysOn的只讀副本上。AlwaysOn的主副本負責事務處理,只讀副本可以作為OLAP的數(shù)據(jù)分析源,這樣實現(xiàn)了OLAP與OLTP的物理隔離,將影響減到***。架構圖如下所示(圖片來自微軟培訓教程):

 

一個實際例子

在訂單系統(tǒng)場景中,用戶收到貨物過程,每個訂單會經(jīng)歷6中狀態(tài),假設為Placed、Canceled、Paid、Pending、Shipped和Received。在前面5中狀態(tài)的訂單,會被經(jīng)常修改,比如:打包訂單,出庫,更新快遞信息等,這部分經(jīng)常被修改的數(shù)據(jù)稱為熱數(shù)據(jù);而訂單一旦被客人接受以后,訂單數(shù)據(jù)就幾乎不會被修改,這部分數(shù)據(jù)稱為冷數(shù)據(jù)。這個例子就是使用SQL Server 2016 Filtered NCCI + Clustered B-Tree索引的方式來邏輯劃分出數(shù)據(jù)的冷熱程度,SQL Server在查詢過程中,會從非聚集列存儲索引中取冷數(shù)據(jù),從B-Tree索引中取熱數(shù)據(jù),***限度提高OLAP查詢效率,減少對OLTP的影響。

具體建表代碼實現(xiàn)如下:

  1. -- create demo table SalesOrder 
  2. DROP TABLE IF EXISTS dbo.SalesOrder; 
  3. GO 
  4. CREATE TABLE dbo.SalesOrder 
  5.     OrderID BIGINT IDENTITY(1,1) NOT NULL 
  6.     ,AutoID INT NOT NULL 
  7.     ,UserID INT NOT NULL 
  8.     ,OrderQty INT NOT NULL 
  9.     ,Price DECIMAL(8,2) NOT NULL 
  10.     ,OrderDate DATETIME NOT NULL 
  11.     ,OrderStatus SMALLINT NOT NULL 
  12.     CONSTRAINT PK_SalesOrder PRIMARY KEY NONCLUSTERED (OrderID) 
  13. ) ; 
  14. GO 
  15. /* 
  16. — OrderStatus Description 
  17. — 0 => ‘Placed’  
  18. — 1 => ‘Closed’ 
  19. — 2 => ‘Paid’ 
  20. — 3 => ‘Pending’ 
  21. — 4 => ‘Shipped’ 
  22. — 5 => ‘Received’ 
  23. */ 
  24.  
  25. CREATE CLUSTERED INDEX  CI_SalesOrder  
  26. ON dbo.SalesOrder(OrderStatus) 
  27. GO 
  28.   
  29. --Create the columnstore index with a filtered condition   
  30. CREATE NONCLUSTERED COLUMNSTORE INDEX NCCI_SalesOrder  
  31. ON dbo.SalesOrder (AutoID, Price, OrderQty, orderstatus)   
  32. WHERE orderstatus = 5   
  33. ;   
  34. GO 

為了能夠直觀的看到利用SQL Server 2016列存儲索引實現(xiàn)實時分析的效果,我虛擬了一個網(wǎng)絡汽車銷售訂單系統(tǒng),使用NodeJs + SQL Server 2016 Columnstore Index + Socket.IO來實現(xiàn)實時訂單銷量和銷售收入的分析頁面。

總結

這篇文章講解利用SQL Server 2016列存儲索引技術實現(xiàn)數(shù)據(jù)實時分析的兩種方法,以解決傳統(tǒng)RDBMS數(shù)據(jù)分析的高延遲、高成本的痛點。***種方法是Hekaton + Clustered Columnstore Index;第二種方法是Filtered Nonclustered Columnstore Index + Clustered B-Tree。本文并以此理論為基礎,展示了一個網(wǎng)絡汽車在線銷售系統(tǒng)的實時訂單分析頁面。

責任編輯:武曉燕 來源: 云棲社區(qū)
相關推薦

2016-06-13 14:38:46

開源Skydive

2016-10-31 19:19:20

實時分析

2016-09-17 00:12:46

2016-11-29 09:27:22

Apache SparDashboard構建

2020-05-15 10:28:04

實時分析客戶需求CIO

2022-07-14 15:08:21

SQL數(shù)據(jù)驅動NoSQL

2016-05-12 09:12:30

IBM大型機實時分析

2016-08-31 14:41:31

大數(shù)據(jù)實時分析算法分類

2023-10-31 15:40:12

2021-06-07 10:20:26

實時分析IT領導者CIO

2014-02-21 16:46:57

英特爾大數(shù)據(jù)技術實時分析

2012-02-21 10:25:35

SAPHANA實時分析

2020-04-08 12:03:16

PyFlinkCDN日志

2014-01-22 11:22:44

華為HANA一體機FusionCube大數(shù)據(jù)分析

2019-08-19 14:24:39

數(shù)據(jù)分析Spark操作

2016-11-09 15:23:44

2024-06-04 14:10:00

FlinkSQL窗口大數(shù)據(jù)

2024-06-06 08:58:08

大數(shù)據(jù)SQLAPI

2024-01-09 16:02:11

數(shù)據(jù)庫流服務大數(shù)據(jù)

2020-09-17 14:32:18

數(shù)據(jù)倉庫HiveImpala
點贊
收藏

51CTO技術棧公眾號

avove在线播放| 免费在线观看视频a| 亚洲 小说区 图片区| 欧美国产美女| 日韩写真欧美这视频| 欧美一区二区视频在线播放| 亚洲AV成人无码一二三区在线| 水野朝阳av一区二区三区| 亚洲毛片在线免费观看| wwwwwxxxx日本| 波多野结衣在线高清| 99re这里只有精品首页| 国产精品男人的天堂| 青青青在线视频| 欧美精美视频| 日韩欧美高清在线| 激情视频综合网| 亚洲综合伊人久久大杳蕉| 久久久一区二区三区捆绑**| 91中文字幕一区| 99久久久久久久久| 欧美视频日韩| 日韩一区二区av| 给我看免费高清在线观看| 久久亚洲资源中文字| 欧美日韩国产黄| 免费成人进口网站| 东热在线免费视频| 99久久精品免费精品国产| 国产在线视频2019最新视频| 在线能看的av| 欧美午夜影院| 久久在线免费观看视频| a级片在线观看| 一区二区三区在线资源| 欧美日韩国产免费一区二区| 免费 成 人 黄 色| 污污的网站在线免费观看| 国产九一精品| 欧美成人官网二区| 久国产精品视频| 日韩欧美精品一区二区综合视频| 精品久久久久久久久久久| 国产高清不卡无码视频| 黄色在线观看网站| 国产精品免费av| 欧美中日韩一区二区三区| 日本精品999| 国产高清不卡二三区| 成人黄色生活片| 青青青手机在线视频| 欧美自拍一区| 精品国产91亚洲一区二区三区婷婷| 亚洲免费黄色网| 国产黄色精品| 欧美三级资源在线| 校园春色 亚洲色图| 欧美日韩美女| 日本高清成人免费播放| 亚洲精品乱码久久久久久自慰| www.51av欧美视频| 五月婷婷欧美视频| a√天堂在线观看| 亚洲啊v在线| 第一福利永久视频精品| 色女人综合av| 黄色小视频在线免费观看| 91网站最新网址| 欧美一进一出视频| 9i精品一二三区| 国产精品久久久久影视| 人人妻人人澡人人爽精品欧美一区| h网站在线免费观看| 国产精品久久精品日日| 国产对白在线播放| 青草av在线| 精品久久久国产精品999| 欧美 日韩 国产一区| 欧美大胆成人| 欧美日产国产精品| 亚洲视频在线不卡| 依依综合在线| 欧美性淫爽ww久久久久无| 一区二区三区视频网| 国产精品久久久久久久久久久久久久久| 欧美一区二区三区的| 国产成人精品一区二区在线小狼| 大伊香蕉精品在线品播放| 日韩精品中文字| 国产一二三四区在线| 一本一道久久综合狠狠老| 久久久久久久久爱| 小嫩苞一区二区三区| 欧美日韩国产在线一区| 91国语精品自产拍在线观看性色| 亚洲黄色免费观看| 激情欧美一区二区| 精品久久久久久亚洲| 99精品久久久久久中文字幕| 成人福利电影精品一区二区在线观看| 欧美高清性xxxxhdvideosex| 日本三级在线视频| 香蕉成人啪国产精品视频综合网 | 色天天久久综合婷婷女18| 欧美成人bangbros| 丰满少妇高潮一区二区| 重囗味另类老妇506070| 欧亚精品中文字幕| 国产suv一区二区| 久久久综合视频| 9999在线观看| 日韩精品专区| 日韩你懂的电影在线观看| 久久久久久久久久久久| 欧美午夜一区| 国产在线观看精品| 欧美黄色小说| 91亚洲永久精品| 中文字幕欧美日韩一区二区| 午夜激情电影在线播放| 欧美一级理论性理论a| 好吊视频在线观看| 一本色道久久综合亚洲精品不卡| 欧美夫妻性生活xx| 日韩av免费播放| av亚洲精华国产精华精华| 国产精品一区视频| 国产毛片av在线| 精品福利免费观看| 波多野吉衣在线视频| 欧美国产一区二区三区激情无套| 日本三级久久久| 人妻视频一区二区三区| 怡红院av一区二区三区| 91女神在线观看| 精品久久久久久久久久久下田| 97超级碰碰碰久久久| 成人爽a毛片一区二区| 成人免费在线视频观看| 国产高清免费在线| 日本在线中文字幕一区二区三区| 亚洲精品久久在线| 国产特黄级aaaaa片免| 欧美日韩国产在线观看网站| 97不卡在线视频| 色wwwwww| 国产日韩欧美一区二区三区综合| 免费看黄在线看| 91在线一区| 欧美精品久久久久久久久| 精品人妻aV中文字幕乱码色欲 | 少妇aaaaa| 欧美久久一区| 亚洲最大的免费| 大片免费在线观看| 五月激情丁香一区二区三区| 国产伦理在线观看| 激情欧美丁香| 国产精品视频免费一区| 999精品网| 亚洲成人免费在线视频| 日韩精品在线免费看| 不卡免费追剧大全电视剧网站| youjizz.com在线观看| 99精品在免费线中文字幕网站一区 | 天天操狠狠操夜夜操| 久久美女精品| 亚洲bt欧美bt日本bt| 日韩123区| 亚洲精品在线观| 久久久久亚洲av成人毛片韩| 久久蜜桃av一区精品变态类天堂 | 182在线视频观看| 亚洲黄色www| 亚洲毛片亚洲毛片亚洲毛片| 毛片基地黄久久久久久天堂| 中文字幕中文字幕在线中一区高清| 亚洲最大的免费视频网站| 欧美日本高清视频| 亚洲区小说区图片区| 欧美性一级生活| 午夜免费激情视频| 99re这里都是精品| 亚洲老女人av| 狠狠色狠狠色综合日日tαg| 久久国产精品 国产精品| 69堂精品视频在线播放| 久久手机精品视频| 日本高清视频网站| 欧美熟乱第一页| 久久精品女人毛片国产| 美日韩一区二区| 无码人妻精品一区二区三区99v| 第一区第二区在线| 国产精品草莓在线免费观看 | 成人av在线影院| 黄色www网站| 欧洲激情综合| 国产91精品入口17c| 国产一级片在线| 欧美日韩dvd在线观看| 久久久久久天堂| 国产日产欧美一区| 佐佐木明希电影| 肉色丝袜一区二区| 国产真实老熟女无套内射| 激情五月色综合国产精品| 亚洲va电影大全| 欧美成人ⅴideosxxxxx| 久久中文久久字幕| 国产资源在线观看| 欧美va亚洲va| 中文字幕777| 午夜在线电影亚洲一区| 婷婷丁香综合网| 99九九99九九九视频精品| 日韩成人av免费| 欧美特黄一级| 懂色av一区二区三区四区五区| 日韩mv欧美mv国产网站| 亚洲va久久久噜噜噜| 巨茎人妖videos另类| 久久久久久久久91| 国产黄a三级三级三级av在线看 | 国产精品成久久久久三级| 91九色国产在线播放| 久久天天躁夜夜躁狠狠躁2022| 精品乱码一区二区三四区视频| 亚洲电影av在线| 精品国产黄色片| 欧美女孩性生活视频| 无码人妻丰满熟妇精品区| 欧美日韩国产一区中文午夜| 欧美成人精品欧美一级| 《视频一区视频二区| 正在播放国产对白害羞| 久久精品男人天堂av| 黄色性生活一级片| 99久久777色| 妖精视频一区二区| 丁香桃色午夜亚洲一区二区三区| 污污的网站免费| 青青青爽久久午夜综合久久午夜 | 亚洲第一天堂网| 欧美一区二区三区四区久久| 国产又粗又猛又黄| 欧美女孩性生活视频| 97国产精品久久久| 欧美日韩高清一区二区| 中文字幕一区二区三区四区视频| 91精品福利视频| 一级一片免费看| 欧美在线免费视屏| 成人黄色三级视频| 欧美四级电影网| 一级特黄色大片| 在线不卡一区二区| 国产超碰人人模人人爽人人添| 69久久99精品久久久久婷婷| 国产又粗又黄又爽视频| 日韩一区二区三区观看| 国产丰满美女做爰| 日韩一级片在线观看| 亚洲av色香蕉一区二区三区| 精品国产一二三区| 天堂中文在线资源| 国产婷婷色综合av蜜臀av| 欧美女同网站| 最近中文字幕日韩精品| 看黄网站在线| 欧美激情va永久在线播放| 国产美女高潮在线观看| 欧美一级大胆视频| 91av一区| 69174成人网| 日韩极品少妇| 日本在线一区| 亚洲一区二区三区| 草草视频在线免费观看| 久久精品盗摄| 亚洲免费av一区| 大陆成人av片| 国产交换配乱淫视频免费| 中文字幕av不卡| 欧美爱爱小视频| 欧美丝袜一区二区| 国产一区二区三区中文字幕| 日韩精品中文字幕在线不卡尤物| 色偷偷在线观看| 一区二区三区动漫| 18网站在线观看| 日本精品久久久| 麻豆一二三区精品蜜桃| 久久艹中文字幕| 91精品蜜臀一区二区三区在线| 久久99精品久久久久久秒播放器| 亚洲专区视频| 在线视频一二三区| 蜜桃av一区| 亚洲美女高潮久久久| 久久久久久一级片| 婷婷色中文字幕| 色激情天天射综合网| 亚洲a视频在线观看| 亚洲天堂男人天堂| 国产丝袜精品丝袜| 国产精品亚洲一区二区三区| 国产视频一二三四区| 精品一区二区三区香蕉蜜桃| 少妇人妻大乳在线视频| 日本人妖一区二区| 亚洲成年人av| 自拍偷拍欧美激情| www.国产com| 精品国产乱子伦一区| 91啦中文在线| 欧美在线视频一二三| 日韩精品一区二区三区中文字幕| 色综合电影网| 亚洲精品四区| 亚洲男人天堂2021| 欧美激情一区二区三区在线| 蜜桃无码一区二区三区| 一区二区三区在线不卡| 中文字幕+乱码+中文| 亚洲精品福利资源站| av观看在线| 国产精品一二三在线| 九一成人免费视频| 99热亚洲精品| 国产大片一区二区| 神马久久精品综合| 欧美性受xxxx黑人xyx性爽| 深夜影院在线观看| 日本一不卡视频| 成人黄色av片| 国产成人午夜高潮毛片| 欧美 日韩 国产 成人 在线观看| 亚洲大片一区二区三区| 国产黄色一区二区| 久久人人爽人人爽爽久久| av一区在线播放| 日韩精品国内| 天堂va蜜桃一区二区三区漫画版| 中文字幕 日本| 26uuu久久天堂性欧美| 亚洲国产精品午夜在线观看| 日韩欧美亚洲国产另类| 岛国成人毛片| 成人疯狂猛交xxx| 99久久夜色精品国产亚洲狼 | 麻豆精品一区二区三区| 国产精品av久久久久久无| 欧美性色黄大片| 红桃一区二区三区| 99精品视频免费| 日韩www视频| 精品久久久久久久久久国产| 偷拍自拍在线视频| 热99在线视频| 国产成人一区二区三区影院| 日韩 欧美 高清| 日本一区二区视频在线| 中文字幕av网站| 久久精品国亚洲| 视频在线观看免费影院欧美meiju| 中文字幕av导航| 国产乱妇无码大片在线观看| 午夜写真片福利电影网| 欧美成人r级一区二区三区| 国产欧洲在线| 日产精品久久久一区二区| 久久成人18免费观看| 亚洲不卡在线播放| 天天综合网天天综合色| 午夜影院免费视频| 国产福利成人在线| 欧美韩国日本在线观看| 亚洲一区二区三区三州| 天天av天天翘天天综合网| 国产美女性感在线观看懂色av| 成人精品久久久| 极品裸体白嫩激情啪啪国产精品| 亚洲调教欧美在线| 欧美三级日韩三级国产三级| 97caopor国产在线视频| 国产精品夜夜夜一区二区三区尤| 视频一区二区不卡| 中文字幕另类日韩欧美亚洲嫩草| 亚洲成人精品视频在线观看| 精品免费av在线 | 一区二区日韩在线观看| 欧美贵妇videos办公室| 亚洲午夜久久| 亚洲第一区第二区第三区| 天天操天天干天天综合网| 麻豆免费在线视频| 久久久久一区二区| 国内精品伊人久久久久av一坑| 日韩欧美激情视频|