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

使用 Flink Hudi 構建流式數據湖

網絡 數據湖
從 2016 年開始,Apache Hudi 社區就開始通過 Hudi 的 UPSERT 能力探索近實時場景的使用案例 [1]。通過 MR/Spark 的批處理模型,用戶可以實現小時級別的數據注入 HDFS/OSS。在純實時場景,用戶通過流計算引擎 Flink + KV/OLAP 存儲的架構可以實現端到端的秒級 (5分鐘級) 實時分析。

本文介紹了 Flink Hudi 通過流計算對原有基于 mini-batch 的增量計算模型不斷優化演進。用戶可以通過 Flink SQL 將 CDC 數據實時寫入 Hudi 存儲,且在即將發布的 0.9 版本 Hudi 原生支持 CDC format。主要內容為:

1.背景

2.增量 ETL

3.演示

一、背景

近實時

從 2016 年開始,Apache Hudi 社區就開始通過 Hudi 的 UPSERT 能力探索近實時場景的使用案例 [1]。通過 MR/Spark 的批處理模型,用戶可以實現小時級別的數據注入 HDFS/OSS。在純實時場景,用戶通過流計算引擎 Flink + KV/OLAP 存儲的架構可以實現端到端的秒級 (5分鐘級) 實時分析。然而在秒級 (5分鐘級) 到小時級時的場景還存在大量的用例,我們稱之為 NEAR-REAL-TIME (近實時)。

在實踐中有大量的案例都屬于近實時的范疇:

分鐘級別的大屏;
各種 BI 分析 (OLAP);
機器學習分鐘級別的特征提取。

增量計算

解決近實時的方案當前是比較開放的。

流處理的時延低,但是 SQL 的 pattern 比較固定,查詢端的能力(索引、ad hoc)欠缺;
批處理的數倉能力豐富但是數據時延大。
于是 Hudi 社區提出基于 mini-batch 的增量計算模型:

增量數據集 => 增量計算結果 merge 已存結果 => 外存

這套模型通過湖存儲的 snapshot 拉取增量的數據集 (兩個 commits 之前的數據集),通過 Spark/Hive 等批處理框架計算增量的結果 (比如簡單的 count) 再 merge 到已存結果中。

核心問題

增量模型需要解決的核心問題:

UPSERT 能力:類似 KUDU 和 Hive ACID,Hudi 也提供了分鐘級的更新能力;
增量消費:Hudi 通過湖存儲的多 snapshots 提供增量拉取。
基于 mini-batch 的增量計算模型可以提升部分場景的時延、節省計算成本,但有一個很大的限制:對 SQL 的 pattern 有要求。因為計算走的是批,批計算本身不維護狀態,這就要求計算的指標能夠比較方便地 merge,簡單的 count、sum 可以做,但是 avg、count distinct 這些還是需要拉取全量數據重算。

隨著流計算和實時數倉的普及,Hudi 社區也在積極的擁抱變化,通過流計算對原有基于 mini-batch 的增量計算模型不斷優化演進:在 0.7 版本引入了流式數據入湖,在 0.9 版本支持了原生的 CDC format。

二、增量 ETL

DB 數據入湖

隨著 CDC 技術的成熟,debezium 這樣的 CDC 工具越來越流行,Hudi 社區也先后集成了流寫,流讀的能力。用戶可以通過 Flink SQL 將 CDC 數據實時寫入 Hudi 存儲:

用戶既可以通過 Flink CDC connector 直接將 DB 數據導入 Hudi;
也可以先將 CDC 數據導入 Kafka,再通過 Kafka connector 導入 Hudi。
第二種方案的容錯和擴展性會好一些。

數據湖 CDC

在即將發布的 0.9 版本,Hudi 原生支持 CDC format,一條 record 的所有變更記錄都可以保存,基于此,Hudi 和流計算系統結合的更加完善,可以流式讀取 CDC 數據 [2]:

源頭 CDC 流的所有消息變更都在入湖之后保存下來,被用于流式消費。Flink 的有狀態計算實時累加計算結果 (state),通過流式寫 Hudi 將計算的變更同步到 Hudi 湖存儲,之后繼續對接 Flink 流式消費 Hudi 存儲的 changelog, 實現下一層級的有狀態計算。近實時端到端 ETL pipeline:

這套架構將端到端的 ETL 時延縮短到分鐘級,并且每一層的存儲格式都可以通過 compaction 壓縮成列存(Parquet、ORC)以提供 OLAP 分析能力,由于數據湖的開放性,壓縮后的格式可以對接各種查詢引擎:Flink、Spark、Presto、Hive 等。

一張 Hudi 數據湖表具備兩種形態:

表形態:查詢最新的快照結果,同時提供高效的列存格式
流形態:流式消費變更,可以指定任意點位流讀之后的 changelog

三、演示

我們通過一段 Demo 演示 Hudi 表的兩種形態。

環境準備

Flink SQL Client
Hudi master 打包 hudi-flink-bundle jar
Flink 1.13.1
這里提前準備一段 debezium-json 格式的 CDC 數據

  1. {"before":null,"after":{"id":101,"ts":1000,"name":"scooter","description":"Small 2-wheel scooter","weight":3.140000104904175},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":0,"snapshot":"true","db":"inventory","table":"products","server_id":0,"gtid":null,"file":"mysql-bin.000003","pos":154,"row":0,"thread":null,"query":null},"op":"c","ts_ms":1589355606100,"transaction":null}{"before":null,"after":{"id":102,"ts":2000,"name":"car battery","description":"12V car battery","weight":8.100000381469727},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":0,"snapshot":"true","db":"inventory","table":"products","server_id":0,"gtid":null,"file":"mysql-bin.000003","pos":154,"row":0,"thread":null,"query":null},"op":"c","ts_ms":1589355606101,"transaction":null}{"before":null,"after":{"id":103,"ts":3000,"name":"12-pack drill bits","description":"12-pack of drill bits with sizes ranging from #40 to #3","weight":0.800000011920929},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":0,"snapshot":"true","db":"inventory","table":"products","server_id":0,"gtid":null,"file":"mysql-bin.000003","pos":154,"row":0,"thread":null,"query":null},"op":"c","ts_ms":1589355606101,"transaction":null}{"before":null,"after":{"id":104,"ts":4000,"name":"hammer","description":"12oz carpenter's hammer","weight":0.75},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":0,"snapshot":"true","db":"inventory","table":"products","server_id":0,"gtid":null,"file":"mysql-bin.000003","pos":154,"row":0,"thread":null,"query":null},"op":"c","ts_ms":1589355606101,"transaction":null}{"before":null,"after":{"id":105,"ts":5000,"name":"hammer","description":"14oz carpenter's hammer","weight":0.875},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":0,"snapshot":"true","db":"inventory","table":"products","server_id":0,"gtid":null,"file":"mysql-bin.000003","pos":154,"row":0,"thread":null,"query":null},"op":"c","ts_ms":1589355606101,"transaction":null}{"before":null,"after":{"id":106,"ts":6000,"name":"hammer","description":"16oz carpenter's hammer","weight":1},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":0,"snapshot":"true","db":"inventory","table":"products","server_id":0,"gtid":null,"file":"mysql-bin.000003","pos":154,"row":0,"thread":null,"query":null},"op":"c","ts_ms":1589355606101,"transaction":null}{"before":null,"after":{"id":107,"ts":7000,"name":"rocks","description":"box of assorted rocks","weight":5.300000190734863},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":0,"snapshot":"true","db":"inventory","table":"products","server_id":0,"gtid":null,"file":"mysql-bin.000003","pos":154,"row":0,"thread":null,"query":null},"op":"c","ts_ms":1589355606101,"transaction":null}{"before":null,"after":{"id":108,"ts":8000,"name":"jacket","description":"water resistent black wind breaker","weight":0.10000000149011612},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":0,"snapshot":"true","db":"inventory","table":"products","server_id":0,"gtid":null,"file":"mysql-bin.000003","pos":154,"row":0,"thread":null,"query":null},"op":"c","ts_ms":1589355606101,"transaction":null}{"before":null,"after":{"id":109,"ts":9000,"name":"spare tire","description":"24 inch spare tire","weight":22.200000762939453},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":0,"snapshot":"true","db":"inventory","table":"products","server_id":0,"gtid":null,"file":"mysql-bin.000003","pos":154,"row":0,"thread":null,"query":null},"op":"c","ts_ms":1589355606101,"transaction":null}{"before":{"id":106,"ts":6000,"name":"hammer","description":"16oz carpenter's hammer","weight":1},"after":{"id":106,"ts":10000,"name":"hammer","description":"18oz carpenter hammer","weight":1},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":1589361987000,"snapshot":"false","db":"inventory","table":"products","server_id":223344,"gtid":null,"file":"mysql-bin.000003","pos":362,"row":0,"thread":2,"query":null},"op":"u","ts_ms":1589361987936,"transaction":null}{"before":{"id":107,"ts":7000,"name":"rocks","description":"box of assorted rocks","weight":5.300000190734863},"after":{"id":107,"ts":11000,"name":"rocks","description":"box of assorted rocks","weight":5.099999904632568},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":1589362099000,"snapshot":"false","db":"inventory","table":"products","server_id":223344,"gtid":null,"file":"mysql-bin.000003","pos":717,"row":0,"thread":2,"query":null},"op":"u","ts_ms":1589362099505,"transaction":null}{"before":null,"after":{"id":110,"ts":12000,"name":"jacket","description":"water resistent white wind breaker","weight":0.20000000298023224},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":1589362210000,"snapshot":"false","db":"inventory","table":"products","server_id":223344,"gtid":null,"file":"mysql-bin.000003","pos":1068,"row":0,"thread":2,"query":null},"op":"c","ts_ms":1589362210230,"transaction":null}{"before":null,"after":{"id":111,"ts":13000,"name":"scooter","description":"Big 2-wheel scooter ","weight":5.179999828338623},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":1589362243000,"snapshot":"false","db":"inventory","table":"products","server_id":223344,"gtid":null,"file":"mysql-bin.000003","pos":1394,"row":0,"thread":2,"query":null},"op":"c","ts_ms":1589362243428,"transaction":null}{"before":{"id":110,"ts":12000,"name":"jacket","description":"water resistent white wind breaker","weight":0.20000000298023224},"after":{"id":110,"ts":14000,"name":"jacket","description":"new water resistent white wind breaker","weight":0.5},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":1589362293000,"snapshot":"false","db":"inventory","table":"products","server_id":223344,"gtid":null,"file":"mysql-bin.000003","pos":1707,"row":0,"thread":2,"query":null},"op":"u","ts_ms":1589362293539,"transaction":null}{"before":{"id":111,"ts":13000,"name":"scooter","description":"Big 2-wheel scooter ","weight":5.179999828338623},"after":{"id":111,"ts":15000,"name":"scooter","description":"Big 2-wheel scooter ","weight":5.170000076293945},"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":1589362330000,"snapshot":"false","db":"inventory","table":"products","server_id":223344,"gtid":null,"file":"mysql-bin.000003","pos":2090,"row":0,"thread":2,"query":null},"op":"u","ts_ms":1589362330904,"transaction":null}{"before":{"id":111,"ts":16000,"name":"scooter","description":"Big 2-wheel scooter ","weight":5.170000076293945},"after":null,"source":{"version":"1.1.1.Final","connector":"mysql","name":"dbserver1","ts_ms":1589362344000,"snapshot":"false","db":"inventory","table":"products","server_id":223344,"gtid":null,"file":"mysql-bin.000003","pos":2443,"row":0,"thread":2,"query":null},"op":"d","ts_ms":1589362344455,"transaction":null 

通過 Flink SQL Client 創建表用來讀取 CDC 數據文件

  1. Flink SQL> CREATE TABLE debezium_source(>   id INT NOT NULL,>   ts BIGINT,>   name STRING,>   description STRING,>   weight DOUBLE> ) WITH (>   'connector' = 'filesystem',>   'path' = '/Users/chenyuzhao/workspace/hudi-demo/source.data',>   'format' = 'debezium-json'> );[INFO] Execute statement succeed. 

執行 SELECT 觀察結果,可以看到一共有 20 條記錄,中間有一些 UPDATE s,最后一條消息是 DELETE

  1. Flink SQL> select * from debezium_source;+----+-------------+----------------------+--------------------------------+--------------------------------+--------------------------------+| op |          id |                   ts |                           name |                    description |                         weight |+----+-------------+----------------------+--------------------------------+--------------------------------+--------------------------------+| +I |         101 |                 1000 |                        scooter |          Small 2-wheel scooter |              3.140000104904175 || +I |         102 |                 2000 |                    car battery |                12V car battery |              8.100000381469727 || +I |         103 |                 3000 |             12-pack drill bits | 12-pack of drill bits with ... |              0.800000011920929 || +I |         104 |                 4000 |                         hammer |        12oz carpenter's hammer |                           0.75 || +I |         105 |                 5000 |                         hammer |        14oz carpenter's hammer |                          0.875 || +I |         106 |                 6000 |                         hammer |        16oz carpenter's hammer |                            1.0 || +I |         107 |                 7000 |                          rocks |          box of assorted rocks |              5.300000190734863 || +I |         108 |                 8000 |                         jacket | water resistent black wind ... |            0.10000000149011612 || +I |         109 |                 9000 |                     spare tire |             24 inch spare tire |             22.200000762939453 || -U |         106 |                 6000 |                         hammer |        16oz carpenter's hammer |                            1.0 || +U |         106 |                10000 |                         hammer |          18oz carpenter hammer |                            1.0 || -U |         107 |                 7000 |                          rocks |          box of assorted rocks |              5.300000190734863 || +U |         107 |                11000 |                          rocks |          box of assorted rocks |              5.099999904632568 || +I |         110 |                12000 |                         jacket | water resistent white wind ... |            0.20000000298023224 || +I |         111 |                13000 |                        scooter |           Big 2-wheel scooter  |              5.179999828338623 || -U |         110 |                12000 |                         jacket | water resistent white wind ... |            0.20000000298023224 || +U |         110 |                14000 |                         jacket | new water resistent white w... |                            0.5 || -U |         111 |                13000 |                        scooter |           Big 2-wheel scooter  |              5.179999828338623 || +U |         111 |                15000 |                        scooter |           Big 2-wheel scooter  |              5.170000076293945 || -D |         111 |                16000 |                        scooter |           Big 2-wheel scooter  |              5.170000076293945 |+----+-------------+----------------------+--------------------------------+--------------------------------+--------------------------------+Received a total of 20 rows 

 創建 Hudi 表,這里設置表的形態為 MERGE_ON_READ 并且打開 changelog 模式屬性 changelog.enabled

  1. Flink SQL> CREATE TABLE hoodie_table(> id INT NOT NULL PRIMARY KEY NOT ENFORCED,> ts BIGINT,> name STRING,> description STRING,> weight DOUBLE> ) WITH (> 'connector' = 'hudi',> 'path' = '/Users/chenyuzhao/workspace/hudi-demo/t1',> 'table.type' = 'MERGE_ON_READ',> 'changelog.enabled' = 'true',> 'compaction.async.enabled' = 'false'> );[INFO] Execute statement succeed. 

查詢

通過 INSERT 語句將數據導入 Hudi,開啟流讀模式,并執行查詢觀察結果

責任編輯:梁菲 來源: 阿里云云棲號
相關推薦

2023-02-26 00:12:10

Hadoop數據湖存儲

2021-07-20 11:52:03

FlinkIceberg 對象存儲

2022-10-17 10:48:50

Hudi大數據Hadoop

2022-06-09 14:19:46

順豐數據集成Flink

2021-09-13 13:46:29

Apache HudiB 站數據湖

2022-10-24 00:26:51

大數據Hadoop存儲層

2020-03-26 10:05:18

大數據IT互聯網

2025-05-21 08:20:00

Fluss數據流數據湖倉

2015-10-22 14:02:58

ElasticsearKafkaCassandra

2022-11-01 07:43:30

2022-11-03 07:22:42

2022-12-08 07:17:49

2021-06-04 07:24:14

Flink CDC數據

2023-07-12 12:02:06

WOT大數據流式數據湖

2021-09-07 10:41:21

CDC數據湖Apache Hud

2023-05-16 07:24:25

數據湖快手

2023-12-14 13:01:00

Hudivivo

2020-10-30 09:27:25

開源技術 數據

2022-05-10 10:03:52

Halodoc數據平臺Lakehouse

2022-10-14 14:20:20

云原生數據倉庫
點贊
收藏

51CTO技術棧公眾號

国产精品无码永久免费888| 免费成人小视频| 亚洲精品久久久久久久久久久久久| 国产手机免费视频| 久久久久国产精品嫩草影院| 老司机免费视频一区二区三区| 久久夜色精品国产亚洲aⅴ| 日本道中文字幕| 日韩三区免费| 亚洲国产一区二区在线播放| 日本一区视频在线| 亚洲精品国产精| 老司机午夜免费精品视频| 久久av中文字幕| 国精品无码人妻一区二区三区| 伊人久久一区| 91久久奴性调教| 999一区二区三区| 日本高清中文字幕在线| 91视频在线观看免费| 91精品综合久久久久久五月天| 久久久国产高清| 一区二区国产在线| 中文字幕亚洲国产| 亚洲狠狠婷婷综合久久久久图片| 国产精品麻豆| 欧美在线一区二区| 成人在线免费观看av| 91精选在线| 中文av字幕一区| 欧美日本韩国国产| 人妻中文字幕一区| 国产乱人伦偷精品视频免下载| 国产精品福利在线观看| 天天做天天爱夜夜爽| 欧美久久一级| 久久综合88中文色鬼| 亚洲一级黄色录像| 蜜桃一区二区三区| 日韩国产欧美精品一区二区三区| 免费在线观看日韩av| 青草综合视频| 欧美日韩另类一区| 国产精品拍拍拍| 成人免费毛片嘿嘿连载视频…| 欧美日韩国产精品| 777精品久无码人妻蜜桃| 青草在线视频| 亚洲高清中文字幕| 成人免费a级片| 国内在线免费视频| 亚洲一区二区欧美日韩| 国产夫妻自拍一区| 丁香花在线高清完整版视频| 一区二区三区中文字幕| 黄色一级片网址| 国产最新在线| 夜夜嗨av一区二区三区| 欧洲精品在线播放| gogo久久| 欧美午夜片欧美片在线观看| 日韩欧美亚洲天堂| 北岛玲heyzo一区二区| 日韩欧美在线视频观看| 日韩免费高清在线| 国产福利91精品一区二区| 欧美日韩精品欧美日韩精品一综合| 性欧美极品xxxx欧美一区二区| 日韩成人亚洲| 6080亚洲精品一区二区| 俄罗斯女人裸体性做爰| a看欧美黄色女同性恋| 日韩电影免费观看中文字幕| 成人乱码一区二区三区av| 精品一区二区三区中文字幕老牛| 在线观看日韩av| 青花影视在线观看免费高清| 欧美精品九九| 欧美亚洲国产日韩2020| 波多野结衣在线电影| 激情综合色播激情啊| 97人人模人人爽人人喊38tv| 天堂av中文字幕| 中文字幕av一区 二区| 日本道在线视频| 美女高潮在线观看| 欧美午夜精品久久久久久超碰| 中文国产在线观看| 嫩草国产精品入口| 中文字幕一区日韩电影| 精品在线视频免费观看| 天堂久久一区二区三区| 91情侣偷在线精品国产| 午夜影院免费体验区| 国产欧美日韩在线看| 日本a级片在线观看| 樱花草涩涩www在线播放| 欧美日韩在线免费视频| 人妻换人妻a片爽麻豆| 欧美日韩高清| 午夜精品久久17c| 中文字幕+乱码+中文| 成人免费va视频| 亚洲精品9999| 激情aⅴ欧美一区二区欲海潮| 欧美绝品在线观看成人午夜影视| 国产精品福利导航| 久久精品国内一区二区三区水蜜桃| 97在线免费视频| 国产www视频| 国产欧美日韩综合| 少妇av一区二区三区无码| 四虎精品一区二区免费| 亚洲男人天堂古典| 久久久久无码精品国产| 久久成人免费网| 欧美精品一区二区视频 | 韩国av一区二区| 欧美日韩电影一区二区三区| 日韩影视在线| 欧美日韩一区二区电影| 午夜理伦三级做爰电影| 伊人成人在线| 97操在线视频| 黄色网页在线播放| 欧美性极品少妇| 成人精品999| 亚洲免费影院| 精品综合久久久| 91精品国产黑色瑜伽裤| 欧美一区二区三区在| 婷婷丁香综合网| 全国精品久久少妇| 欧美日韩免费精品| 蜜桃av在线| 亚洲国产三级网| 日产精品久久久久久久| 丁香婷婷综合激情五月色| 国产av不卡一区二区| 欧美特黄色片| 日韩在线不卡视频| 欧美激情一区二区三区免费观看 | а√天堂8资源在线| 精品区一区二区| 欧美日韩中文字幕在线观看| 国产福利一区二区三区在线视频| 天天综合中文字幕| www.欧美视频| 欧美大奶子在线| 成人av一区二区三区在线观看| 亚洲欧美日韩在线| 伊人成人免费视频| 欧美视频一区| 国产尤物91| 亚洲精品国产精品国产| 亚洲老板91色精品久久| 日韩精品一区二区亚洲av观看| 国产视频一区二区三区在线观看| 免费国产成人av| 久久国产亚洲| 999热视频| a级片免费在线观看| 亚洲精品成人网| 免费av中文字幕| 国产精品免费aⅴ片在线观看| 午夜剧场高清版免费观看| 亚洲激情中文| 国产一区再线| 成人国产精品| 欧美成人一二三| 无码国产精品一区二区色情男同| 欧美网站在线观看| 91ts人妖另类精品系列| 国产精品99久久久久久似苏梦涵 | 日韩一区二区三区视频| 日本特黄一级片| 国产三级一区二区三区| 亚洲欧美日韩综合网| 午夜国产一区| 蜜桃导航-精品导航| 日本免费成人| 97碰碰碰免费色视频| 国产九色在线| 精品免费日韩av| 欧美a视频在线观看| 成人免费小视频| 午夜男人的天堂| 人人超碰91尤物精品国产| 最新av网址在线观看| 尤物tv在线精品| 91嫩草在线视频| 欧美电影免费观看高清完整| 久久天天躁狠狠躁老女人| 熟妇人妻av无码一区二区三区| 欧美视频完全免费看| 久久久久久天堂| 中文字幕不卡在线播放| 亚洲一二三四五| 蜜桃精品视频在线观看| 青青青在线视频播放| 水蜜桃精品av一区二区| 精品国产乱码久久久久久郑州公司| 欧亚一区二区| 久久人人爽人人| 欧美性猛交xxx乱大交3蜜桃| 亚洲精品国产精品久久清纯直播 | 日韩黄色三级在线观看| 88国产精品欧美一区二区三区| 三区四区在线视频| 日韩精品免费电影| 亚洲成人久久精品| 欧美日韩亚州综合| 亚洲天堂视频网站| 亚洲一区二区三区免费视频| 国产小视频你懂的| 久久久久久久久伊人| 稀缺小u女呦精品呦| 久久精品国产免费| 日本一极黄色片| 亚洲激情二区| 国产av熟女一区二区三区 | 中文国产成人精品久久一| 五月色婷婷综合| 亚洲成年人在线| 国内毛片毛片毛片毛片| 欧美美女一区二区三区| 亚洲精品无码久久久久| 日韩欧美999| 亚洲日本韩国在线| 亚洲成人资源网| 久久久久久久久久网站| 专区另类欧美日韩| 99国产精品无码| 国产精品久久久久永久免费观看 | 黑丝美女久久久| 国产无遮挡又黄又爽| 一级日本不卡的影视| 少妇影院在线观看| 亚洲欧美日韩在线播放| 国产高潮国产高潮久久久91| 自拍偷拍欧美精品| 国产激情无码一区二区三区 | 国产精品成人av久久| 亚洲精品久久久久久国产精华液| 精品无码一区二区三区蜜臀| 中文字幕亚洲一区二区av在线| 992在线观看| 亚洲欧美怡红院| www.xxxx日本| 一区二区三区欧美激情| 亚洲精品在线观看av| 亚洲电影一区二区| 全部毛片永久免费看| 日韩欧美精品网址| 亚洲精品久久久久久久蜜桃| 欧美午夜影院一区| 在线观看视频中文字幕| 91麻豆精品久久久久蜜臀| 性生交生活影碟片| 亚洲国产成人精品女人久久久 | 欧美成人精品在线播放| 色女人在线视频| 久久全国免费视频| 国产高清不卡| 国产欧美精品xxxx另类| 精品视频一区二区三区| 国产精品日韩一区二区免费视频| 久久精品66| 日韩精品欧美专区| 99热国内精品永久免费观看| 国产在线观看欧美| 在线综合视频| 亚洲第一狼人区| 国产福利不卡视频| 私密视频在线观看| 国产欧美日本一区视频| www欧美com| 狠狠躁夜夜躁人人躁婷婷91| 中文字幕在线2018| 日韩精品一区二区三区三区免费| 五月激情六月婷婷| 久久精品福利视频| 国产在线88av| 91精品久久久久久久久久久久久| 久久久久毛片免费观看| 久久婷婷国产综合尤物精品| 欧美顶级大胆免费视频| 激情小视频网站| 秋霞av亚洲一区二区三| 美女流白浆视频| 中文字幕电影一区| 国产亚洲成人av| 欧美色倩网站大全免费| 欧美熟妇另类久久久久久不卡| 亚洲最新av在线| 毛片网站在线看| 国产日韩欧美成人| 老牛影视av一区二区在线观看| 亚洲一区美女| 一区二区精品| 免费观看黄网站| 中文字幕欧美国产| 日本少妇性生活| 欧美日韩不卡一区二区| 四虎在线免费观看| 久精品免费视频| 99re久久| 欧美精品二区三区四区免费看视频| 综合激情网站| 亚洲欧洲日本精品| 久久综合色综合88| 国产亚洲成人精品| 91麻豆精品国产综合久久久久久| 久久精品色图| 茄子视频成人在线| 超碰97久久国产精品牛牛| 国产精品亚洲天堂| 免费在线观看日韩欧美| 亚欧洲乱码视频| 精品国产电影一区| 不卡的日韩av| 超薄丝袜一区二区| 宅男噜噜噜66国产精品免费| 五月天亚洲综合| 久久蜜桃精品| 国产精品无码久久久久久| 香蕉乱码成人久久天堂爱免费| 国产精品久久久久久免费免熟| 亚洲一区第一页| 男人皇宫亚洲男人2020| 免费毛片一区二区三区久久久| 国内自拍一区| 中文字幕无人区二| 一区二区三区在线视频免费观看| 一级全黄少妇性色生活片| 国产一区二区三区在线观看视频 | 免费看黄色三级| 91黄色免费看| shkd中文字幕久久在线观看| 欧美亚洲一级片| 精品一区亚洲| 国产精品乱码久久久久| 久久精品一区蜜桃臀影院| 国产亚洲欧美在线精品| 亚洲欧美精品中文字幕在线| 黑人巨大精品欧美一区二区桃花岛| 久久综合伊人77777麻豆| 亚洲在线观看| 国产肥白大熟妇bbbb视频| 色88888久久久久久影院按摩| 黄色av网站在线免费观看| 国产精品av网站| 日韩情爱电影在线观看| 99国产精品久久久久久| 亚洲男女毛片无遮挡| jizz中国少妇| 国内精品小视频在线观看| 日本妇女一区| 亚洲 欧美 日韩系列| 亚洲欧洲99久久| 精品国产乱码一区二区三 | 尤物视频在线观看国产| 亚洲精品网址在线观看| av成人免费| 特色特色大片在线| 成人丝袜18视频在线观看| 国产情侣在线视频| 国产亚洲欧洲黄色| 成人在线视频www| 黄色www网站| 国产欧美一区二区精品忘忧草| 国产乱淫a∨片免费观看| 欧美激情一级欧美精品| 久久99国产成人小视频| 亚洲综合av在线播放| 亚洲大型综合色站| 国产视频在线看| 成人中文字幕+乱码+中文字幕| 极品少妇一区二区三区| 国产一区二区三区四区五区六区| 欧美浪妇xxxx高跟鞋交| 2001个疯子在线观看| 先锋影音网一区| 国产99精品在线观看| 无码人妻精品一区二区三区蜜桃91 | 国产精品久久久久91| 国产精品99久久| 一本加勒比波多野结衣| 欧美精品一卡两卡| 成人一级福利| 亚洲一区二区三区精品动漫| 成人三级在线视频| 中文字幕黄色av| 国语自产精品视频在免费| 不卡一区2区| 亚洲av无码一区二区三区网址| 欧美日韩国产一区二区三区地区| 多野结衣av一区| 日韩video| 国产精品网站在线|