1

从官网的建表语句切入我的分析:

`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 [column_constraint_specification] [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_name`

`LIKE 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_classname`

`column_constraint_specification:`

`: [ PRIMARY KEY|UNIQUE|NOT NULL|DEFAULT [default_value]|CHECK  [check_expression] ENABLE|DISABLE NOVALIDATE RELY/NORELY ]`

`default_value:`

`: [ LITERAL|CURRENT_USER()|CURRENT_DATE()|CURRENT_TIMESTAMP()|NULL ] `

`constraint_specification:`

`: [, PRIMARY KEY (col_name, ...) DISABLE NOVALIDATE RELY/NORELY ]`

`[, PRIMARY KEY (col_name, ...) DISABLE NOVALIDATE RELY/NORELY ]`

`[, CONSTRAINT constraint_name FOREIGN KEY (col_name, ...) REFERENCES table_name(col_name, ...) DISABLE NOVALIDATE `

`[, CONSTRAINT constraint_name UNIQUE (col_name, ...) DISABLE NOVALIDATE RELY/NORELY ]`

`[, CONSTRAINT constraint_name CHECK [check_expression] ENABLE|DISABLE NOVALIDATE RELY/NORELY ]`

外部表or管理表之分——external

分隔符设定——terminated

ROW FORMAT DELIMITED 分隔符设置开始语句
FIELDS TERMINATED BY:设置字段与字段之间的分隔符
COLLECTION ITEMS TERMINATED BY:设置一个复杂类型(array,struct)字段的各个item之间的分隔符
MAP KEYS TERMINATED BY:设置一个复杂类型(Map)字段的key value之间的分隔符
LINES TERMINATED BY:设置行与行之间的分隔符
例:


一闪一闪
7 声望2 粉丝