日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

4、Hive数据操作,DDL操作,CRUD database,CRUD table,partition,view,index,show命令等

發(fā)布時間:2024/9/27 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4、Hive数据操作,DDL操作,CRUD database,CRUD table,partition,view,index,show命令等 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

4.1DDL操作
4.1.1Create/Drop/Alter/Use Database
4.1.1.1Create Database
4.1.1.2Drop Database
4.1.1.3Alter Database
4.1.1.4Use Database
4.1.2Create Table
4.1.2.1內(nèi)部表和外部表
4.1.2.2Storage Formats
4.1.2.3Create內(nèi)部表,表分區(qū)
4.1.2.4Create外部表(External Tables)
4.1.2.5 Create Table As Select (CTAS)
4.1.2.6 Create Table Like
4.1.2.7Bucketed Sorted Tables
4.1.2.8Skewed Tables
4.1.2.9Temporary Tables
4.1.2.10Transactional Tables
4.1.2.11Constraints
4.1.3Drop Table
4.1.4Truncate Table
4.1.5Alter Table
4.1.5.1Alter Table
4.1.5.2Alter Table Properties
4.1.5.3Alter Table Comment
4.1.5.4Add SerDe Properties
4.1.5.5 Alter Table Storage Properties
4.1.5.6Alter Table Skewed or Stored as Directories
4.1.5.7Alter Table Skewed
4.1.5.8Alter Table Not Skewed
4.1.5.9Alter Table Not Stored as Directories
4.1.5.10Alter Table Set Skewed Location
4.1.5.11Alter Table Constraints
4.1.6 Alter Partition
4.1.6.1Add Partitions
4.1.6.2Dynamic Partitions
4.1.6.3Rename Partition
4.1.6.4Exchange Partition
4.1.6.5 Recover Partitions (MSCK REPAIR TABLE)
4.1.6.6 Drop Partitions
4.1.6.7 (Un)Archive Partition
4.1.7 Alter Either Table or Partition
4.1.7.1 Alter Table/Partition File Format
4.1.7.2Alter Table/Partition Location
4.1.8 Alter Column
4.1.8.1Change Column Name/Type/Position/Comment
4.1.8.2 Add/Replace列
4.1.9 Create/Drop/Alter View
4.1.9.1 Create View
4.1.9.2 Drop View
4.1.9.3 Alter View的屬性
4.1.9.4 Alter View As Select
4.1.10 Create/Drop/Alter Index
4.1.10.1Create Index
4.1.10.2 Drop Index
4.1.10.3Alter Index
4.1.11Show
?Show Databases
?Show Tables/Views/Partitions/Indexes
?Show Tables
?Show Views
?Show Partitions
?Show Table/Partition Extended
?Show Table Properties
?Show Create Table
?Show Indexes
?Show Columns
?Show Functions
?Show Granted Roles and Privileges
?Show Locks
?Show Conf
?Show Transactions
?Show Compactions

4.1DDL操作

4.1.1Create/Drop/Alter/Use Database

4.1.1.1Create Database

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name[COMMENT database_comment][LOCATION hdfs_path][WITH DBPROPERTIES (property_name=property_value, ...)];

使用SCHEMA和DATABASE是可互換的,它們以為著同一件事情。

案例:

CREATE DATABASE IF NOT EXISTS demo_dbCOMMENT 'demo'LOCATION '/hive/demo/demo_db' WITH DBPROPERTIES ("name"="test demo");hive>show databases; OK default demo_db Time taken: 0.013 seconds, Fetched: 4 row(s) hive>

4.1.1.2Drop Database

DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];

案例:

hive> DROP DATABASE IF EXISTS test_database; hive> show databases; OK default demo_db shopping test_database Time taken: 0.008 seconds, Fetched: 4 row(s) hive> DROP DATABASE IF EXISTS test_database CASCADE; hive> show databases; OK default demo_db shopping Time taken: 0.011 seconds, Fetched: 3 row(s) hive>

4.1.1.3Alter Database

ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...); -- (Note: SCHEMA added in Hive 0.14.0)ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role; -- (Note: Hive 0.13.0 and later; SCHEMA added in Hive 0.14.0)ALTER (DATABASE|SCHEMA) database_name SET LOCATION hdfs_path; -- (Note: Hive 2.2.1, 2.4.0 and later)

案例:

hive> ALTER DATABASE demo_db SET DBPROPERTIES ("name"="test demo db");

4.1.1.4Use Database

USE database_name; USE DEFAULT;

案例:

hive> use demo_db; OK Time taken: 0.03 seconds hive> select current_database(); OK demo_db Time taken: 0.148 seconds, Fetched: 1 row(s) hive>

4.1.2Create Table

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later)[(col_name data_type [COMMENT col_comment], ... [constraint_specification])][COMMENT table_comment][PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)][CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS][SKEWED BY (col_name, col_name, ...) -- (Note: Available in Hive 0.10.0 and later)]ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)[STORED AS DIRECTORIES][[ROW FORMAT row_format] [STORED AS file_format]| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] -- (Note: Available in Hive 0.6.0 and later)][LOCATION hdfs_path][TBLPROPERTIES (property_name=property_value, ...)] -- (Note: Available in Hive 0.6.0 and later)[AS select_statement]; -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_nameLIKE existing_table_or_view_name[LOCATION hdfs_path];data_type: primitive_type| array_type| map_type| struct_type| union_type -- (Note: Available in Hive 0.7.0 and later)primitive_type: TINYINT| SMALLINT| INT| BIGINT| BOOLEAN| FLOAT| DOUBLE| DOUBLE PRECISION -- (Note: Available in Hive 2.2.0 and later)| STRING| BINARY -- (Note: Available in Hive 0.8.0 and later)| TIMESTAMP -- (Note: Available in Hive 0.8.0 and later)| DECIMAL -- (Note: Available in Hive 0.11.0 and later)| DECIMAL(precision, scale) -- (Note: Available in Hive 0.13.0 and later)| DATE -- (Note: Available in Hive 0.12.0 and later)| VARCHAR -- (Note: Available in Hive 0.12.0 and later)| CHAR -- (Note: Available in Hive 0.13.0 and later)array_type: ARRAY < data_type >map_type: MAP < primitive_type, data_type >struct_type: STRUCT < col_name : data_type [COMMENT col_comment], ...>union_type: UNIONTYPE < data_type, data_type, ... > -- (Note: Available in Hive 0.7.0 and later)row_format: DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char][MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char][NULL DEFINED AS char] -- (Note: Available in Hive 0.13 and later)| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]file_format:: SEQUENCEFILE| TEXTFILE -- (Default, depending on hive.default.fileformat configuration)| RCFILE -- (Note: Available in Hive 0.6.0 and later)| ORC -- (Note: Available in Hive 0.11.0 and later)| PARQUET -- (Note: Available in Hive 0.13.0 and later)| AVRO -- (Note: Available in Hive 0.14.0 and later)| JSONFILE -- (Note: Available in Hive 4.0.0 and later)| INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classnameconstraint_specification:: [, PRIMARY KEY (col_name, ...) DISABLE NOVALIDATE ][, CONSTRAINT constraint_name FOREIGN KEY (col_name, ...) REFERENCES table_name(col_name, ...) DISABLE NOVALIDATE 通過指定表明的方式創(chuàng)建表,如果已經(jīng)含有相同的表明,將拋出一個已經(jīng)存在了的異常。你可以使用”IF NOT EXISTS”的方式跳過這個異常。1.表明和列名不敏感,但是SerDe和屬性名稱敏感A: 在Hive 0.12和更早的版本中,表名和列名中只允許字母、數(shù)字和下劃線字符B:在Hive 0.13和更高版本中,列名可以包含任何Unicode字符(參見Hive -6013),但是,點(diǎn)(.)和冒號(:)在查詢時產(chǎn)生錯誤,因此在Hive 1.2.0中不允許使用它們(參見Hive -10120)。在反引號(')中指定的任何列名都按字面意義處理。在反勾字符串中,使用雙反勾(' ')表示反勾字符。反引號還允許為表和列標(biāo)識符使用保留關(guān)鍵字。C: 要恢復(fù)到0.13.0之前的行為,并將列名限制為字母、數(shù)字和下劃線字符,請設(shè)置configuration屬性hive.support. quotes。標(biāo)識符。在這個配置中,反勾的名稱被解釋為正則表達(dá)式。有關(guān)詳細(xì)信息,請參見支持列名中引用的標(biāo)識符。 2.表和列的注釋是字符串(單引號) 3.沒有使用EXTERNAL語句的創(chuàng)建的表叫內(nèi)部表,因?yàn)镠ive管理它的數(shù)據(jù)。查找一個表示內(nèi)部表還是外部表,可以在hive命令行窗口輸入: DESCRIBE EXTENDED table_name.的方式獲取tableType (如果tableType:EXTERNAL_TABLE,則為外部表,如果是:tableType:MANAGED_TABLE表示是內(nèi)部表)4. TBLPROPERTIES語句允許你為表添加一些定義標(biāo)簽。例如: A: TBLPROPERTIES ("comment"="table_comment")B: TBLPROPERTIES ("hbase.table.name"="table_name")C: TBLPROPERTIES ("immutable"="true") or ("immutable"="false")D: TBLPROPERTIES ("orc.compress"="ZLIB")("orc.compress"="SNAPPY")("orc.compress"="NONE") 和其它的 ORC 屬性。E: TBLPROPERTIES ("transactional"="true")("transactional"="false")0.14.0+版本中開始支持,默認(rèn)值是"false".F: TBLPROPERTIES ("NO_AUTO_COMPACTION"="true") or ("NO_AUTO_COMPACTION"="false"), 默認(rèn)值是 "false" G: TBLPROPERTIES ("compactor.mapreduce.map.memory.mb"="mapper_memory") H: TBLPROPERTIES ("compactorthreshold.hive.compactor.delta.num.threshold"="threshold_num")I: TBLPROPERTIES ("compactorthreshold.hive.compactor.delta.pct.threshold"="threshold_pct") J: TBLPROPERTIES ("auto.purge"="true") or ("auto.purge"="false") , 1.2.0+版本開始支持 (HIVE-9118)K: TBLPROPERTIES ("EXTERNAL"="TRUE") in release 0.6.0+ (HIVE-1329) –將一個內(nèi)部表變成一個外部表通過將值變成"FALSE".(在hive2.4.0版本中,這個屬性值’EXTERNAL’被解析外一個布爾值,這個值為大小寫敏感的true/false)L: TBLPROPERTIES ("external.table.purge"="true") in release 4.0.0+ (HIVE-19981) ,當(dāng)這個屬性值被設(shè)置到外部表示,刪除表的時候?qū)⑼瑯訉h除數(shù)據(jù)。 5.在創(chuàng)建表的時候,指定一個數(shù)據(jù)庫(使用命令:USE database_name),或者通過數(shù)據(jù)庫名限定表明。(在Hive 0.7版本之后使用"database_name.table.name"的方式),“default”關(guān)鍵字可以作為默認(rèn)的數(shù)據(jù)庫。

4.1.2.1內(nèi)部表和外部表

默認(rèn)情況下,Hive創(chuàng)建的是內(nèi)部表,這種表所有的文件,元數(shù)據(jù)和統(tǒng)計信息被Hive的內(nèi)部進(jìn)程管理,如果想了解更多關(guān)于內(nèi)部表和外部表,可以查看https://cwiki.apache.org/confluence/display/Hive/Managed+vs.+External+Tables

4.1.2.2Storage Formats

Hive支持內(nèi)置和自定義開發(fā)的文件格式。關(guān)于更多關(guān)于壓縮存儲的可以查看:https://cwiki.apache.org/confluence/display/Hive/CompressedStorage,下面是Hive中內(nèi)置的一些文件格式:

Storage FormatDescription
STORED AS TEXTFILE作為純文本文件存儲. TEXTFILE是默認(rèn)的文件格式, 除非 hive.default.fileformat 這個屬性有不同的.設(shè)置 /// 使用DELIMITED 子句讀取帶有分割符的文件 /// 可以使用’ESCAPED BY’ 子句來進(jìn)行轉(zhuǎn)義 (例如:ESCAPED BY ‘’) /// 一個自定義 NULL 格式可以通過使用 'NULL DEFINED AS’子句指定 (默認(rèn)是 ‘\N’)
STORED AS SEQUENCEFILE以壓縮的Sequence File方式存儲。
STORED AS ORC以 ORC 文件格式存儲. 支持ACID 事務(wù) & Cost-based Optimizer (CBO). Stores column-level metadata.
STORED AS PARQUET以Parquet 格式存儲 (Hive 0.13.0 及其以后版本支持); /// 在 Hive 0.10, 0.11, or 0.12版本中使用 ROW FORMAT SERDE … STORED AS INPUTFORMAT … OUTPUTFORMAT syntax …來定義
STORED AS AVRO以Avro格式存儲(Hive 0.14.0及其以后版本)
STORED AS RCFILE以Record Columnar File 文件格式存儲.
STORED AS JSONFILE以Json file format文件格式存儲(Hive 4.0.0 and later及其以后版本支持)
STORED BY以一種非本地表格式存儲. 通過create或 link到一個非本地的表, 例如由一個 HBase 或 Druid 或 Accumulo 支持的表 /// 查看更多:https://cwiki.apache.org/confluence/display/Hive/StorageHandlers
INPUTFORMAT 和 OUTPUTFORMAT在這個文件格式中通過手工指定 InputFormat 和OutputFormat(這兩者的值為字符串)/// 例如, ‘org.apache.hadoop.hive.contrib.fileformat.base64.Base64TextInputFormat’ /// 對于 LZO 壓縮格式, 這個值是 : ‘INPUTFORMAT “com.hadoop.mapred.DeprecatedLzoTextInputFormat” ; OUTPUTFORMAT “org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat”’
(查看更多關(guān)于 LZO 壓縮格式:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LZO).

4.1.2.3Create內(nèi)部表,表分區(qū)

CREATE TABLE page_view(viewTime INT, userid BIGINT,page_url STRING, referrer_url STRING,ip STRING COMMENT 'IP Address of the User')COMMENT 'This is the page view table'PARTITIONED BY(dt STRING, country STRING)ROW FORMAT DELIMITEDFIELDS TERMINATED BY '\001' STORED AS SEQUENCEFILE;

以上表的含義:分區(qū)列dt,分區(qū)列country,以SEQUENCEFILE方式存儲。數(shù)據(jù)分割符是’\001’,上面的表數(shù)據(jù)存儲在<hive.metastore.warehouse.dir>/page_view中,即在hive-site.xml中配置指定的hive.metastore.warehouse.dir 的位置中。

4.1.2.4Create外部表(External Tables)

使用EXTERNAL關(guān)鍵字能夠讓你通過指定一個LOCATION的方式創(chuàng)建一個表,而不使用Hive的數(shù)據(jù)默認(rèn)存放位置,這種表對于已經(jīng)存在數(shù)據(jù)的情況下很有幫助,當(dāng)drop表的時候,使用EXTERNAL修飾的表數(shù)據(jù)將不被刪除。

如果想drop表的時候同樣刪除外部表數(shù)據(jù),可以設(shè)置表的屬性”external.table.purge=true”

一個EXTERNAL表可以存儲在Hive的任何位置,而不僅僅是存儲在hive.metastore.warehouse.dir設(shè)置的目錄中。

CREATE EXTERNAL TABLE page_view(viewTime INT, userid BIGINT,page_url STRING, referrer_url STRING,ip STRING COMMENT 'IP Address of the User',country STRING COMMENT 'country of origination')COMMENT 'This is the staging page view table'ROW FORMAT DELIMITED FIELDS TERMINATED BY '\054'STORED AS TEXTFILELOCATION '/hive/test/page_view';

4.1.2.5 Create Table As Select (CTAS)

這種情況下的限制是:
1.目標(biāo)表不能是外部表
2.目標(biāo)表不能是一個桶表

CREATE TABLE new_key_value_storeROW FORMAT SERDE "org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe"STORED AS RCFileAS SELECT (key % 1024) new_key, concat(key, value) key_value_pair FROM key_value_store SORT BY new_key, key_value_pair;

上面的new_key_value_store 就是目標(biāo)表,它的schema是 (new_key DOUBLE, key_value_pair STRING),它是通過SELECT語句查詢獲取到的。如果select表中沒有指定列的別名,那么列名將被自動取為 _col0,_col1。

4.1.2.6 Create Table Like

CREATE TABLE通過LIKE方式允許你復(fù)制一個已經(jīng)存在的表(不拷貝數(shù)據(jù))。語法格式如下:

CREATE TABLE empty_key_value_store LIKE key_value_store [TBLPROPERTIES (property_name=property_value, ...)];

4.1.2.7Bucketed Sorted Tables

CREATE TABLE page_view(viewTime INT, userid BIGINT,page_url STRING, referrer_url STRING,ip STRING COMMENT 'IP Address of the User')COMMENT 'This is the page view table'PARTITIONED BY(dt STRING, country STRING)CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETSROW FORMAT DELIMITEDFIELDS TERMINATED BY '\001'COLLECTION ITEMS TERMINATED BY '\002'MAP KEYS TERMINATED BY '\003'STORED AS SEQUENCEFILE;

上面的例子中,表被按照userid字段分桶了(clustered by),每個桶中的數(shù)據(jù)都被按照viewTime升序存儲。

CLUSTERED BY和SORTED BY創(chuàng)表語句不會影響數(shù)據(jù)是如何插入的,只會影響它是怎么讀的。這就意味著用戶必須小心翼翼的插入數(shù)據(jù),在這個過程中指定reduce的數(shù)據(jù)量bucket的數(shù)量。在查詢的時候使用CLUSTER BY和SORT BY命令。

4.1.2.8Skewed Tables

Skewed Table可以提高有一個或多個列有傾斜值的表的性能,通過指定經(jīng)常出現(xiàn)的值(嚴(yán)重傾斜),hive將會在元數(shù)據(jù)中記錄這些傾斜的列名和值,在join時能夠進(jìn)行優(yōu)化。若是指定了STORED AS DIRECTORIES,也就是使用列表桶(ListBucketing),hive會對傾斜的值建立子目錄,查詢會更加得到優(yōu)化。
可以再創(chuàng)建表是指定為 Skewed Table,如下例子,STORED AS DIRECTORIES是可選擇的,它指定了使用列表桶(ListBucketing)。

CREATE TABLE list_bucket_single (key STRING, value STRING)SKEWED BY (key) ON (1,5,6) [STORED AS DIRECTORIES]; 你也可以使用多個列創(chuàng)建Skewed Table,如下使用兩列。 CREATE TABLE list_bucket_multiple (col1 STRING, col2 int, col3 STRING)SKEWED BY (col1, col2) ON (('s1',1), ('s3',3), ('s13',13), ('s78',78)) [STORED AS DIRECTORIES];

更多關(guān)于Skewed表的信息,可以查看:https://blog.csdn.net/mhtian2015/article/details/78931236

4.1.2.9Temporary Tables

臨時表只能在當(dāng)前的Hive會話中被看到,數(shù)據(jù)將會被存儲在用戶的scratch目錄(hive-site.xml中指定的表中),在會話的時候?qū)⒈粍h除。

臨時表創(chuàng)建的限制條件:
1.分區(qū)列不支持。
2.不支持創(chuàng)建索引。

從Hive 1.1.0開始,通過使用hive.exec.temporary.table.storage 配置,臨時表的存儲策略可以被設(shè)置成 內(nèi)存,ssd,或者default。具體可以參考:http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html#Storage_Types_and_Storage_Policies

CREATE TEMPORARY TABLE list_bucket_multiple (col1 STRING, col2 int, col3 STRING);

4.1.2.10Transactional Tables

語法是:

CREATE TRANSACTIONAL TABLE transactional_table_test(key string, value string) PARTITIONED BY(ds string) STORED AS ORC;

4.1.2.11 Constraints

Hive支持未被驗(yàn)證的主鍵和外鍵約束。當(dāng)有約束是,一些SQL工具可以形成更加有效的查詢。因?yàn)檫@些外鍵沒有被驗(yàn)證,一些更新系統(tǒng)在load數(shù)據(jù)到hive的時候需要確保數(shù)據(jù)完整性。

案例:

create table pk(id1 integer, id2 integer,primary key(id1, id2) disable novalidate);create table fk(id1 integer, id2 integer,constraint c1 foreign key(id1, id2) references pk(id2, id1) disable novalidate);

4.1.3Drop Table

DROP TABLE [IF EXISTS] table_name [PURGE]; -- (注意: PURGE 在 Hive 0.14.0 及其以后版本才可用)

DROP TABLE刪除表的元數(shù)據(jù)和表的數(shù)據(jù)。如果Trash被配置了(并且PURGE沒有指定),表的數(shù)據(jù)實(shí)際上是被移動到了.Trash/Current目錄下。表的元數(shù)據(jù)完完整整的丟失了。
當(dāng)刪除一個外部表的時候,存儲在文件系統(tǒng)中的表述就實(shí)際上是沒有被刪除的。
如果外部表的表屬性設(shè)置了external.table.purge=true,那么數(shù)據(jù)也同樣會被刪除。

當(dāng)刪除含有視圖引用的表時,不會給出任何警告(視圖將會被掛起,無效了,必須用戶刪除或重新創(chuàng)建)

否則,表的信息將會從metastroe中刪除,原始的表數(shù)據(jù)將會被刪除,就像是被’hadoop dfs -rm’刪除一樣。一些情況下,表中的數(shù)據(jù)被移動到他們的用戶目錄下的.Trash文件夾下。因此用戶誤刪的表數(shù)據(jù)將可以通過創(chuàng)建相同的schema的方式恢復(fù),可以重新創(chuàng)建分區(qū)。這個過程可以通過hadoop手動的將數(shù)據(jù)移會原來的位置。

如果PURGE被指定了,表ode數(shù)據(jù)沒有進(jìn)入.Trash/Current目錄。因此在誤刪除的時候不能被恢復(fù)。Purge的屬性可以通過表的屬性 ‘a(chǎn)uto.purge’的方式設(shè)置(更多查看:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-listTableProperties)

在Hive 0.7.0及其以后版本中,如果表不存在,將會返回錯誤,除非再刪除表的時候添加IF EXISTS.或者將’ hive.exec.drop.ignorenonexistent’屬性設(shè)置成true.

4.1.4Truncate Table

TRUNCATE TABLE table_name [PARTITION partition_spec];partition_spec:: (partition_column = partition_col_value, partition_column = partition_col_value, ...)

在表和分區(qū)中的所有的數(shù)據(jù)行都會被刪除,如果文件系統(tǒng)中的Trash啟動了的話,這些數(shù)據(jù)行將會被放到trash中。否則他們將會被刪除。當(dāng)前這個目標(biāo)表應(yīng)該是native/內(nèi)部表,否則將會拋出異常。

從Hive2.3.0開始,如果TBLPROPERTIES中的表屬性”auto.purge”被設(shè)置成true,表的數(shù)據(jù)將不會被移動到Trash,誤操作TRUNCATE TABLE后,數(shù)據(jù)仍然不會被找回。

4.1.5Alter Table

Alter table命令能夠允許你改變已經(jīng)存在的表的結(jié)構(gòu)。你可以添加列或分區(qū),改變SerDe,添加表和SerDe屬性,或者重命名表。
相似的,alter table partition命令允許你改變一個指定的partition的屬性值。

4.1.5.1Alter Table

ALTER TABLE table_name RENAME TO new_table_name;

通過這個命令可將原來的表明變成一個新的表明。

4.1.5.2Alter Table Properties

ALTER TABLE table_name SET TBLPROPERTIES table_properties;table_properties:: (property_name = property_value, property_name = property_value, ... )

通過上面的命令,你可以添加你自己的metadata到表上。當(dāng)前的最后修改用戶,最后修改時間屬性值被自動添加到Hive中。用戶可以添加他們自己的屬性值到這個列表中??梢詧?zhí)行DESCRIBE EXTENDED TABLE 獲取這些信息。

4.1.5.3Alter Table Comment

想改變表的comment,你必須改變TBLPROPERTIES注釋屬性值

ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comment);

4.1.5.4Add SerDe Properties

ALTER TABLE table_name [PARTITION partition_spec] SET SERDE serde_class_name [WITH SERDEPROPERTIES serde_properties];ALTER TABLE table_name [PARTITION partition_spec] SET SERDEPROPERTIES serde_properties;serde_properties:: (property_name = property_value, property_name = property_value, ... )

例如:

ALTER TABLE table_name SET SERDEPROPERTIES ('field.delim' = ',');

4.1.5.5 Alter Table Storage Properties

ALTER TABLE table_name CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name, ...)]INTO num_buckets BUCKETS;

這些statements改變表的物理存儲屬性。

4.1.5.6Alter Table Skewed or Stored as Directories

一個表的SKEWED和STORED AS DIRECTORIES選項(xiàng)可以通過ALTER TABLE語句來改變。

4.1.5.7Alter Table Skewed

ALTER TABLE table_name SKEWED BY (col_name1, col_name2, ...)ON ([(col_name1_value, col_name2_value, ...) [, (col_name1_value, col_name2_value), ...][STORED AS DIRECTORIES];

STORED AS DIRECTORIES 選項(xiàng)決定一個skewed的表是否使用list bucketing特征,這個過程為skewed的值創(chuàng)建子目錄。

4.1.5.8Alter Table Not Skewed

ALTER TABLE table_name NOT SKEWED;

NOT SKEWED選項(xiàng)使表變成non-skewed,并且關(guān)閉list bucketing特征。

4.1.5.9Alter Table Not Stored as Directories

ALTER TABLE table_name NOT STORED AS DIRECTORIES;

4.1.5.10Alter Table Set Skewed Location

ALTER TABLE table_name SET SKEWED LOCATION (col_name1="location1" [, col_name2="location2", ...] );

4.1.5.11Alter Table Constraints

通過ALTER TABLE語句,表的Constraints可以被添加或remove。

ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column, ...) DISABLE NOVALIDATE; ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (column, ...) REFERENCES table_name(column, ...) DISABLE NOVALIDATE RELY; ALTER TABLE table_name DROP CONSTRAINT constraint_name;

4.1.6 Alter Partition

Partitions可以被添加,刪除,exchanged (moved)、drop、或者unarchived

4.1.6.1Add Partitions

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec [LOCATION 'location'][, PARTITION partition_spec [LOCATION 'location'], ...];partition_spec:: (partition_column = partition_col_value, partition_column = partition_col_value, ...)

例如:

ALTER TABLE page_view ADD PARTITION (dt='2008-08-08', country='us') location '/path/to/us/part080808'PARTITION (dt='2008-08-09', country='us') location '/path/to/us/part080809';

上面的語法是針對Hive 0.8版本的,添加多個分區(qū)的時候使用一個ALTER TABLE語句。
如果是在0.7版本,如果想修改多個分區(qū),需要使用以下方式:

ALTER TABLE table_name ADD PARTITION (partCol = 'value1') location 'loc1'; ALTER TABLE table_name ADD PARTITION (partCol = 'value2') location 'loc2'; ... ALTER TABLE table_name ADD PARTITION (partCol = 'valueN') location 'locN';

4.1.6.2Dynamic Partitions

分區(qū)可以動態(tài)的添加到一個表中,使用Hive的INSERT語句。通過下面的連接地址查看更多的detail和例子:

?Design Document for Dynamic Partitions:https://cwiki.apache.org/confluence/display/Hive/DynamicPartitions
?Tutorial: Dynamic-Partition Insert:https://cwiki.apache.org/confluence/display/Hive/Tutorial#Tutorial-Dynamic-PartitionInsert
?Hive DML: Dynamic Partition Inserts:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-DynamicPartitionInserts
?HCatalog Dynamic Partitioning:https://cwiki.apache.org/confluence/display/Hive/HCatalog+DynamicPartitions

4.1.6.3Rename Partition

ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;

4.1.6.4Exchange Partition

分區(qū)可以在表之間進(jìn)行交換,

-- 將分區(qū)從 table_name_1 移動到 table_name_2 表 ALTER TABLE table_name_2 EXCHANGE PARTITION (partition_spec) WITH TABLE table_name_1; -- 多分區(qū) ALTER TABLE table_name_2 EXCHANGE PARTITION (partition_spec, partition_spec2, ...) WITH TABLE table_name_1; Exchange Partition允許你將一個表的分區(qū)到另外一個表中,能夠做這種交換的前提是擁有相同的schema并且沒有這個分區(qū)。

4.1.6.5 Recover Partitions (MSCK REPAIR TABLE)

hive在元數(shù)據(jù)中保存著分區(qū)信息,如果直接用 hadoop fs -put 命名在HDFS上添加分區(qū),元數(shù)據(jù)不會意識到。

需要用戶在hive上為每個新分區(qū)執(zhí)行ALTER TABLE table_name ADD PARTITION,元數(shù)據(jù)才會意識到。

用戶可以用元數(shù)據(jù)檢查命令修復(fù)表,它會添加新分區(qū)的元數(shù)據(jù)信息到hive的元數(shù)據(jù)中。換句話說,這個命令會把HDFS上有的分區(qū),但是元數(shù)據(jù)中沒有的分區(qū),補(bǔ)充到元數(shù)據(jù)信息中。

MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS];

4.1.6.6Drop Partitions

ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...][IGNORE PROTECTION] [PURGE]; -- (Note: PURGE available in Hive 1.2.0 and later, IGNORE PROTECTION not available 2.0.0 and later)

你可以使用ALTER TABLE DROP PARTITION來drop一個表中的一個分區(qū)。浙江刪除分區(qū)的元數(shù)據(jù)信息和數(shù)據(jù)。如果Trash設(shè)置了的話,數(shù)據(jù)實(shí)際上是被移動到.Trash/Current目錄中。除非指定了PURGE,否則表的metadata將被完完整整的丟失。

如果PURGE指定了,刪除了的分區(qū)信息將不會進(jìn)入.Trash/Current目錄,因此不能恢復(fù)錯誤Drop操作的刪除的數(shù)據(jù)。

ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec PURGE; -- (Note: Hive 1.2.0 and later)

在TBLPROPERTIES中同樣可以設(shè)置purge選項(xiàng),它的值是’ auto.purge’.
在Hive 0.7.0及其后續(xù)版本,如果分區(qū)不存在,刪除的時候?qū)祷豦rror,除非IF EXISTS指定了或者在配置變量里面加上” hive.exec.drop.ignorenonexistent ”,并設(shè)置值為true。

例如:

ALTER TABLE page_view DROP PARTITION (dt='2008-08-08', country='us');

4.1.6.7(Un)Archive Partition

ALTER TABLE table_name ARCHIVE PARTITION partition_spec; ALTER TABLE table_name UNARCHIVE PARTITION partition_spec;

Archiving 是移動一個分區(qū)文件到hadoop Archive(HAR)的過程。注意只有文件數(shù)量將會被減少;HAR不提供任何的壓縮。關(guān)于Archiving的相關(guān)信息可以查看:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Archiving

4.1.7Alter Either Table or Partition

4.1.7.1Alter Table/Partition File Format

ALTER TABLE table_name [PARTITION partition_spec] SET FILEFORMAT file_format;

改語句改變表或分區(qū)的文件格式, file_format的可選值有:TEXTFILE,SEQUENCEFILE,ORC,PARQUET,AVRO,RCFILE,JSONFILE等。這個操作只會改變表的元數(shù)據(jù)數(shù)據(jù)。任何現(xiàn)有數(shù)據(jù)的改變都必須在表外進(jìn)行改變。

4.1.7.2Alter Table/Partition Location

ALTER TABLE table_name [PARTITION partition_spec] SET LOCATION "new location";

4.1.8 Alter Column

在Hive 0.12.0及其以前版本,列名只能包含字母和下劃線。
在Hive 0.13.0及其以后版本,默認(rèn)情況下,列名可以使用反引號 () 來引用,并且可以包含任何Unicode的字符串。但是點(diǎn)(.) 和冒號 (:) 在查詢的時候產(chǎn)生錯誤。在 () 里面,除了 (``) 表示一個引號之外,其它的字母都是其原本本的含義。
反引號允許對列名和表名使用保留關(guān)鍵字。

4.1.8.1Change Column Name/Type/Position/Comment

改變列名/類型/Position/注釋的語法如下:

ALTER TABLE table_name [PARTITION partition_spec] CHANGE [COLUMN] col_old_name col_new_name column_type[COMMENT col_comment] [FIRST|AFTER column_name] [CASCADE|RESTRICT];

上面的命令允許你改變列名,數(shù)據(jù)類型,注釋,或者position,再或者他們之間任意的組合,PARTITION子句在Hive0.14.0之后可用的。CASCADE|RESTRICT子句在Hive 1.1.0開始被允許。帶有CASCADE的ALTER TABLE CHANGE COLUMN改變表的元數(shù)據(jù)中的列,同樣改變所有的分區(qū)元數(shù)據(jù)。RESTRICT是默認(rèn)值,只改變表的元數(shù)據(jù)。
注意:ALTER TABLE CHANGE COLUMN CASCADE子句將重寫表分區(qū)列的元數(shù)據(jù),而不管表或分區(qū)的保護(hù)模式,請謹(jǐn)慎使用。

列的改變只會改變Hive的元數(shù)據(jù),不會改變數(shù)據(jù)。

案例:

CREATE TABLE test_change (a int, b int, c int);// 將列名 a 的名字改成 a1. ALTER TABLE test_change CHANGE a a1 INT;

//將a1列改成a2,將數(shù)據(jù)的類型改成string的, 并將它放到b列的后面. ALTER TABLE test_change CHANGE a1 a2 STRING AFTER b;

//為列a1添加注釋 ALTER TABLE test_change CHANGE a2 a2 STRING COMMENT 'this is column a2';

4.1.8.2 Add/Replace列

ALTER TABLE table_name [PARTITION partition_spec] -- (注意: Hive 0.14.0 及其以后版本支持)ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)[CASCADE|RESTRICT] -- (注意: Hive 1.1.0 及其以后版本支持)ADD COLUMNS 的時候,新列將在已經(jīng)存在的列的后面,但是在分區(qū)列的前面。 REPLACE COLUMNS的作用是,刪除已經(jīng)存在的列,添加新的列。REPLACE COLUMNS也可以用于刪除列,例如:” ALTER TABLE test_change REPLACE COLUMNS (b int,a2 string);” 將刪除test_change表中的c列。


4.1.9 Create/Drop/Alter View

4.1.9.1 Create View

創(chuàng)建視圖的語法如下:

CREATE VIEW [IF NOT EXISTS] [db_name.]view_name [(column_name [COMMENT column_comment], ...) ][COMMENT view_comment][TBLPROPERTIES (property_name = property_value, ...)]AS SELECT ...;

注意:視圖只能被讀,不能使用LOAD/INSERT/ALTER。

案例:

CREATE VIEW onion_referrers(url COMMENT 'URL of Referring page')COMMENT 'Referrers to The Onion website'ASSELECT DISTINCT referrer_urlFROM page_viewWHERE page_url='http://www.theonion.com';


4.1.9.2 Drop View

語法:

DROP VIEW [IF EXISTS] [db_name.]view_name;

案例:

DROP VIEW onion_referrers;

4.1.9.3 Alter View的屬性

ALTER VIEW [db_name.]view_name SET TBLPROPERTIES table_properties;table_properties:: (property_name = property_value, property_name = property_value, ...) 例如: ALTER VIEW onion_referrers SET TBLPROPERTIES ('userName' = 'zhangsan');

4.1.9.4 Alter View As Select

ALTER VIEW [db_name.]view_name AS select_statement;

例子:

hive> ALTER VIEW onion_referrers AS select referrer_url,ip from page_view; OK Time taken: 0.188 seconds hive> show create table onion_referrers; OK CREATE VIEW `onion_referrers` AS select `page_view`.`referrer_url`,`page_view`.`ip` from `demo_db`.`page_view` Time taken: 0.076 seconds, Fetched: 1 row(s) hive> desc onion_referrers; OK referrer_url string ip string Time taken: 0.104 seconds, Fetched: 2 row(s) hive>

4.1.10 Create/Drop/Alter Index

關(guān)于Hive Indexes的文檔,可以參考:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Indexing
Index的設(shè)計文檔:https://cwiki.apache.org/confluence/display/Hive/IndexDev

4.1.10.1Create Index

索引是標(biāo)準(zhǔn)的數(shù)據(jù)庫技術(shù),hive 0.7版本之后支持索引。hive索引采用的不是’one size fites all’的索引實(shí)現(xiàn)方式,而是提供插入式接口,并且提供一個具體的索引實(shí)現(xiàn)作為參考。

hive索引具有以下特點(diǎn):
1.索引key冗余存儲,提供基于key的數(shù)據(jù)視圖
2.存儲設(shè)計以優(yōu)化查詢&檢索性能
3.對于某些查詢減少IO,從而提高性能。

CREATE INDEX index_nameON TABLE base_table_name (col_name, ...)AS index_type[WITH DEFERRED REBUILD][IDXPROPERTIES (property_name=property_value, ...)][IN TABLE index_table_name][[ ROW FORMAT ...] STORED AS ...| STORED BY ...][LOCATION hdfs_path][TBLPROPERTIES (...)][COMMENT "index comment"];

注意:
1.index的partition默認(rèn)和數(shù)據(jù)表一致
2.視圖上不能創(chuàng)建index
3.index可以通過stored as配置存儲格式。

4.1.10.2 Drop Index

語法:

DROP INDEX [IF EXISTS] index_name ON table_name;

4.1.10.3Alter Index

ALTER INDEX index_name ON table_name [PARTITION partition_spec] REBUILD;

4.1.11Show

Show可做的操作有
?Show Databases
?Show Tables/Views/Partitions/Indexes
?Show Tables
?Show Views
?Show Partitions
?Show Table/Partition Extended
?Show Table Properties
?Show Create Table
?Show Indexes
?Show Columns
?Show Functions
?Show Granted Roles and Privileges
?Show Locks
?Show Conf
?Show Transactions
?Show Compactions

4.1.11.1Show Databases

語法:

SHOW (DATABASES|SCHEMAS) [LIKE 'identifier_with_wildcards'];

其中l(wèi)ike用于過濾,例如:

hive> show databases; OK default demo_db shopping Time taken: 0.016 seconds, Fetched: 3 row(s) hive> show databases like "demo*|shop*g"; OK demo_db shopping Time taken: 0.013 seconds, Fetched: 2 row(s) hive>

4.1.11.2 Show tables

語法:

SHOW TABLES [IN database_name] ['identifier_with_wildcards'];

案例:

hive> use demo_db; OK Time taken: 0.028 seconds hive> select current_database(); OK demo_db Time taken: 0.273 seconds, Fetched: 1 row(s) hive> show tables; OK fk onion_referrers page_view pk test_change test_serializer Time taken: 0.085 seconds, Fetched: 6 row(s) hive> show tables in shopping; OK Time taken: 0.066 seconds hive> show tables in demo_db like '*test*'; OK test_change test_serializer Time taken: 0.06 seconds, Fetched: 2 row(s) hive>

4.1.11.3 Show views

語法:

SHOW VIEWS [IN/FROM database_name] [LIKE 'pattern_with_wildcards'];

案例:

SHOW VIEWS; -- 顯示當(dāng)前database下的所有的view SHOW VIEWS 'test_*'; -- 顯示所有的以"test_"開頭的view SHOW VIEWS '*view2'; -- 顯示所有以"view2"結(jié)尾的view SHOW VIEWS LIKE 'test_view1|test_view2'; -- 顯示"test_view1" 或 "test_view2"視圖 SHOW VIEWS FROM test1; -- 從database test1中查找視圖 SHOW VIEWS IN test1; -- 從database test1中查找視圖 SHOW VIEWS IN test1 "test_*"; -- 顯示所有在database test2 中以 "test_"開頭的視圖

4.1.11.4 Show Partitions

語法:

SHOW PARTITIONS table_name;

案例:

SHOW PARTITIONS table_name PARTITION(ds='2010-03-03'); -- (Note: Hive 0.6 and later) SHOW PARTITIONS table_name PARTITION(hr='12'); -- (Note: Hive 0.6 and later) SHOW PARTITIONS table_name PARTITION(ds='2010-03-03', hr='12'); -- (Note: Hive 0.6 and later)

4.1.11.5 Show Table/Partition Extended

語法案例:

SHOW TABLE EXTENDED [IN|FROM database_name] LIKE 'identifier_with_wildcards' [PARTITION(partition_spec)];

案例:

hive> show table extended like 'test*'> ; OK tableName:test_change owner:root location:hdfs://hadoop1:9000/hive/demo/demo_db/test_change inputformat:org.apache.hadoop.mapred.TextInputFormat outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat columns:struct columns { i32 b, string a2} partitioned:false partitionColumns: totalNumberFiles:0 totalFileSize:0 maxFileSize:0 minFileSize:0 lastAccessTime:0 lastUpdateTime:1559095998866tableName:test_serializer owner:root location:hdfs://hadoop1:9000/hive/demo/demo_db/test_serializer inputformat:org.apache.hadoop.mapred.TextInputFormat outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat columns:struct columns { string string1, i32 int1, byte tinyint1, i16 smallint1, i64 bigint1, bool boolean1, float float1, double double1, list<string> list1, map<string,i32> map1, struct<sint:i32,sboolean:bool,sstring:string> struct1, uniontype<float,bool,string> union1, string enum1, i32 nullableint, binary bytes1, binary fixed1} partitioned:false partitionColumns: totalNumberFiles:0 totalFileSize:0 maxFileSize:0 minFileSize:0 lastAccessTime:0 lastUpdateTime:1559003554642Time taken: 0.063 seconds, Fetched: 30 row(s) hive>

4.1.11.6 Show Table Properties

語法:

SHOW TBLPROPERTIES tblname; SHOW TBLPROPERTIES tblname("foo");

案例:

hive> show tblproperties test_change; OK COLUMN_STATS_ACCURATE {"BASIC_STATS":"true"} last_modified_by root last_modified_time 1559097354 numFiles 0 numRows 0 rawDataSize 0 totalSize 0 transient_lastDdlTime 1559097354 Time taken: 0.058 seconds, Fetched: 8 row(s) hive>

4.1.11.7 Show Create Table

SHOW CREATE TABLE ([db_name.]table_name|view_name);

案例:

4.1.11.8 Show Columns

語法:

SHOW COLUMNS (FROM|IN) table_name [(FROM|IN) db_name];

案例:

hive> show columns from test_change; OK b a2 Time taken: 0.072 seconds, Fetched: 2 row(s) hive>

4.1.11.9 Show Functions

顯示Function

hive> SHOW FUNCTIONS "a.*"; SHOW FUNCTIONS is deprecated, please use SHOW FUNCTIONS LIKE instead. OK abs acos add_months aes_decrypt aes_encrypt and array array_contains ascii asin assert_true atan avg Time taken: 0.005 seconds, Fetched: 13 row(s) hive>

4.1.12 Describe

4.1.12.1Describe Database

語法:

DESCRIBE DATABASE [EXTENDED] db_name; DESCRIBE SCHEMA [EXTENDED] db_name; -- (Note: Hive 1.1.0 and later)

4.1.12.2Describe Table/View/Column

DESCRIBE [EXTENDED | FORMATTED][db_name.]table_name [PARTITION partition_spec] [col_name ( [.field_name] | [.'$elem$'] | [.'$key$'] | [.'$value$'] )* ];

4.1.12.3 Describe Partition

hive> show partitions part_table; OK d=abchive> DESCRIBE extended part_table partition (d='abc'); OK i int d string # Partition Information # col_name data_type comment d string Detailed Partition Information Partition(values:[abc], dbName:default, tableName:part_table, createTime:1459382234, lastAccessTime:0, sd:StorageDescriptor(cols:[FieldSchema(name:i, type:int, comment:null), FieldSchema(name:d, type:string, comment:null)], location:file:/tmp/warehouse/part_table/d=abc, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], skewedColValueLocationMaps:{}), storedAsSubDirectories:false), parameters:{numFiles=1, COLUMN_STATS_ACCURATE=true, transient_lastDdlTime=1459382234, numRows=1, totalSize=2, rawDataSize=1}) Time taken: 0.325 seconds, Fetched: 9 row(s)hive> DESCRIBE formatted part_table partition (d='abc'); OK # col_name data_type comment i int # Partition Information # col_name data_type comment d string # Detailed Partition Information Partition Value: [abc] Database: default Table: part_table CreateTime: Wed Mar 30 16:57:14 PDT 2016 LastAccessTime: UNKNOWN Protect Mode: None Location: file:/tmp/warehouse/part_table/d=abc Partition Parameters: COLUMN_STATS_ACCURATE true numFiles 1 numRows 1 rawDataSize 1 totalSize 2 transient_lastDdlTime 1459382234 # Storage Information SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe InputFormat: org.apache.hadoop.mapred.TextInputFormat OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat Compressed: No Num Buckets: -1 Bucket Columns: [] Sort Columns: [] Storage Desc Params: serialization.format 1 Time taken: 0.334 seconds, Fetched: 35 row(s)

打個賞唄,您的支持是我堅持寫好博文的動力

總結(jié)

以上是生活随笔為你收集整理的4、Hive数据操作,DDL操作,CRUD database,CRUD table,partition,view,index,show命令等的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

99视频这里只有 | 99热精品国产一区二区在线观看 | 免费碰碰 | 久久久久久久久久久福利 | 国产免费视频一区二区裸体 | 免费看亚洲毛片 | 久久久久久久久久伊人 | 91av电影在线观看 | 国产视频在线免费观看 | 在线观看 国产 | 国产成人61精品免费看片 | 中文字幕人成一区 | 久久精品伊人 | 久久综合九色欧美综合狠狠 | 日日干天天射 | 五月色婷 | 日日日视频 | 国产精品理论在线观看 | 亚洲经典精品 | 奇米影视8888在线观看大全免费 | 在线视频日韩一区 | 国际精品久久久 | 欧美激情在线网站 | 在线视频观看国产 | 黄网站a | 国产视频手机在线 | 91桃花视频 | 亚洲黄a| 国产99精品| 国产黄色片免费看 | 国产精品毛片一区二区三区 | 色视频在线看 | 国产美女视频免费观看的网站 | 久久国内精品视频 | 欧美激情精品久久久久久变态 | 免费看污的网站 | 久久免费毛片视频 | 免费在线黄色av | 婷婷色网 | 97在线精品视频 | 五月天婷亚洲天综合网精品偷 | 天天色草| 黄色在线观看免费网站 | 日日夜夜中文字幕 | 91精品一区二区三区久久久久久 | 337p日本大胆噜噜噜噜 | 激情五月在线视频 | 91一区啪爱嗯打偷拍欧美 | 伊人av综合 | 国产91国语对白在线 | av在线h | 91大神精品视频在线观看 | 激情五月在线观看 | 91亚色视频在线观看 | 午夜在线国产 | 日韩乱码在线 | 99超碰在线观看 | 免费人做人爱www的视 | 天天色天天干天天 | 天天干天天搞天天射 | 福利一区视频 | 欧美视频一区二 | 91精品一区二区三区久久久久久 | 国产精品永久在线 | 国产精品九九久久99视频 | 女人高潮一级片 | 九九九视频精品 | 免费av网址在线观看 | 成人xxxx | 亚洲天堂网在线视频 | www.夜夜草 | 久久激情五月激情 | 69久久夜色精品国产69 | 色婷婷五 | 伊人午夜 | 国产又粗又猛又黄又爽视频 | 亚洲精品tv久久久久久久久久 | 狠狠撸电影 | 亚洲午夜精品福利 | 欧美二区在线播放 | 亚洲日本在线一区 | 免费一级特黄录像 | 丁香激情五月婷婷 | 你操综合| 91成人在线网站 | 欧美精品视 | 337p西西人体大胆瓣开下部 | 久久视频二区 | 亚洲综合色视频 | 国产精品一区二 | 麻豆一二三精选视频 | 天天操天天操天天操天天操天天操 | 成人av电影免费在线观看 | 国产精品手机在线播放 | 久久艹人人| 色综合久久中文综合久久牛 | 国产黄大片在线观看 | 黄网站色 | 欧美成人区 | av片在线看 | 免费看在线看www777 | 日韩av成人在线观看 | 日韩免费视频一区二区 | 在线观看中文字幕网站 | 国产在线国偷精品产拍免费yy | 国产美女视频免费观看的网站 | 国产成人精品一区二区三区福利 | av经典在线| 欧美美女激情18p | 亚洲国产片 | 免费日韩 精品中文字幕视频在线 | 91成人精品一区在线播放69 | 亚洲黄色在线看 | 日日草夜夜操 | 99视频精品视频高清免费 | 日韩精品国产一区 | 97超碰人人模人人人爽人人爱 | 黄色小网站在线 | 精品99久久| 狠狠躁日日躁狂躁夜夜躁av | 成人久久久电影 | 91少妇精拍在线播放 | 成年一级片 | 国产精品粉嫩 | 午夜91在线 | 欧美日韩精品在线 | 成人久久毛片 | 国产精品1024 | 久久99国产精品二区护士 | 91久久精品一区二区三区 | 日韩激情第一页 | 亚洲老妇xxxxxx | 国产99久久九九精品免费 | 91视频3p| 国产黄色一级片在线 | 亚洲欧美综合精品久久成人 | 日韩久久久久久久 | 国产精品女人久久久 | 国产精品久久久免费看 | 在线看av的网址 | 国产不卡片 | 深夜福利视频在线观看 | 欧美性生活久久 | 国产日本三级 | 国产精品成人av久久 | 国产理论影院 | 黄色大片视频网站 | 国内精品视频在线 | 精品国产免费久久 | 伊人天天综合 | 国产在线播放一区 | 日韩草比| 91精品影视 | 97国产电影 | 亚洲黄色在线观看 | 欧美人交a欧美精品 | 一区二区电影在线观看 | 懂色av一区二区在线播放 | 国产精品一区二区久久久 | 91精品国产综合久久福利 | 手机成人在线 | www蜜桃视频 | 久久久91精品国产一区二区精品 | 国产裸体视频网站 | 国产精品大片在线观看 | 视频 天天草 | 日韩av免费在线电影 | 亚洲理论电影网 | 精品一区二区电影 | 久久精品日产第一区二区三区乱码 | 欧美九九九 | 中文字幕在线观看网址 | 色多视频在线观看 | 中文字幕资源在线观看 | 91亚洲成人 | 99色在线视频 | 亚洲精品国产自产拍在线观看 | 狠狠干网站 | 人人爽人人澡 | 日韩av成人免费看 | 亚洲激情综合 | 欧美伦理一区二区三区 | 日韩精品高清不卡 | 亚洲欧美视频在线播放 | 在线免费看黄色 | 偷拍精偷拍精品欧洲亚洲网站 | 成人午夜电影网站 | 夜夜操网站 | 欧美va在线观看 | 日韩大片在线 | 黄色aaa毛片 | 久久综合婷婷国产二区高清 | 免费看黄视频 | 91在线播| 日韩久久午夜一级啪啪 | www.黄色小说.com | 久久久久国产精品免费网站 | 99热精品国产 | 国产精品手机在线 | 欧美精品中文字幕亚洲专区 | 欧美日韩精品免费观看 | 黄色网在线免费观看 | 日韩欧美网站 | 久久精品国产亚洲aⅴ | 麻豆成人网 | 国内精品免费 | 亚洲乱码精品久久久久 | 国产成人精品一区二区三区福利 | 久久免费视频3 | 九九精品在线观看 | 91视频久久久 | 91看片看淫黄大片 | 超碰在线公开 | 久久天天躁狠狠躁亚洲综合公司 | 2023国产精品自产拍在线观看 | 婷婷五情天综123 | 欧美性生交大片免网 | 91免费高清| 久久综合精品国产一区二区三区 | 久久久国产精品一区二区中文 | 天天射天天爽 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 一本一本久久a久久精品牛牛影视 | 黄网站色| 中文字幕免费国产精品 | 99久久激情 | 欧美精品一区在线 | 免费涩涩网站 | 欧美精品一区二区免费 | 国产婷婷在线观看 | 国产91精品久久久久 | 天天射天天干天天操 | 欧美国产高清 | 一级黄色片在线免费观看 | 久草国产在线 | 日韩三级免费观看 | 波多野结衣亚洲一区二区 | 久久久综合色 | 久久久免费精品国产一区二区 | 欧美视频不卡 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩在线播放欧美字幕 | 99久久一区 | 日本性久久 | 亚洲专区免费观看 | 伊人中文网 | 亚洲综合在线一区二区三区 | 久久草在线精品 | 在线电影av | 波多野结衣一区二区 | 色91在线 | 人人插人人玩 | 久久99视频免费观看 | 亚洲国产合集 | 欧美成人xxxxx | 在线网址你懂得 | 日韩精品一区二区三区免费视频观看 | 免费网站黄 | 91精品国产入口 | 国产网站在线免费观看 | 99超碰在线播放 | 伊人激情综合 | 国产精品久久久久久吹潮天美传媒 | 色99色| 91香蕉视频色版 | 亚洲视频免费在线看 | 在线黄色国产电影 | 亚洲精品综合久久 | 高清久久久久久 | 97久久精品午夜一区二区 | 在线看v片成人 | 伊人色播 | 国产手机在线观看视频 | av在线超碰 | 中字幕视频在线永久在线观看免费 | 中文字幕高清免费日韩视频在线 | 免费在线观看亚洲视频 | 国产午夜精品久久久久久久久久 | 丁香九月激情综合 | 免费高清在线视频一区· | 国产一区二区三区视频在线 | 国产精品久久久久9999 | 99热国产在线中文 | 日韩精品视频久久 | 欧美日韩视频在线观看免费 | 久久国产露脸精品国产 | 久久久网址| 国产在线久草 | 国产一级二级在线观看 | 成人黄色视 | 99久久精品国产一区二区成人 | 最近中文字幕高清字幕在线视频 | 精品国产观看 | 亚洲综合视频在线 | 久久久www成人免费毛片麻豆 | 香蕉视频免费看 | 日韩v在线91成人自拍 | 在线综合 亚洲 欧美在线视频 | 欧美色婷| 国产精品久久久久久久久毛片 | 亚洲欧洲国产日韩精品 | 久草免费在线观看 | 日韩免费一级a毛片在线播放一级 | www九九热| 欧美日韩电影在线播放 | 99久久激情 | 精品国产免费人成在线观看 | 日韩在线小视频 | 日韩一三区 | 国产精品久久一区二区无卡 | 日韩中文字幕免费看 | 久久久久久久99 | 亚洲精品国产片 | 日韩系列在线观看 | 欧美日本不卡高清 | 特级西西444www大胆高清无视频 | 免费在线观看国产黄 | 国产精品99精品久久免费 | 一区二区三区四区在线 | 欧美激情视频一区 | 国产精品婷婷午夜在线观看 | 免费午夜av | 婷婷丁香国产 | 在线看岛国av | 久久综合九色综合97_ 久久久 | 色欧美日韩 | 少妇视频在线播放 | 欧美日韩免费在线观看视频 | 久久五月情影视 | 国产成人精品三级 | av大全在线观看 | 天天摸天天弄 | 欧美日韩电影在线播放 | 中文字幕一区二区三区久久 | 夜夜操天天操 | 天天草夜夜 | 狠狠干在线播放 | 91视频麻豆视频 | 成人丝袜| 欧美一级日韩三级 | 天天操天天草 | 免费成人在线观看 | 在线看一区| 人人揉人人揉人人揉人人揉97 | www五月 | 黄色片免费在线 | 欧美精品乱码久久久久 | 日本不卡一区二区三区在线观看 | 国内精品久久久久久久久久 | 亚洲第一中文字幕 | 91黄色在线观看 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 成人资源在线播放 | 国产精品久久久久久久久岛 | 人人爽人人舔 | 成年人免费看的视频 | 四虎影院在线观看av | 国产一级免费在线 | 久久久久久久久久久精 | 精品视频成人 | 午夜av免费在线观看 | 欧美激情在线网站 | 天天曰天天| 久久久久观看 | 国产乱对白刺激视频不卡 | 亚洲精品久久激情国产片 | 2021av在线 | 国产精品日韩高清 | 国产亚洲成av片在线观看 | 黄色成人小视频 | 狠狠干成人综合网 | 日本天天色 | 欧美一二区视频 | 国产一二区视频 | 亚洲精品视频在线看 | 美女黄频在线观看 | 亚洲精品久久在线 | 婷婷久久精品 | 亚洲视频 视频在线 | 精品亚洲免费视频 | 国产一区在线精品 | 国产黄av| 狠狠狠色丁香婷婷综合久久88 | 狠狠色丁香婷婷综合欧美 | 色a网 | 国产亚洲成人网 | 日韩久久久久久久久 | 午夜精品一区二区三区视频免费看 | 99av在线视频 | 香蕉在线观看视频 | 96国产精品视频 | 成人久久18免费网站 | 黄色av网站在线免费观看 | 视频在线日韩 | 黄色看片| 热99久久精品 | 亚洲精品在线观看的 | 人成免费网站 | 最新中文字幕视频 | 天天综合婷婷 | 天天干,天天射,天天操,天天摸 | 天天射天 | 99资源网 | 日韩免费电影一区二区三区 | 国产精品一区二区久久精品 | 丁香高清视频在线看看 | 2019中文字幕第一页 | 91| 天天曰视频 | 欧美国产日韩激情 | 深夜免费福利 | 亚洲 成人 一区 | 成人午夜影院 | 久操久 | 91黄色视屏 | 国产成人精品一区二区三区在线 | 久久国产美女视频 | 综合五月婷婷 | 国产在线看一区 | av看片在线观看 | 欧美一级性 | 亚洲综合导航 | 日韩高清网站 | 日韩免费在线观看网站 | 色五婷婷| 88av网站| 日韩欧三级 | 欧美一级黄色网 | 日韩一区正在播放 | 中文字幕电影在线 | 国产中文字幕在线播放 | 五月天综合在线 | 91成人免费 | 99久久精品国产观看 | 久久精品免费 | 日日夜夜精品免费 | 91成人网页版| 免费看日韩 | 中文在线字幕免费观看 | 韩国av一区二区三区 | 九九爱免费视频 | 97超碰人人爱 | 久久久久久久久亚洲精品 | 亚洲成人资源在线观看 | 久久久久久美女 | 亚洲精品五月 | 九九九热精品 | 国产成人一级电影 | av东方在线 | 亚洲午夜精品久久久久久久久 | 久久国内免费视频 | 在线免费观看的av | 久在线观看 | 91精品伦理 | 中文字幕av一区二区三区四区 | 天天射天天爱天天干 | 国产精品免费久久久久 | 玖玖在线资源 | 日韩草比 | 日本中文一区二区 | 91av在| 中文字幕在线观看网址 | 麻豆va一区二区三区久久浪 | 久久国产精品系列 | 久久天天躁夜夜躁狠狠85麻豆 | 亚洲欧洲日韩在线观看 | 91视频高清完整版 | 最新超碰| 天天射日 | 麻豆播放| 米奇影视7777 | 国产精品一区二区三区免费看 | www·22com天天操| 一 级 黄 色 片免费看的 | 国产日产精品一区二区三区四区的观看方式 | av电影中文字幕 | 少妇bbb好爽| 国产在线a不卡 | 亚洲精品小视频在线观看 | 不卡电影一区二区三区 | 国产精品久久久久av福利动漫 | 亚洲成人第一区 | 久久美女高清视频 | 在线播放 日韩专区 | 91.dizhi永久地址最新 | 人人爱爱人人 | 91精品黄色 | 美女视频黄是免费的 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 国产永久免费观看 | 久久精品一级片 | 最新日韩视频在线观看 | 亚洲首页 | 91豆麻精品91久久久久久 | 免费电影播放 | 亚洲清纯国产 | 久久久久成人精品 | 久久在线一区 | 天天躁日日躁狠狠躁 | 久草网视频 | 国产91小视频 | 成人三级黄色 | 福利电影一区二区 | av在线一级 | 亚洲在线网址 | 丁香激情视频 | 这里只有精品视频在线 | 亚洲综合狠狠干 | 午夜私人影院 | 99热国内精品 | 狠狠色丁香久久婷婷综 | 亚洲成人免费在线观看 | 91av资源网| 亚洲人毛片 | 亚洲欧美久久 | 在线视频婷婷 | 91亚洲精品乱码久久久久久蜜桃 | 天天干天天射天天插 | 五月情婷婷 | a级片韩国| 国产不卡一 | 久久99久久99精品免视看婷婷 | 久久久九色精品国产一区二区三区 | 中文字幕在线观看视频一区二区三区 | 国产成人av电影在线 | 永久免费毛片在线观看 | 中文字幕制服丝袜av久久 | 久久久久久久综合色一本 | 国产亚洲免费的视频看 | 久久av在线播放 | 97网| 亚洲成aⅴ人片久久青草影院 | ,午夜性刺激免费看视频 | 日韩高清一区在线 | 97视频免费 | 国产视频精品免费 | 91在线视频免费 | 9999亚洲| 精品一区二区视频 | 国产精品 国内视频 | 99精品视频免费在线观看 | 国产999精品久久久久久 | 激情婷婷欧美 | 伊人影院得得 | 天天激情天天干 | 西西4444www大胆艺术 | 成人性生交大片免费观看网站 | 一区在线免费观看 | 日本在线观看中文字幕无线观看 | 日韩网站在线 | 成人毛片在线视频 | 麻豆果冻剧传媒在线播放 | 国产在线精 | 国产精品成人一区二区 | 91九色蝌蚪视频在线 | 欧美日韩二三区 | 国产免费资源 | 国产主播99| 亚洲一区动漫 | 成人精品999| 四川bbb搡bbb爽爽视频 | 六月色婷婷 | 亚洲精品国产精品国自产在线 | 99视频在线精品免费观看2 | 久久视频在线观看免费 | 日日夜夜天天综合 | 九七视频在线观看 | 色吊丝在线永久观看最新版本 | 久草热视频| 久久女教师 | 亚洲精品在线免费 | 三级av免费观看 | 久久久www| 国产又粗又硬又爽视频 | 久久伊人色综合 | 人人草人| 日韩大片在线 | 久影院| 91在线国产观看 | 亚洲婷婷在线视频 | 日韩av在线不卡 | 夜色资源站国产www在线视频 | 五月婷婷久草 | caobi视频| 久久综合狠狠综合 | 亚洲精品网址在线观看 | 久久手机免费观看 | 亚洲欧美视频 | 亚洲国产精品传媒在线观看 | 国产精品久久精品国产 | 久久草在线视频国产 | 久久久久久久久久久久久9999 | 久久久久久激情 | 久久综合久色欧美综合狠狠 | 亚洲精品美女免费 | 免费视频久久久久久久 | 一级性视频 | 日韩精品欧美精品 | 亚洲美女精品区人人人人 | 日韩精品偷拍 | 国产精品粉嫩 | 狠狠操在线 | 91免费在线播放 | 精品一区二区三区电影 | 久久国产色 | 久久国产精品99久久久久久丝袜 | 91视频首页 | 黄色免费网 | 亚洲精品在线免费 | 成年人免费在线播放 | 成年人在线观看视频免费 | 美女久久久久久久久久久 | 五月综合激情婷婷 | 欧美一级片免费在线观看 | 久久久av电影 | 国产精品麻豆免费版 | 国产色区 | 婷婷丁香在线 | 亚洲一区天堂 | 色91在线 | 亚洲国产精久久久久久久 | 天天曰天天 | 久久99精品国产99久久 | 国产第一福利 | 久久免费精品 | www.五月激情.com | 日本最新高清不卡中文字幕 | 国产视频亚洲 | 伊人五月天综合 | 91黄色视屏 | 亚洲成人蜜桃 | 久久久久国产精品午夜一区 | 在线观看中文字幕第一页 | 丁香影院在线 | 国内精品久久天天躁人人爽 | 日日夜夜天天久久 | 亚洲综合在线观看视频 | 人人插人人| 欧美一级视频免费看 | 国产人在线成免费视频 | 欧美性生活免费看 | 日韩国产欧美在线视频 | 最近中文字幕视频完整版 | 四虎小视频 | 国产日韩欧美视频在线观看 | 激情电影影院 | 成人永久在线 | 色婷婷狠 | 日韩中午字幕 | 91精品在线免费视频 | 片网址| 91麻豆操| 国精产品永久999 | 色婷婷在线播放 | 亚洲丁香久久久 | 日韩免费观看一区二区三区 | 日韩二区三区在线 | 18av在线视频| 欧美a级在线免费观看 | 手机在线观看国产精品 | 超碰人人草 | 97人人澡人人添人人爽超碰 | 亚洲视频在线免费看 | 在线免费观看视频a | 成年美女黄网站色大片免费看 | 久久,天天综合 | 亚洲视频精选 | 国产免费一区二区三区最新 | 99精品国产99久久久久久福利 | 欧美一级专区免费大片 | 天天夜夜亚洲 | 国产特级毛片aaaaaa高清 | 91一区啪爱嗯打偷拍欧美 | av直接看| 91麻豆免费看 | 国产精品自在线拍国产 | 天天干夜夜夜操天 | 又黄又刺激 | 欧美老少交 | 99福利片 | 999视频在线观看 | 欧美大片在线观看一区 | www久久九| 久久久久99999 | 在线不卡中文字幕播放 | 国产精品99久久久久久武松影视 | 免费能看的黄色片 | 日韩综合精品 | 三级av中文字幕 | 国产高清在线免费视频 | 日韩高清免费电影 | 公与妇乱理三级xxx 在线观看视频在线观看 | 中文字幕在线看 | 久久久亚洲国产精品麻豆综合天堂 | 91av视频播放 | 久久精品影片 | 国产亚洲精品久久网站 | 99成人精品 | 国产最新视频在线观看 | 亚洲精品在线免费看 | 九九在线国产视频 | 日韩精品视频在线观看网址 | 日韩国产精品久久久久久亚洲 | 黄在线免费观看 | 91视频观看免费 | 中文字幕亚洲欧美日韩2019 | 91成年人网站 | 91免费黄视频 | 久久综合九色欧美综合狠狠 | av在线网站免费观看 | 视频在线观看亚洲 | 在线播放国产精品 | 国产精品自产拍在线观看中文 | 99精品在线直播 | 99视频在线播放 | 97人人澡人人添人人爽超碰 | 91久久在线观看 | 亚洲日韩中文字幕 | 精品视频在线免费观看 | 天天综合亚洲 | 亚洲激情六月 | 欧美日韩在线网站 | www操操| 人人艹视频 | 依人成人综合网 | 国产成人精品一区在线 | 国产成人久久精品77777综合 | 国产精品999久久久 久产久精国产品 | 久久一区二区三区国产精品 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 日韩欧三级 | 手机看片国产日韩 | 国产精品专区h在线观看 | 丁香婷婷激情国产高清秒播 | 免费在线观看日韩 | 狠狠色丁香婷婷综合欧美 | av免费看电影| 欧美成人精品欧美一级乱黄 | 国产乱对白刺激视频在线观看女王 | av爱干| 国产亚洲aⅴaaaaaa毛片 | 中文国产在线观看 | 蜜桃av人人夜夜澡人人爽 | 日韩区欠美精品av视频 | 深爱激情五月婷婷 | 国产午夜视频在线观看 | 国产美女无遮挡永久免费 | 黄色大片视频网站 | 麻豆视频免费在线观看 | 欧美亚洲免费在线一区 | 国产美女精品视频免费观看 | 天天综合婷婷 | 成人一级影视 | 日韩最新中文字幕 | 色偷偷97| 91av99| 色婷婷中文 | 在线观看中文字幕视频 | 在线观看av中文字幕 | 中文字幕精品一区二区精品 | 亚洲精品久久久久中文字幕二区 | 国产精品永久免费 | 五月天婷婷在线视频 | 九九久久成人 | 99精品欧美一区二区蜜桃免费 | 婷色在线 | 精品国产大片 | 欧美激情视频一区二区三区免费 | 久久久精品欧美 | 国产日产精品久久久久快鸭 | 成人av影视在线 | 天天草天天摸 | 国产成人精品一区二区三区免费 | 亚洲精品欧美成人 | 狠狠网亚洲精品 | 久久精品这里精品 | 天天综合网入口 | 天天射狠狠干 | 美女免费黄视频网站 | 国产一级电影 | 色偷偷av男人天堂 | 欧美日韩精 | 综合在线色 | 美女网站视频色 | 久久精品视频中文字幕 | 精品自拍av | 精品一二三四在线 | 夜色在线资源 | 综合网久久 | 精久久久久 | 四虎成人网 | 日日精品 | 久久综合色综合88 | 国内精品视频在线 | 夜夜干天天操 | 国产1区2区3区精品美女 | 伊人看片 | 欧美一级片在线观看视频 | 成年人免费看的视频 | 国产资源 | 日韩午夜在线观看 | 波多野结衣日韩 | 国产视频色 | 美女黄频在线观看 | 欧美视频国产视频 | 欧美激情视频一二区 | 午夜在线看 | 国产麻豆剧果冻传媒视频播放量 | h视频在线看 | 久草视频免费在线播放 | 91精品视频免费看 | 91麻豆操| 日韩国产欧美在线播放 | 人人狠| 国产一级电影在线 | 日本精品视频一区二区 | 午夜视频一区二区三区 | 中文字幕二区在线观看 | 久久久久久久久久久福利 | 日韩中午字幕 | 国产黄色精品 | 精品久久久久久国产91 | 黄色精品免费 | 免费精品在线 | 国产黄av | 国产精品久久久久久a | 一级特黄aaa大片在线观看 | 欧美午夜理伦三级在线观看 | 91中文视频 | av网站大全免费 | 狠狠色丁香久久婷婷综合_中 | 在线视频 影院 | 成人免费视频播放 | 韩日电影在线观看 | 狠狠干中文字幕 | 免费91在线观看 | 很黄很污的视频网站 | 伊人久久精品久久亚洲一区 | 国产成人久久av977小说 | 人人爽夜夜爽 | 区一区二区三在线观看 | 天天操夜夜爱 | 亚洲综合爱 | 欧美日韩精品在线 | 久久久久国产精品一区二区 | 亚洲va欧美va人人爽春色影视 | 亚洲免费不卡 | 奇米网444| 久久精品视频网站 | av天天干| 日韩精品一卡 | 插久久| 国产999 | 色99网| 人人爽人人 | 精品国产精品国产偷麻豆 | 国产精品永久在线观看 | 夜夜躁日日躁狠狠久久av | 色在线中文字幕 | 美女久久一区 | 2019免费中文字幕 | 99久在线精品99re8热视频 | 国产精品久久久久久久久久久免费 | 午夜久久久久久久 | 91精品国自产在线偷拍蜜桃 | 十八岁以下禁止观看的1000个网站 | 外国av网 | 久久久福利视频 | 天堂成人在线 | 综合久久久久 | 黄色91免费观看 | 欧美韩国在线 | 国产69久久久欧美一级 | 色悠悠久久综合 | 免费人成网ww44kk44 | 国产精品久久久久久久久久久久午夜 | 日韩午夜电影 | 四虎影视欧美 | 国产麻豆视频网站 | 911精品美国片911久久久 | www.午夜色.com | 97精品伊人 | 日韩精品一区在线播放 | 婷婷伊人综合亚洲综合网 | 日韩精品久久久久久久电影99爱 | 操操操日日日 | 欧美精品久久久久久久亚洲调教 | 婷婷网站天天婷婷网站 | 亚洲精品456在线播放乱码 | 久久男人免费视频 | 天天射天天操天天干 | 五月丁香 | 亚洲成aⅴ人在线观看 | 香蕉视频在线免费 | 韩国av一区 | 亚洲成av人影院 | 天天天天天天天操 | 最新国产福利 | 国产一区二区三区午夜 | 四虎8848免费高清在线观看 | 久艹在线播放 | 欧美精品网站 | 99精品国产亚洲 | 日韩中文字幕国产精品 | 911精品美国片911久久久 | 激情综合国产 | 欧美精品在线一区二区 | 亚洲va男人天堂 | 日韩va亚洲va欧美va久久 | 色天天久久 | 精品麻豆 | 久草亚洲视频 | 久久久久久久久久久网站 | 中文字幕一区二区三区在线视频 | 久久精品女人毛片国产 | 欧美亚洲三级 | 九九九视频精品 | 香蕉在线观看 | 日韩在线观看a | 天堂中文在线播放 | 久艹在线观看视频 | 玖玖在线观看视频 | 日免费视频| 免费日韩电影 | 一级淫片在线观看 | 天天干天天操天天入 | 天天干,天天射,天天操,天天摸 | 亚洲视频在线观看 | 国产日韩精品在线观看 | 国产精品久久久久永久免费观看 | av资源中文字幕 | 很黄很污的视频网站 | 精品亚洲一区二区 | 久久久国产精品免费 | 成人一区二区三区在线 | 国产精品入口麻豆www | 91免费试看 | 午夜 久久 tv | av高清一区二区三区 | 一区二区三区污 | 黄色大片视频网站 | 国产女v资源在线观看 | 草莓视频在线观看免费观看 | 亚洲第一中文网 | 狠狠的干 | 免费午夜在线视频 | 久久国产香蕉视频 | 国产中文字幕网 | 香蕉精品在线观看 | 久久精品中文字幕 | 日韩视频免费看 | 日韩欧美黄色网址 | 日本中出在线观看 | av大全在线免费观看 | 成人黄色小说网 | 国产伦精品一区二区三区无广告 | 日韩久久网站 | 久久综合久久综合这里只有精品 | 91激情小视频 | 久久桃花网 | 91亚洲在线观看 | 国产一卡久久电影永久 | 97香蕉久久超级碰碰高清版 | 成 人 a v天堂 | 91九色在线视频 | 天天插天天狠 | 欧美精选一区二区三区 | 免费高清av在线看 | 欧美一级日韩三级 | 国产又粗又猛又黄又爽的视频 | 在线免费性生活片 | 九九在线视频 | 国产又黄又硬又爽 | 日韩中文字 | 国产精品欧美 | 色偷偷网站视频 | 青青河边草免费观看完整版高清 | 黄视频色网站 | av日韩av| 91精品视频播放 | 久久69精品 | 黄在线| 欧美日本不卡 | 国产二区精品 | 色播99 | 美女视频是黄的免费观看 | 成人中文字幕+乱码+中文字幕 | 最新的av网站 | 国产精品日韩在线观看 | 97国产情侣爱久久免费观看 | 日韩色综合网 | 男女免费av | 日韩免费区 | 久色免费视频 | 久久久免费播放 | 精品福利视频在线观看 | 久久一区国产 | 91九色国产蝌蚪 |