HQL基本语法说明 本章节介绍HQL基本语法。 创建数据库和表 本小节主要介绍如何使用HQL 创建数据库和表。在 Hive 中创建表主要有两种方式: 1、自定义表结构,同时使用 EXTERNAL 关键字来区分内部表和外部表: 1)内部表:数据的生命周期完全由 Hive 管理时,drop 命令会同时删除元数据和表数据; 2)外部表:当数据需要被多种工具(如 Pig 等)共同处理时,应该使用外部表。删除外部表时,只删除元数据。 2、根据已有表创建新表: 1)CREATE LIKE:该语句可以完全复制原有表的结构,包括存储格式,但不会导入数据; 2)CTAS:根据查询结果创建新表,使用 CREATE AS SELECT 语句可以在复制原表结构的同时指定要复制哪些字段。 Hive 建表基本语法如下: plaintext CREATE [EXTERNAL] TABLE ( [columnconstraintspecification] [COMMENT colcomment], [ ...] ) 表注释 [COMMENT tablecomment] 指定分区键和数据类型 [PARTITIONED BY (colname datatype [COMMENT colcomment], ...)] 指定分桶信息 [CLUSTERED BY (colname, colname, ...) [SORTED BY (colname [ASCDESC], ...)] INTO numbuckets BUCKETS] 指定行信息 [ROW FORMAT ] 指定存储格式 [STORED AS TEXTFILEORCCSVFILE] 指定表的位置 [LOCATION ] 指定表属性 [TBLPROPERTIES (' '' ', ...)] 指定是否从查询中创建表 [AS selectstatement]; fileformat: : SEQUENCEFILE TEXTFILE (Default, depending on 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 inputformatclassname OUTPUTFORMAT outputformatclassname 示例如下: plaintext 内部表示例 CREATE TABLE pageview ( viewTime INT, userid BIGINT, pageurl STRING, referrerurl STRING, ip STRING COMMENT 'IP Address of the User' ) COMMENT 'This is the page view table' PARTITIONED BY (dt STRING, country STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '001' STORED AS SEQUENCEFILE; 外部表示例 CREATE EXTERNAL TABLE pageview ( viewTime INT, userid BIGINT, pageurl STRING, referrerurl 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 TEXTFILE LOCATION ' ';