精品欧美一区二区三区在线观看 _久久久久国色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| 亚洲免费在线看| 国产精品一区二区三区四区五区| 免费观看成人毛片| 色777狠狠狠综合伊人| 欧美一级二级在线观看| 国产美女网站在线观看| av在线收看| av电影在线观看不卡| 国产精品麻豆va在线播放| 极品久久久久久| 少妇精品久久久一区二区三区 | 久久国产一区二区三区| 秘密基地免费观看完整版中文| 成熟妇人a片免费看网站| 免费看男男www网站入口在线 | 琪琪第一精品导航| 开心激情五月网| 婷婷综合福利| 欧美成人性福生活免费看| 91淫黄看大片| 91禁在线看| 日韩美女精品在线| 欧美色图亚洲自拍| 蜜桃av噜噜一区二区三区麻豆 | 国产精品国产三级国产aⅴ9色| 一区二区成人免费视频| 国产精品嫩模av在线| 欧美成人一级视频| 黄色aaaaaa| 日韩中文视频| 欧美日韩中文在线| 久久久性生活视频| 久久国产精品黑丝| 亚洲视频资源在线| 亚洲图片在线观看| 国产一区二区影视| 久久综合av免费| 国产欧美亚洲日本| 亚洲精品中文字幕成人片| 精品制服美女丁香| 国产精品亚洲自拍| 在线观看国产黄| 三级精品在线观看| 琪琪第一精品导航| 精品久久久久久久久久久久久久久久| 亚洲经典三级| 国产做受高潮69| 国产第一页在线播放| 中国成人一区| 欧美大尺度在线观看| 一级免费黄色录像| 欧美r级电影| 久久亚洲精品小早川怜子66| 貂蝉被到爽流白浆在线观看| japanese国产精品| 国产亚洲精品美女久久久| av电影网站在线观看| 国产真实有声精品录音| 国产午夜精品一区理论片飘花| 白白色免费视频| 国产一区日韩| 最好看的2019年中文视频| 亚洲av熟女国产一区二区性色| 亚洲理论电影片| 亚洲天堂av高清| 99精品全国免费观看| 成人一区二区| 久久婷婷国产麻豆91天堂| 免费在线观看一级片| 午夜亚洲福利| **欧美日韩vr在线| 狠狠狠狠狠狠狠| 国产一区二区三区日韩| av日韩中文字幕| 四虎影视在线观看2413| 国产色产综合色产在线视频| 一个色的综合| 波多野结衣在线高清| 福利一区福利二区微拍刺激| 午夜dv内射一区二区| 国产精品诱惑| 日韩久久免费av| 91成人破解版| 小小影院久久| 午夜精品蜜臀一区二区三区免费| 亚洲第一网站在线观看| 国内精品写真在线观看| 国产美女精品久久久| 国内精品在线视频| 亚洲免费在线看| 99蜜桃臀久久久欧美精品网站| 欧美黑粗硬大| 亚洲大胆人体av| 日韩影视一区二区三区| 亚洲综合自拍| 国产91成人在在线播放| 一起草av在线| 91麻豆精品在线观看| 欧美日韩一级在线| 自拍偷拍亚洲视频| 日韩视频在线观看一区二区| 全黄一级裸体片| 欧美深夜福利| 国产美女精品免费电影| 色婷婷av一区二区三区之e本道| 国产精品麻豆欧美日韩ww| 日韩电影大片中文字幕| 在线观看免费视频黄| 精品一区毛片| 久久久视频精品| 99成人精品视频| 国产成人免费视频精品含羞草妖精| 蜜桃精品久久久久久久免费影院| 欧美13一16娇小xxxx| 天天色 色综合| 一区二区久久精品| 精品高清在线| 992tv在线成人免费观看| 国产美女三级无套内谢| 久久精品一区二区| 国产精品专区在线| 精品视频在线观看免费观看 | 你懂的视频一区二区| 日本在线观看天堂男亚洲 | 一区二区三区精品国产| 色黄视频在线观看| 精品欧美久久久| 色婷婷粉嫩av| 蜜桃91丨九色丨蝌蚪91桃色| 久久精品一区二区三区不卡免费视频| 伊人春色在线观看| 欧美日韩国产片| 欧美熟妇激情一区二区三区| 在线亚洲一区| 成人免费视频网站| 伊人影院在线视频| 日韩欧美第一区| 看黄色录像一级片| 蜜桃一区二区三区在线| 性欧美精品一区二区三区在线播放 | 欧美性xxxxhd| 88av在线播放| 亚洲区国产区| 国产精品一区二| 好久没做在线观看| 日韩区在线观看| www.av视频| 国产成人鲁色资源国产91色综| 日韩经典在线视频| 另类专区亚洲| 一区二区欧美久久| 中文字幕精品在线观看| 国产精品色婷婷| 在线观看岛国av| 999精品视频| 91久久国产精品| av免费看在线| 精品国产91久久久久久久妲己| 欧美精品99久久久| av一区二区三区在线| 国模无码视频一区二区三区| 天堂资源在线亚洲| 国产99久久精品一区二区| 成a人片在线观看www视频| 欧美视频日韩视频在线观看| 日本免费网站视频| 国产成人精品三级| 国产精品一线二线三线| 三级精品视频| 国产精品视频一| a级网站在线播放| 亚洲成人精品视频| 国产精品美女久久久久av爽| 国产日韩欧美亚洲| 三级一区二区三区| 欧美全黄视频| 欧美高清视频一区| 日本一区二区三区中文字幕 | 精品综合在线| 91久久久久久白丝白浆欲热蜜臀| 最近中文字幕日韩精品| 99在线精品视频免费观看软件| 亚洲国产一区视频| 特级西西www444人体聚色| 精品在线免费观看| 欧美一级视频在线播放| 精品大片一区二区| 114国产精品久久免费观看| 福利在线免费视频| www.日韩欧美| 欧美一区二区黄片| 欧美性色综合网| 国产在线视频卡一卡二| 国产午夜亚洲精品羞羞网站| 国产精品熟女一区二区不卡| 久久激情视频| 国产成人免费高清视频| 免费黄色成人| 成人午夜电影免费在线观看| 日本欧美一区| 97超碰蝌蚪网人人做人人爽| 瑟瑟视频在线| 亚洲欧洲xxxx| 亚洲精华国产精华精华液网站| 欧美在线免费观看亚洲| 国产在线免费视频| 国产精品国产三级国产专播品爱网| av电影在线播放| 国产一区二区三区高清播放| 97在线播放视频| 红桃视频国产精品| 亚洲精品在线视频观看| 亚洲a级精品| 超碰国产精品久久国产精品99| 新片速递亚洲合集欧美合集| 久久久久久999| 免费人成在线观看播放视频| 亚洲人成在线电影| 天天干,夜夜操| 欧美mv日韩mv| 亚洲自拍偷拍另类| 色婷婷亚洲综合| 日韩精品在线不卡| 曰韩精品一区二区| 看免费黄色录像| 日本一区二区视频在线| 在线 丝袜 欧美 日韩 制服| 成人亚洲一区二区一| 性久久久久久久久久久久久久| 日韩高清一级片| 干日本少妇首页| 亚洲乱码久久| 青青草视频在线免费播放| 综合天堂av久久久久久久| 一区二区在线观看网站| 欧美日韩黑人| 色噜噜狠狠色综合网| 亚洲小说图片| 欧美亚洲免费高清在线观看| 日本一区福利在线| 九九九九九九精品| 欧美sss在线视频| 久久久久久久有限公司| 偷窥自拍亚洲色图精选| 精品无人区一区二区三区| 久久国产精品免费精品3p| 国产精品久久久久久久久久久久冷| 日韩一区二区三区精品视频第3页| 成人啪啪免费看| av一级久久| 亚洲综合中文字幕68页| 欧美经典影片视频网站| 亚洲一区二区三区777| 国产精品一区二区美女视频免费看| 亚洲bt欧美bt日本bt| 国产一区二区三区黄网站| 亚洲自拍偷拍视频| 成人av动漫| 美女被啪啪一区二区| 国产精品密蕾丝视频下载| 香蕉久久夜色| 艳女tv在线观看国产一区| 人妻无码一区二区三区四区| 国模大胆一区二区三区| 成人中文字幕在线播放| 丝袜诱惑制服诱惑色一区在线观看| 欧美一级黄色片视频| 日韩黄色免费网站| 亚洲免费在线播放视频| 粉嫩一区二区三区性色av| 久久精品女同亚洲女同13| 久久亚区不卡日本| 91n在线视频| 亚洲一区二区三区美女| www.com亚洲| 51午夜精品国产| 五月色婷婷综合| 中文字幕亚洲综合久久筱田步美| huan性巨大欧美| 77777亚洲午夜久久多人| 自拍偷自拍亚洲精品被多人伦好爽| 国产区精品视频| 99这里只有精品视频| 欧美日韩一区二| 影视一区二区| 国产免费毛卡片| 韩国精品久久久| 精品夜夜澡人妻无码av| 中文字幕一区二区三区四区| 男人天堂中文字幕| 欧美网站大全在线观看| 成人精品在线播放| 国产一区二区三区在线| 欧美黄色视屏| 国产精品毛片a∨一区二区三区|国| 日韩精品一区二区三区中文字幕| 欧美日韩综合网| 国内自拍一区| 在线看的黄色网址| www.亚洲精品| 国产午夜手机精彩视频| 色综合色综合色综合色综合色综合| 国产又粗又长视频| 亚洲精品视频在线观看视频| 最近中文字幕免费mv2018在线| 日本精品在线视频 | 麻豆精品视频在线观看| 这里只有精品在线观看视频| 国产精品视频一二三| 精品成人久久久| 日韩一区二区在线观看| eeuss影院在线播放| 韩日精品中文字幕| 成人黄色理论片| 色一情一区二区三区四区| 亚洲黄色大片| 色欲欲www成人网站| 国产精品电影院| 蜜臀尤物一区二区三区直播| 欧美精品一区二区久久久| h网站久久久| 成人a免费视频| 欧美一级精品| 久久人妻精品白浆国产| 成人爱爱电影网址| 麻豆changesxxx国产| 51久久夜色精品国产麻豆| 一广人看www在线观看免费视频| 国产xxx69麻豆国语对白| 农村少妇一区二区三区四区五区| 亚洲国产一二三精品无码| 国产自产高清不卡| 成年人看的免费视频| 在线观看视频91| 你懂的在线播放| 日产日韩在线亚洲欧美| 亚洲人亚洲人色久| 日韩在线视频在线观看| 91小视频免费观看| 色婷婷av国产精品| 日韩成人中文字幕在线观看| 国模雨婷捆绑高清在线| 成人在线看片| 亚洲无线视频| 欧美久久久久久久久久久| 亚洲伊人色欲综合网| 成人免费一级视频| 国外成人免费在线播放| 精品按摩偷拍| 男人天堂999| 久久久精品tv| 中文字幕在线天堂| 一区二区三区国产在线观看| 91亚洲精品| av电影一区二区三区| 国产传媒久久文化传媒| 久久久久噜噜噜亚洲熟女综合| 欧美一级日韩免费不卡| 日本天码aⅴ片在线电影网站| a级国产乱理论片在线观看99| 亚洲午夜91| 在线观看av中文字幕| 一本色道a无线码一区v| 成av人电影在线观看| 亚洲在线第一页| 亚洲精选国产| 美国黄色特级片| 日韩欧美黄色影院| 激情视频网站在线播放色| 欧美精品一区二区三区四区五区| 日韩电影免费在线看| 久久精品亚洲a| 欧美精品一区二区在线播放| 天堂av在线网| 亚洲区一区二区三区| 国产精品一二三区在线| 黄色大片网站在线观看| 尤物tv国产一区| 激情五月综合婷婷| 亚洲色成人一区二区三区小说| 中文av一区二区| 亚洲欧美激情另类| 日本中文字幕不卡免费| 欧美一区二区三区另类| 中文字幕精品视频在线| 欧美日韩高清一区| 岛国毛片av在线| 日韩欧美一区二区在线观看| 韩国v欧美v日本v亚洲v| 精品91久久久| 日韩中文字幕在线看| 久久动漫网址| 999久久久精品视频| 日韩欧美综合在线视频| av在线free| 欧洲精品在线一区| 国产精品1区2区3区|