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

創建SSIS包:ETL中典型的數據清洗

大數據
我們熟悉了很多ELT任務,這一個節來討論復雜點的數據清洗。這里我們要使用的數據源是.dat文件,這種文件在大型主機上,或者是比較老舊的應用系統中非常常見。

這個例子的情景是一個信用卡公司,目前正著手于拓展Florida州新成立的一些公司的業務。市場部門每周都會向這些公司發送一些郵件,我們要為所有的郵件準備抽取數據。假設Florida州提供的一個上面這個dat文件,它是從老的計算機系統里面得到的,它是定長分隔的,這意味著文件中沒有分隔符,必須手工設置分隔列的長度。從下面的連接下載這個.dat文件:010305c.dat。如果使用工具查看,它們的模樣類似下面的:

  1. 01  ANNUAL_MICRO_DATA_REC. 
  2.     03  ANNUAL_COR_NUMBER                       PIC X(12). 
  3.     03  ANNUAL_COR_NAME                         PIC X(48). 
  4.     03  ANNUAL_COR_STATUS                       PIC X(01). 
  5.     03  ANNUAL_COR_FILING_TYPE                  PIC X(15). 
  6.     03  ANNUAL_COR_2ND_MAIL_ADD_1               PIC X(42). 
  7.     03  ANNUAL_COR_2ND_MAIL_ADD_2               PIC X(42). 
  8.     03  ANNUAL_COR_2ND_MAIL_CITY                PIC X(28). 
  9.     03  ANNUAL_COR_2ND_MAIL_STATE               PIC X(02). 
  10.     03  ANNUAL_COR_2ND_MAIL_ZIP                 PIC X(10). 
  11.     03  ANNUAL_COR_2ND_MAIL_COUNTRY             PIC X(02). 
  12.     03  ANNUAL_COR_FILE_DATE                    PIC X(08). 
  13.     03  ANNUAL_COR_FEI_NUMBER                   PIC X(14). 
  14.     03  ANNUAL_MORE_THAN_SIX_OFF_FLAG           PIC X(01). 
  15.     03  ANNUAL_LAST_TRX_DATE                    PIC X(08). 
  16.     03  ANNUAL_STATE_COUNTRY                    PIC X(02). 
  17.     03  ANNUAL_REPORT_YEAR_1                    PIC X(04). 
  18.     03  ANNUAL_HOUSE_FLAG_1                     PIC X(01). 
  19.     03  ANNUAL_REPORT_DATE_1                    PIC X(08). 
  20.     03  ANNUAL_REPORT_YEAR_2                    PIC X(04). 
  21.     03  ANNUAL_HOUSE_FLAG_2                     PIC X(01). 
  22.     03  ANNUAL_REPORT_DATE_2                    PIC X(08). 
  23.     03  ANNUAL_REPORT_YEAR_3                    PIC X(04). 
  24.     03  ANNUAL_HOUSE_FLAG_3                     PIC X(01). 
  25.     03  ANNUAL_REPORT_DATE_3                    PIC X(08). 
  26.     03  ANNUAL_RA_NAME                          PIC X(42). 
  27.     03  ANNUAL_RA_NAME_TYPE                     PIC X(01). 
  28.     03  ANNUAL_RA_ADD_1                         PIC X(42). 
  29.     03  ANNUAL_RA_CITY                          PIC X(28). 
  30.     03  ANNUAL_RA_STATE                         PIC X(02). 
  31.     03  ANNUAL_RA_ZIP5                          PIC X(05). 
  32.     03  ANNUAL_RA_ZIP4                          PIC X(04). 
  33.     03  ANNUAL_PRINCIPALS                       OCCURS 6 TIMES. 
  34.     05  ANNUAL_PRINC_TITLE                      PIC X(04). 
  35.     05  ANNUAL_PRINC_NAME_TYPE                  PIC X(01). 
  36.     05  ANNUAL_PRINC_NAME                       PIC X(42). 
  37.     05  ANNUAL_PRINC_ADD_1                      PIC X(42). 
  38.     05  ANNUAL_PRINC_CITY                       PIC X(28). 
  39.     05  ANNUAL_PRINC_STATE                      PIC X(02). 
  40.     05  ANNUAL_PRINC_ZIP5                       PIC X(05). 
  41.     05  ANNUAL_PRINC_ZIP4                       PIC X(04). 
  42.     03  FILLER                                  PIC X(04). 

創建數據源

這個文件的內容看上去不知所云,不可能像普通的文本文件一樣處理它們。下面要建一個package來清洗和這個類似的數據,得到有用的信息。package完成下面的任務:

從010305c.dat的存放路徑下將文件內容抽取出來存放到本地數據庫

將文件歸檔避免多次下載

當一列數據丟失,這一列需要自動重新添加

當一行數據丟失,需要輸出錯誤的行

新添加一個Package,重命名為CorporationLoad.dtsx,右擊Connection Managers選擇新添加一個連接,選擇AdventureWorks。創建一個新的Flat File Connection連接,重命名為Corporation Extract連接到010305c.dat。這里不需要設置分隔符,而是選擇定長格式,也不需要設置列分隔符,也沒有必要選擇第一行設置為列名選擇項。

定長格式文件意味著每一列不是由分隔符來分隔,必須手動設置每一列的開始和結束。大多數的大型機文件都是這種格式,你會發現這種設置會有些繁瑣。打開文件界面并推斷每一列的開始位置。點擊Column標簽界面如圖5-6。在Row Widh欄內輸入1172字符(這個數字表示文件的開始)。

圖5-6

下一步,在列上設置豎直線標示每一列。在標尺刻度上左擊設置豎直線,在這個例子中,可以使用下面的表中的提示來設置列。在豎直線上雙擊可以刪除,左擊拖動可以移動豎直線。

標尺刻度值

列名

12

CorporateNumber

60

CorporationName

61

CorporationStatus

65

FilingType

118

MailingAddressLine1

160

MailingAddressLine2

188

City

190

State

200

ZipCode

202

Country

210

FilingDate

224

FEINumber

1172

Records you will throw out

在這個表中可以看到丟棄了大部分數據。添加完豎直線之后,點擊Advanced標簽界面,點擊Suggest Types,在Suggest Column Types對話框中接受默認設置,點擊OK。默認數據類型設置會滿足大部分的數據類型需要,但是也會有一些錯誤。在Column 8(ZipCode column)需要修改DataType選擇項為String[DT_STR],OutputColumnWidth設置為10。最后修改Column 10為String[DT_STR],OutputColumnWidth保持默認,點擊OK保存設置。

創建數據流

在Control Flow 界面內拖放一個Data Flow task,雙擊進入數據流標簽界面。在界面中拖放一個Flat File數據源重命名為Uncleansed Corporate Data,雙擊并選擇上文中新建的數據連接,點擊進入Columns標簽界面反選Column 11和Column 12,這意味著市場部門不需要這兩列數據。在后面的工作中將添加Destination和數據轉換任務。

處理臟數據

在進行下一步操作之前,先暫停來了解一下數據。我們創建了數據連接,你可能會注意到有一些數據行是空白的 ,例如city和state的一些記錄是沒有的。為了解決這個問題,需要使用一些任務將規范的的數據送到一個路徑,有缺損的數據送到另一個路徑。然后嘗試清洗壞的數據并送回到主要路徑中。也可能有一些不能清洗的數據,需要寫入錯誤日志。

首先,設置郵政編碼為5位字符,一些包含破折號的有10位字符,還有9位的。使用Derived Column轉換來標準化,從工具欄中拖放一個Derived Column數據轉換任務重命名為Standardize Zip Code。

使用箭頭連線將Load Corporate Data和Standardize Zip Code連接起來,雙擊Standardize Zip Code打開編輯界面,展開左邊欄中的Column樹形結構,點擊Column 8拖放到下方的表格內,這里會在表格內預先填入一些信息。為了輸出5位郵政編碼需要編寫一個表達式只截取5位。使用SUBSTRING函數可以實現這種功能,代碼如下:

SUBSTRING([Column 8],1,5)

在表格Expression列中輸入上面代碼,在Derived列中選擇replace the existing Column 8,最后可以看到界面如圖5-7,完成編輯后點擊OK退出界面。

圖5-7

用Conditional Split進行數據轉換

現在數據規范化了,從工具欄中拖放一個Conditional Split數據轉換任務,使用箭頭連線把它和Standardize Zip Code連接起來,將Conditional Split重命名為Find Bad Record。Conditional Split將把一些不符合要求的數據進行清洗。

為了去掉沒有city或state的數據行,需要編寫條件將缺失city或state的數據轉移到一個數據流。雙擊Find Bad Record打開編輯界面,新建一個Missing State or City條件,在Output Name列內輸入該名字。編寫一個表達式來查找空的記錄。一種方法是使用LTRIM函數。兩個豎線|用來實現邏輯或。下面的代碼用來查找Column 6和Column7。

LTRIM([Column 6]) == "" || LTRIM([Column 7]) == ""

最后要給不滿足條件的數據命名。這里不滿足上述條件的數據命名為Good Data,如圖5-8

圖5-8

使用Look Up轉換數據

從工具欄中拖放LookUp數據轉換重命名為Fix Bad Records,當你把它和上一個數據轉換Find Bad Record連接起來的時候,將會彈出Input Output Selection對話框如圖5-9。下拉列表框中選擇Missing State or City選擇項,點擊OK。這將有缺損的數據從Find Bad Record中送出。

圖5-9

LookUp轉換可以根據數據庫中ZipCode表中的數據來補全數據行中缺失的city和state。雙擊打開編輯界面,點擊Connection標簽界面,選擇AdventureWorks數據源和ZipCode數據表。點擊Columns標簽界面,點擊Column 8不放拖放到右邊ZipCode列上,這樣在兩邊的表上建立一個連線如圖5-10。然后再右邊表中選中State和City列,這兩列會出現在下方的表格中,ZipName會替換Column 6,State會替換Column 7 如圖5-10。點擊OK退出編輯界面。

圖5-10  

使用Union All合并

現在數據被清洗,要使用Union All轉換將清洗后的數據送回到主要數據流中。在工具欄中拖放一個Union All轉換,從Fix Bad Records向Union All拖放一個連線,從Find Bad Records向Union拖放一個連線,Union All不再需要其他配置。  

最后設置

最后需要將數據流送到一個OLE DB 目的中。從工具欄中拖放一個OLE DB Destination,重命名為Mail Merge Table。從Union All向它拖放一個連線,雙擊選擇AdventureWorks數據源,Use a Table or View選擇項中點擊New button。默認的建表語句使用的是表名是Mail Merge Table,數據類型可能有些不是很合適的,代碼如下:

  1. CREATE TABLE [Mail Merge Table] ( 
  2.     [Column 0] VARCHAR(12), 
  3.     [Column 1] VARCHAR(48), 
  4.     [Column 2] VARCHAR(1), 
  5.     [Column 3] VARCHAR(4), 
  6.     [Column 4] VARCHAR(53), 
  7.     [Column 5] VARCHAR(42), 
  8.     [Column 6] VARCHAR(28), 
  9.     [Column 7] VARCHAR(2), 
  10.     [Column 8] VARCHAR(10), 
  11.     [Column 9] VARCHAR(2), 
  12.     [Column 10] VARCHAR(10) 

修改代碼中的表名和列名,修改后的代碼如下:

  1. CREATE TABLE MarketingCorporation( 
  2.     CorporateNumber varchar(12), 
  3.     CorporationName varchar(48), 
  4.     FilingStatus char(1), 
  5.     FilingType char(4), 
  6.     AddressLine1 varchar(53), 
  7.     AddressLine2 varchar(42), 
  8.     City varchar(28), 
  9.     State char(2), 
  10.     ZipCode varchar(10), 
  11.     Country char(2), 
  12.     FilingDate varchar(50) NULL 

由于列名是不同的需要點擊Mapping標簽將列對應起來。

處理更多的臟數據

這個Package基本上完成了,但是這里有一個致命的缺陷。010305c.dat這個文件中有一些多余的數據,在Find Bad Records和Fix Bad Records之間添加一個data viewer可以查看這些多余的數據。

這樣可以查看在010305c.dat文件中有4條數據被Fix Bad Records處理,只有2條被清洗。另外2條不能被定為到Fix Bad Records中。在這個Package的需求中有一條是為市場部門提供一份地址列表用在郵件內容中。下圖5-11中顯示了錯誤所在。

圖5-11

在輸出界面中你可以看到如下的錯誤信息:

Error: 0xC020901E at Load Corporate Data, Fix Bad Records [87]: Row yielded no

match

during lookup.

Error: 0xC0209029 at Load Corporate Data, Fix Bad Records [87]: The "component "Fix

Bad

Records" (87)" failed because error code 0xC020901E occurred, and the error row

disposition on "output "Lookup Output" (89)" specifies failure on error. An error

occurred on the specified object of the specified component.

Error: 0xC0047022 at Load Corporate Data, DTS.Pipeline: The ProcessInput method on

component "Fix Bad Records" (87) failed with error code 0xC0209029. The identified

component returned an error from the ProcessInput method. The error is specific to

the

component, but the error is fatal and will cause the Data Flow task to stop

running.

Error: 0xC0047021 at Load Corporate Data, DTS.Pipeline: Thread "WorkThread0" has

exited

with error code 0xC0209029.

Error: 0xC0047039 at Load Corporate Data, DTS.Pipeline: Thread "WorkThread1"

received a

shutdown signal and is terminating. The user requested a shutdown, or an error in

another

thread is causing the pipeline to shutdown.

Error: 0xC0047021 at Load Corporate Data, DTS.Pipeline: Thread "WorkThread1" has

exited

with error code 0xC0047039.

  

不能因為這些錯誤提示而放棄這個Package,需要將錯誤信息輸入到錯誤消息隊列中以備查看。需要創建一個ErrorQueue表,從工具欄中拖放一個Audit轉換,重命名為Add Auditing Info,從Fix Bad Records中拖拽紅色箭頭連線連接到Add Auditing Info。

如圖5-12,可以看到Configure Error Output對話框,在這個對話框中配置如果錯誤出現時SSIS如何反應。Truncation列表明如果一行太長而不能加入到轉換中時所作的反應。Error列表明遇到轉換錯誤時如何反應。在Description列中可以看到期望捕獲的錯誤。例如對于Lookup轉換,需要捕獲的錯誤是lookup failure,意思是lookup轉換不能找到對應的輸入。在這個例子中選擇錯誤類型如圖5-10。默認情況會使任務失敗,結果會使整個Package失敗。也可以從下拉列表中選擇完全忽略錯誤。

圖5-10

完成配置之后點擊OK退出界面。

錯誤處理之后,雙擊Audit transform打開編輯界面,添加兩列。繼續添加兩列,在Audit Type列中選擇Task Name和Package Name,Output Column Name默認同名,去掉名字中的空格,如圖5-13。由于可能有多個Package向表中寫入數據,所以這些信息是必須的。

圖5-13

最后的工作是將臟數據送入到SQL Server中的ErrorQueue表中,從工具欄中拖放另外一個OLE DB目的,重命名為Error Queue,雙擊選擇AdventureWorks數據源,點擊New新添加一個表,重命名表名ErrorQueue,代碼如下:

  1. CREATE TABLE ErrorQueue( 
  2.     CorporateNumber varchar(12), 
  3.     CorporationName varchar(48), 
  4.     FilingStatus char(1), 
  5.     FilingType char(4), 
  6.     AddressLine1 varchar(53), 
  7.     AddressLine2 varchar(42), 
  8.     City varchar(28), 
  9.     State char(2), 
  10.     ZipCode varchar(10), 
  11.     Country char(2), 
  12.     FilingDate varchar(10) NULL
  13.     ErrorCode INT
  14.     ErrorColumn INT
  15.     TaskName NVARCHAR(19), 
  16.     PackageName NVARCHAR(30) 

注意:可以看到這個表中的信息是很籠統的。

這次需要點擊mapping將列一一對應起來,點擊OK退出編輯界面。現在可以執行這個Package了,4條記錄被清洗,2條送到error queue。執行成功之后的界面如圖5-14。

圖5-14

 原文鏈接:http://www.cnblogs.com/tylerdonet/archive/2011/04/22/2023843.html

責任編輯:彭凡 來源: 博客園
相關推薦

2014-02-19 10:52:43

ETL項目SSIS框架

2013-03-27 15:10:14

ETL

2012-09-20 09:43:37

SSIS

2013-03-20 16:23:53

數據清洗

2011-04-14 14:43:38

SSISTransformat

2011-04-19 09:18:02

SSIS數據轉換

2009-04-16 16:54:53

集成IntegrationSSIS

2024-10-28 12:57:36

Pandas數據清洗

2013-03-20 15:49:28

大數據

2024-05-10 08:31:57

數據清洗數據驅動

2013-03-27 11:09:26

數據清洗

2024-01-29 18:06:39

SQL數據格式

2011-04-27 16:09:48

SQL ServerSSIS

2016-05-10 14:38:13

大數據企業

2016-04-12 17:12:29

機器學習數據清洗美團

2016-12-08 09:30:00

圖片數據庫網絡爬取數據清洗

2012-03-07 15:13:07

PhoneGapmenu菜單

2020-07-10 09:49:53

數據清理數據分析查找異常

2020-06-08 12:47:08

ETLHadoopSpark

2009-04-16 17:06:50

SSIS集成開發平臺BI
點贊
收藏

51CTO技術棧公眾號

欧美精品午夜视频| 日韩一区二区免费在线观看| 日韩精品av一区二区三区| 国产精品xxxxxx| 久久麻豆精品| 精品福利二区三区| 又色又爽又高潮免费视频国产| 国产视频二区在线观看| 激情综合亚洲精品| 午夜精品久久久久久99热| 国产调教在线观看| 国产精品流白浆在线观看| 欧美中文字幕不卡| 日本一本中文字幕| 18免费在线视频| bt欧美亚洲午夜电影天堂| 国产精品成人国产乱一区| 青青草手机视频在线观看| 色婷婷久久久| 日韩一区二区三区视频在线| 不卡影院一区二区| 国产美女情趣调教h一区二区| 国产婷婷一区二区| 国产亚洲精品久久飘花| 波多野结衣av无码| 99国产精品视频免费观看一公开| 日韩中文字幕精品视频| 亚洲 欧美 日韩在线| 日本欧美在线| 在线观看日韩国产| 欧美不卡在线播放| av免费看在线| 国产精品久久久久久久久快鸭| 国产一区福利视频| 精品国产av一区二区三区| 免费在线看成人av| 日韩av片永久免费网站| jizz国产免费| 午夜久久福利| 久久久精品一区二区三区| 国产精成人品免费观看| 日韩手机在线| 亚洲精品国产精品久久清纯直播| 精产国品一二三区| 99精品视频在线免费播放| 在线一区二区三区四区| www.com毛片| 黄在线观看免费网站ktv| 亚洲一区二区三区中文字幕在线| 超碰成人在线免费观看| 欧美一区二区三区| 国产精品传媒入口麻豆| 亚洲自拍偷拍二区| 91看片在线观看| 国产女人aaa级久久久级| 九九九九精品| 无码精品人妻一区二区三区影院 | 欧美肥婆姓交大片| 老湿机69福利| 综合国产在线| 久精品免费视频| 久久久久久久久久99| 欧美暴力喷水在线| 欧美激情免费视频| 日韩人妻无码一区二区三区99| 尤物在线精品| 88国产精品欧美一区二区三区| 国产精选第一页| 亚洲乱亚洲高清| 欧洲日本亚洲国产区| 中文字幕免费观看| 免费成人美女在线观看| 91免费看片网站| 国产jzjzjz丝袜老师水多| 国产v综合v亚洲欧| 精品午夜一区二区三区| 国产精品麻豆一区二区三区| 中文字幕在线观看不卡视频| 热久久最新网址| 色吧亚洲日本| 欧美日韩日日夜夜| 久久国产免费视频| 婷婷精品在线观看| 中文字幕亚洲一区二区三区| 成人免费视频网站入口::| 一区在线播放| 国产成人一区二| 国产精品久久久久久免费免熟| 国产精品一级在线| 久久99精品久久久久久水蜜桃| 免费在线高清av| **性色生活片久久毛片| 国产玉足脚交久久欧美| 中文字幕不卡三区视频| 欧美猛男男办公室激情| av漫画在线观看| 欧美偷拍自拍| 欧美激情区在线播放| 天码人妻一区二区三区在线看| 久久精品国产99国产精品| 国产成人精品福利一区二区三区 | 亚洲一区中文字幕永久在线| 国产麻豆精品一区二区| 欧美成人综合一区| av大片在线| 色欧美日韩亚洲| 亚洲欧美激情一区二区三区| 精品一区在线| 久久久日本电影| 一区二区美女视频| 91日韩精品一区| 国产精品免费看久久久无码| 日韩中文视频| 亚洲激情在线观看| 欧美色图一区二区| 蜜臀av国产精品久久久久| 国产伦精品一区二区三区照片| 午夜在线小视频| 黑人极品videos精品欧美裸| 午夜诱惑痒痒网| 岳的好大精品一区二区三区| 欧美贵妇videos办公室| 在线免费观看日韩视频| 91视频免费播放| 国产aaa免费视频| 免费看一区二区三区| 尤物九九久久国产精品的特点 | 亚洲经典自拍| 成人激情春色网| av在线之家电影网站| 精品国产91乱高清在线观看| 两女双腿交缠激烈磨豆腐| 日本午夜一区| 国产高清视频一区三区| 色哟哟在线观看| 天天综合网天天综合色| 国产高潮失禁喷水爽到抽搐 | 欧日韩免费视频| 欧美另类中文字幕| 久久精品最新地址| 91亚洲视频在线观看| 欧美精彩视频一区二区三区| 可以看毛片的网址| 亚洲视频精选| 欧美激情一区二区三区久久久| 国产精品视频a| 国产精品国产成人国产三级| 欧美成年人视频在线观看| 国产精选一区| 国产精品美女视频网站| 成人高清网站| 欧美三区在线观看| 99久久精品久久亚洲精品| 久久9热精品视频| 一区二区三区国产福利| 亚洲毛片在线免费| 免费91在线视频| 亚洲国产精品二区| 香蕉乱码成人久久天堂爱免费| 一级少妇精品久久久久久久| 在线观看视频日韩| 久久综合毛片| 国产极品久久久久久久久波多结野 | 国产精品美女久久久久久久久久久| 无码人妻精品一区二区三区66| 国产99精品| 成人激情黄色网| 欧美xxxx做受欧美88bbw| 精品国产乱码久久久久久久久 | 在线国产视频一区| 日本亚洲最大的色成网站www| 亚洲欧美综合一区| 欧美2区3区4区| 97视频在线观看播放| 黄色国产在线| 777a∨成人精品桃花网| 国产黄色片视频| 久久精品一区二区三区不卡牛牛 | 91综合国产| 欧美成年人视频| 天堂中文在线看| 在线观看亚洲精品视频| 国产在线一卡二卡| 91在线观看一区二区| 中文久久久久久| 欧美区日韩区| 青娱乐一区二区| www.久久爱.com| 午夜精品久久17c| 香蕉视频在线播放| 日韩不卡在线观看| 国产精品天天操| 日韩欧美中文免费| 男女做暖暖视频| 91社区在线播放| 久久精品无码一区二区三区毛片| 午夜影院日韩| 黄色网址在线免费看| 亚洲精品推荐| 亚洲xxxxx电影| 综合在线影院| 久久久久国产精品免费网站| a√资源在线| 日韩的一区二区| 国产片高清在线观看| 欧美日韩一区二区三区| 深夜福利影院在线观看| 欧美—级在线免费片| 中文文字幕文字幕高清| 国产在线不卡视频| www.99在线| 免费在线播放第一区高清av| 国产美女永久无遮挡| 俺要去色综合狠狠| 精品一区二区日本| 一区二区亚洲视频| 成人性生交大片免费看视频直播| 成人欧美一区二区三区的电影| 欧美日韩国产va另类| 午夜免费视频在线国产| 亚洲欧美中文另类| 午夜18视频在线观看| 日韩精品一区二区三区在线播放 | 日韩成人小视频| 99热精品在线播放| 欧美人狂配大交3d怪物一区 | 免费观看成人鲁鲁鲁鲁鲁视频| 日韩伦理在线免费观看| 欧美日本中文| 国产资源第一页| 一本精品一区二区三区| 亚洲午夜精品久久| japanese国产精品| 日本不卡一区二区三区在线观看| 老牛精品亚洲成av人片| 国产精品日韩高清| 香蕉成人app| 91在线精品观看| 国产精品麻豆| 91精品网站| 日韩欧美中文在线观看| 99re在线国产| 一区二区三区国产好| 91超碰在线免费观看| va天堂va亚洲va影视| 亚洲free嫩bbb| 视频一区视频二区欧美| 国产精品99久久久久久久| 亚洲成人黄色| 国产精品久久久久免费| 国产乱人伦丫前精品视频| 国产精品一区二区欧美| 麻豆精品av| 久久一区二区三区欧美亚洲| 亚洲丝袜啪啪| 天堂av一区二区| 99精品综合| 日本中文字幕一级片| 亚洲大胆在线| 国产女女做受ⅹxx高潮| 日本va欧美va瓶| 五月天开心婷婷| 成人一道本在线| 女尊高h男高潮呻吟| 欧美激情一区二区三区| 狂野欧美性猛交| 一区二区三区在线观看国产| xxxxxx国产| 欧美性猛交xxxx乱大交3| 姑娘第5集在线观看免费好剧| 欧美日本视频在线| 亚洲精品一级片| 亚洲欧美精品一区二区| 免费超碰在线| 久久久久久欧美| 欧美色999| 亚洲在线视频福利| 欧美绝顶高潮抽搐喷水合集| 视频在线一区二区三区| 欧美福利影院| 久久精品午夜福利| 激情综合色丁香一区二区| 亚洲色偷偷色噜噜狠狠99网| 国产日产欧美一区二区三区| 日韩av手机在线免费观看| 亚洲欧美日韩人成在线播放| 久久久久久蜜桃| 日本韩国一区二区| 99精品视频在线播放免费| 精品无码久久久久久国产| 欧美三级电影一区二区三区| 欧美国产日韩精品| 日本欧美不卡| 国产传媒一区| 久久日文中文字幕乱码| 欧美视频在线免费播放| 久久激情五月婷婷| 欧美高清性xxxx| 亚洲乱码国产乱码精品精可以看 | 国产一区二区三区视频在线观看| 成人免费看片| 日韩av电影免费观看高清| 欧美h版在线观看| 日韩在线三区| 亚洲精选在线| 久久精品国产99久久99久久久| 91麻豆免费看| 国产无套粉嫩白浆内谢| 欧美日韩电影一区| 久久精品国产亚洲a∨麻豆| 欧美日韩高清区| 色综合久久久| 日韩亚洲不卡在线| 一区二区高清| 久久av一区二区三| 亚洲色图19p| 18国产免费视频| 亚洲欧美精品一区二区| 欧美激情护士| 国产精品一区二区三区免费观看| 91成人看片| 中文字幕有码av| 久久久久久免费| 国产在线观看黄色| 亚洲国产日韩欧美在线99| 欧美伦理免费在线| 91日韩在线视频| 91精品高清| 一区二区三区国产好的精华液| 中文字幕精品在线不卡| 中文字幕在线日本| 亚洲日本欧美日韩高观看| 激情aⅴ欧美一区二区欲海潮| www 成人av com| 欧美激情在线| 日韩av成人网| 一区二区三区中文免费| 国内毛片毛片毛片毛片| 欧美成人黑人xx视频免费观看| 国产亚洲精品精品国产亚洲综合| 日韩福利一区二区三区| 欧美aaa在线| 四季av中文字幕| 欧美日韩第一区日日骚| 欧美黑人激情| 亚洲iv一区二区三区| 欧美在线1区| 伊人影院在线观看视频| 亚洲午夜久久久| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 成人欧美一区二区三区黑人免费| 欧美区国产区| 理论片大全免费理伦片| 黑人巨大精品欧美一区二区三区 | 中文字幕在线观看免费| 日韩在线免费视频观看| 国产日本亚洲| 免费在线看黄色片| 99久久久精品| 国产一区二区视频免费| 中文字幕精品www乱入免费视频| 激情中国色综合| 亚洲av首页在线| www.日韩大片| 国产成人无码一区二区在线播放| 尤物tv国产一区| 亚洲精品观看| 青青青国产在线观看| 国产欧美精品一区二区色综合朱莉| 中文字幕乱码人妻二区三区| 久久资源免费视频| 成人在线视频你懂的| 中文字幕乱码人妻综合二区三区| 国产精品丝袜一区| 性做久久久久久久| 日韩免费在线视频| 亚洲国产精品久久久天堂| 乱码一区二区三区| 欧美亚洲愉拍一区二区| 一区二区三区伦理| 麻豆蜜桃91| 国产在线日韩欧美| 偷偷操不一样的久久| 日韩中文字幕在线观看| 好吊妞视频这里有精品| 亚洲无吗一区二区三区| 亚洲综合激情小说| 国产女人在线观看| 超碰97在线播放| 日本一区中文字幕| 日本午夜小视频| 精品国产一区二区在线| 日韩精品福利一区二区三区| 中文字幕第38页| 精品久久久久久久久久久久| 在线观看二区| 久久av一区二区三区亚洲| 国内精品在线播放| 免费视频网站在线观看入口| 久久久久久久久亚洲|