专栏首页巡山猫说数据「基础」SQL-Hive中常用的表格操作(上)

「基础」SQL-Hive中常用的表格操作(上)

今天我们来讲讲Hive中常用的表格操作指令及相关效果。

Hive系列文章预计10-20篇,主要讲数据分析中最基础的SQL技能。每周定期更新,欢迎关注公众号。

01-最基础的建表语句

Hive建表的全部建表语法如下:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 表名
(列名 data_type [COMMENT 列注释], ...)
[COMMENT 表注释]
[PARTITIONED BY (列名 data_type [COMMENT 列注释], ...)]
[CLUSTERED BY (列名, 列名, ...) 
[SORTED ,BY (列名 [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]

所有[ ]中的内容都是可选项,即可有可无,下面我们分别详细介绍。

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 表名 (列名 data_type)

是建表语句必须有的,举个例子,我们要建立一个用户启动表:

CREATE TABLE t_od_use_cnt (
      date_8 INT
      ,platform string
      ,app_version string
      ,user_id BIGINT
      ,use_cnt INT
      ,is_active TINYINT
      );

首先我们建一个库app,然后使用并在其中建表,执行效果如下:

hive> create database app;
OK
Time taken: 0.899 seconds
hive> use app;
OK
Time taken: 0.03 seconds
hive> create table t_od_use_cnt(
    >       date_8 int
    >       ,platform string
    >       ,app_version string
    >       ,user_id bigint
    >       ,use_cnt int
    >       ,is_active tinyint
    >       );
OK
Time taken: 0.389 seconds

备注:Hive中的关键字大小写是不区分的,所有关键字均可使用小写。

02-查看表结构

执行语句:

DESC 表名;

查询上一步新建表的字段及字段对应的数据类型,运行效果如下:

hive> desc t_od_use_cnt;
OK
date_8                int                                   
platform              string                    
app_version           string                              
user_id               bigint                               
use_cnt               int                               
is_active             tinyint                               
Time taken: 0.28 seconds, Fetched: 6 row(s)

03-删除表

删除表的语句和删除库的类似,只是把database换成了table,都是使用drop关键字进行删除操作,慎重操作:

DROP TABLE 表名;

04-建分区表

Hive中有分区表的概念,分区表改变了Hive对数据存储的组织方式。查询时如果我们限定了分区范围,Hive就可以直接去相应的目录下查询数据,而不需要扫描整个表,所以当数据量很大时可以显著提高查询性能。

建立分区表要使用关键字[PARTITIONED BY (col_name data_type[COMMENT col_comment], ...)] ,注意分区的字段不可在普通字段中重复出现。分区表在工作中十分常见,一般来说公司所有的表都会以日期进行分区,以便提高查询效率。

我们还是以t_od_use_cnt为例,建表语句如下:

CREATE TABLE t_od_use_cnt (
      platform string comment '平台 android,ios'
      ,app_version string comment 'app版本'
      ,user_id BIGINT comment '用户id'
      ,use_cnt INT comment '当日使用次数'
      ,is_active TINYINT comment '是否活跃'
      ) partitioned BY (date_8 INT comment '日期');

05-查询既有建表语句

在公司中需要查询既有表的建表格式时使用以下语句即可:

show create table tablename;

查询上文已建表格效果如下:

hive> show create table t_od_use_cnt;
OK
CREATE TABLE `t_od_use_cnt`(
  `platform` string COMMENT '平台 android,ios', 
  `app_version` string COMMENT 'app版本,', 
  `user_id` bigint COMMENT '用户id', 
  `use_cnt` int COMMENT '当日使用次数', 
  `is_active` tinyint COMMENT '是否活跃')
PARTITIONED BY ( 
  `date_8` int COMMENT '日期')
ROW FORMAT DELIMITED 
  FIELDS TERMINATED BY ',' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  'hdfs://hadoop:9000/usr/hive/warehouse/t_od_use_cnt'
TBLPROPERTIES (
  'transient_lastDdlTime'='1556161316')

以上,就是本期内容。

本文分享自微信公众号 - 巡山猫说数据(sven994777),作者:巡山猫

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 「基础」SQL-Hive中常用的表格操作(下)

    下面我们将建好的表t_od_use_cnt重命名为t_od_use_cnt_new,然后再改回来。

    巡山猫说数据
  • 「基础」SQL-Hive中常用的数据库操作

    如果想删除数据库,要么先将数据库中的表全部删除,此时可以使用CASCADE关键字,使用该关键字后,Hive会自己将数据库下的表全部删除。慎用慎用!

    巡山猫说数据
  • Hive中库和表的常见操作

    孙晨c
  • 「基础」SQL-Hive简介及常用数据类型

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 S...

    巡山猫说数据
  • Hive 系列 之 开篇

    细细品味这首诗,忽然发觉以前学这首诗的意义在于背诵和考试,如今细细品味这首诗,不禁感叹意境真好。天色微凉,牵着手,一起爬山那高高的山头看那天边的牵牛织女星,多么...

    kk大数据
  • 浅析大数据HIVE和HBASE有何区别

    Apache Hive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语...

    企鹅号小编
  • 一文看懂HIVE和HBASE的区别

    两者分别是什么Apache Hive是一个构建在hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQ...

    小莹莹
  • 大数据入门基础系列之浅谈Hive和HBase的区别

    温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 在前面的博文里,我已经介绍了 Hive和HBase分别是什么? Apache Hive是一个构建...

    企鹅号小编
  • 大数据开发:Hive DML操作入门

    前面讲了Hive DDL操作,基本上与SQL的基本操作类似,有相关的基础的话,理解掌握起来是非常快的。而DML部分,主要是涉及到增删改,也可以对比着来理解掌握。...

    成都加米谷大数据
  • 值得拥有 不容错过的Hive精华汇总

    Hive作为Hadoop家族的重要一员,具有学习成本低,开发者可通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用。在攒...

    Albert陈凯
  • Hadoop基础教程-第11章 Hive:SQL on Hadoop(11.1 Hive 介绍)(草稿)

    第11章 Hive:SQL on Hadoop 11.1 Hive 介绍 11.1.1 为什么需要Hive? Hadoop的出现,正如当年Java语言的出现,得...

    程裕强
  • Apache Hive 3架构概述

    了解Apache Hive 3的主要设计功能(例如默认的ACID事务处理)可以帮助您使用Hive来满足企业数据仓库系统不断增长的需求。

    大数据杂货铺
  • HAWQ取代传统数仓实践(一)——为什么选择HAWQ

            为了跟上所谓“大数据”技术的脚步,从两年前开始着手实践各种SQL-on-Hadoop技术,从最初的Hive,到SparkSQL,再到Impala...

    用户1148526
  • Spark笔记11-Spark-SQL基础

    Hive会将SQL语句转成MapReduce作业,本身不执行SQL语句。 基本执行原理如下图:

    皮大大
  • 大数据技术hive介绍

    1.hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce...

    加米谷大数据
  • 大数据时代的技术hive:hive介绍

      我最近研究了hive的相关技术,有点心得,这里和大家分享下。   首先我们要知道hive到底是做什么的。下面这几段文字很好的描述了hive的特性:   1....

    老白
  • Spark SQL | 目前Spark社区最活跃的组件之一

    Spark SQL是一个用来处理结构化数据的Spark组件,前身是shark,但是shark过多的依赖于hive如采用hive的语法解析器、查询优化器等,制约了...

    大数据学习与分享
  • 入门大数据必读

    Spark学习技巧
  • 2小时入门SparkSQL编程

    DataFrame参照了Pandas的思想,在RDD基础上增加了schma,能够获取列名信息。

    lyhue1991

扫码关注云+社区

领取腾讯云代金券