HIVE-DDL

DATABASE

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name

  [COMMENT database_comment]

  [LOCATION hdfs_path]   //外部部表默认路径

  [MANAGEDLOCATION hdfs_path] //管理表表默认路劲  4.0.0后出现的配置

  [WITH DBPROPERTIES (property_name=property_value, ...)];


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

//默认是RESTRICT 当database不为空,需要删除时,加上CASCADE

ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...); 

ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role; 


ALTER (DATABASE|SCHEMA) database_name SET LOCATION hdfs_path;

ALTER (DATABASE|SCHEMA) database_name SET MANAGEDLOCATION hdfs_path;

TABLE

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name  //默认管理表

  [(col_name data_type [column_constraint_specification] [COMMENT col_comment], ... [constraint_specification])]

  [COMMENT table_comment]


  [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]

/*

The CLUSTERED BY and SORTED BY creation commands do not affect how data is inserted into a table – only

how it is read. This means that users must be careful to insert data correctly by specifying the number of

reducers to be equal to the number of buckets, and using CLUSTER BY and SORT BY commands in their query.

*/

  [CLUSTERED BY (col_name, col_name, ...)  ////分桶表排序

  [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]////分桶表

  [SKEWED BY (col_name, col_name, ...)               

    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 (...)] 

  ]

  [LOCATION hdfs_path]

  [TBLPROPERTIES (property_name=property_value, ...)] 

  [AS select_statement]; 

//构建类似已有表的结构

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name

  LIKE existing_table_or_view_name

  [LOCATION hdfs_path];

  例子:

  create external table IF NOT EXIT table_name(col_name data_type COMMENT....)

  partition by (col_name data_type)

  ROW FORMAT DELIMITED

  FIELDS TERMINATED BY '\001'

  COLLECTION ITEMS TERMINATED BY '\002'  //数据类型:collection

  MAP KEYS TERMINATED BY '\003'  //数据类型:MAP

  LOCATION hdfs_path

  STORED AS

注意:发现其实桶的概念就是MapReduce的分区的概念,两者完全相同。物理上每个桶就是目录里的一个文件,一个作业产生的桶(输出文件)数量和reduce任务个数相同。

而分区表的概念,则是新的概念。分区代表了数据的仓库,也就是文件夹目录。每个文件夹下面可以放不同的数据文件。通过文件夹可以查询里面存放的文件。但文件夹本身和数据的内容毫无关系。

桶则是按照数据内容的某个值进行分桶,把一个大文件散列称为一个个小文件。

DROP TABLE [IF EXISTS] table_name [PURGE];

TRUNCATE [TABLE] table_name [PARTITION partition_spec]

ALTER TABLE table_name RENAME TO new_table_name

ALTER TABLE table_name SET TBLPROPERTIES table_properties;

table_properties:

  : (property_name = property_value, property_name = property_value, ... )

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' = ',');

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, ...)

  eg.

  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';

ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...]

  [IGNORE PROTECTION] [PURGE];

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

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];

  eg.

  CREATE TABLE test_change (a int, b int, c int);

// First change column a's name to a1.

ALTER TABLE test_change CHANGE a a1 INT;

ALTER TABLE test_change CHANGE a1 a2 STRING AFTER b;

CREATE VIEW [IF NOT EXISTS] [db_name.]view_name [(column_name [COMMENT column_comment], ...) ]

  [COMMENT view_comment]

  [TBLPROPERTIES (property_name = property_value, ...)]

  AS SELECT ...;

  CREATE VIEW onion_referrers(url COMMENT 'URL of Referring page')

  COMMENT 'Referrers to The Onion website'

  AS

  SELECT DISTINCT referrer_url

  FROM page_view

  WHERE page_url='http://www.theonion.com';

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

ALTER VIEW [db_name.]view_name SET TBLPROPERTIES table_properties;

table_properties:

  : (property_name = property_value, property_name = property_value, ...)

  CREATE INDEX index_name

  ON 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"];

  DROP INDEX [IF EXISTS] index_name ON table_name;


ALTER INDEX index_name ON table_name [PARTITION partition_spec] REBUILD;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容