Hive基础(1)

Hive的HQL(2)

1. HQL的数据定义,HQL是一种SQL方言,支持绝大部分SQL-92标准。但是和SQL的差异为:不支持行级别的操作,不支持事务等。HQL的语法接近于MySQL。

2. Hive的数据库,本质仅仅是个表的目录或者命名空间。一般用数据库将生产表组织成逻辑组。

3. Hive中的表–管理表,创建表时未指定的话为默认为管理表。当删除管理表时,Hive将删除管理表中的数据和元数据。

CREATE TABLE IF NOT EXISTS test.student (
name STRING COMMENT 'student name',
age INT COMMENT 'student age',
cource ARRAY<STRING>,
body MAP<STRING,FLOAT>,
address STRUCT<STRING,CITY:STRING,STATE:STRING>)
COMMENT 'the info of student'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
COLLECTION ITEMS TERMINATED BY '\002'
MAP KEYS TEMINATED BY '\003'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION '/user/hive/warehouse/test.db/student';
  • COMMENT注释作用
  • ROW FORMAT DELIMITED等指定数据格式和文件存储格式。
  • LOCATION子句指定该表的存储位置,若不写存储在Hive默认的数据仓库目录中。

4. Hive中的表–外部表,当数据需要被多个工具(如Pig、Hive)共享时,创建一个外部表明确数据的所有权,Hive只会删除该表的元数据信息,而不会删除该表的数据。

CREATE EXTERNAL TABLE IF NOT EXISTS test.student(
name STRING COMMENT,
age INT COMMENT,
cource ARRAY<STRING>,
body MAP<STRING,FLOAT>,
address STRUCT<STREET:STRING,CITY:STRING,STATE:STRING>)
LOCATION '/user/test/x'
  • EXTERNAL TABLE 创建一个外部表

5. Hive中的表–分区表(partition),分区表可以进行水平切分,将表数据按照某种规则进行存储。

CREATE TABLE student_info(
student_ID STRING,
name STRING,
age INT,
sex STRING,
father_name STRING,
mother_name STRING)
PARTITIONED BY (province STRING,city STRING);
  • PARTITIONED BY 子句指定表按照学生家庭住址的city和province字段进行分区。
  • /user/hive/warehouse/student_info/province=hebei/city=handan
  • 分区的作用相当和索引类似。
  • Hive安全措施,设置“strict”模式,这样如果针对一个分区表的查询没有对分区进行限制的话,改作业将会被禁止提交。
  • 单独为外部表的分区指定值和存储位置
ALTER TABLE student_info ADD PARTITION (province = hebei,city = handan) LOCATION 'hdfs://master:9000/student/hebei/handan'
  • 外部分区表被删除,数据不会被删除。

6. 删除表 DROP TABLE test 或者 DROP TABLE IF EXISTS test

7. 修改表

  • 表重命名 ALTER TABLE test RENAME TO test2
  • 增加、修改、删除分区
    • 增加分区 ALTER TABLE test ADD PARTITION (x = x1, y = y2) LOCATION ‘/user/test/x1/y1’
    • 修改分区 ALTER TABLE test ADD PARTITION (x = x1, y = y2) SET LOCATION ‘/user/test/x1/y1’
    • 删除分区 ALTER TABLE test ADD DROP PARTITION (x = x1, y = y2)
  • 修改列信息

    ALTER TABLE test

    CHANGE COLUMN id uid INT

    COMMENT ‘the unique id’

    AFTER name;
  • 增加列

    ALTER TABLE test ADD COLUMNS (new_col INT, new_col2 STRING);
  • 删除或者替换列

    ALTER TABLE test REPLACE COLUMNS (new_col INT, new col2 STRING);

8. HQL的数据操作 LOAD DATA

Hive的HQL(2)的更多相关文章

  1. Hive(七):HQL DML

    HQL DML 主要涉到对Hive表中数据操作,包含有:load.INSERT.DELETE.EXPORT and IMPORT,详细资料参见:https://cwiki.apache.org/con ...

  2. Hive(六):HQL DDL

    HQL语法基于 SqlLine(http://sqlline.sourceforge.net/),DDL主要包含数据库.函数.视图的创建.修改.删除,参考资料:(https://cwiki.apach ...

  3. Hive的HQL语句及数据倾斜解决方案

    [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/51675005 作者: 朱培          ID ...

  4. Apache Hive 执行HQL语句报错 ( 10G )

    # 故障描述: hive > , ) as uuid, count(distinct(request_body["uuid"])) as count from log_bft ...

  5. hive 标准hql建表语法格式

    一.标准hql建表语法格式1.官方标准语法:(hql不区分大小写,下面[]里的属性是可选属性) 具体参考官网界面:HIVE官网建表说明文档 CREATE [EXTERNAL] TABLE [IF NO ...

  6. 将hive的hql执行结果保存到变量中

    这里分别针对shell脚本和python脚本举例: shell脚本如下: 注意:在hive语句左右两边使用的是ESC键下面的点号,不是单引号. #!/usr/bin/env bash test1=`h ...

  7. Hive之 Hql语法解析

    Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...

  8. 安装Hive(独立模式 使用mysql连接)

    安装Hive(独立模式 使用mysql连接) 1.默认安装了java+hadoop 2.下载对应hadoop版本的安装包 3.解压安装包 tar zxvf apache-hive-1.2.1-bin. ...

  9. Hive&Hbase

    1. 两者分别是什么? Apache Hive是一个构建在Hadoop基础设施之上的数据仓库.通过Hive可以使用HQL语言查询存放在HDFS上的数据.HQL是一种类SQL语言,这种语言最终被转化为M ...

随机推荐

  1. boost::function 通过boost::bind调用类成员函数

    1. 首先引用boost::function和boost::bind的头文件和库: #include "boost/bind.hpp" #include "boost/f ...

  2. Mysql常用命令行大全(一)

    登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束. 1. 显示数据库列表. show databases; 缺省有两个数据库:mysql和test. mysql库存放着m ...

  3. jvm学习五: 方法执行过程

    方法执行过程:Java各个大版本更新提供的新特性(需要简单了解)

  4. Getting Started with OpenMP

    Getting Started with OpenMP* Abstract As you probably know by now, to get the maximum performance be ...

  5. S5pv210 HDMI 接口在 Linux 3.0.8 驱动框架解析

    作者:liukun321 咕唧咕唧 日期:2014.1.18 转载请标明作者.出处:http://blog.csdn.net/liukun321/article/details/18452663 本文 ...

  6. WCF大文件传输【转】

    http://www.cnblogs.com/happygx/archive/2013/10/29/3393973.html WCF大文件传输 WCF传输文件的时候可以设置每次文件的传输大小,如果是小 ...

  7. Dev Envirenment - Windows 10 && Visual Studio 2019 && OpenCV 4.1.0

    当每天用着 C# && Winform && VS 2010 && .Net Framework 4.0 && Halcon & ...

  8. 符号分割的字符串转换为XML

    把某一符串分割的字符串转换为 XML格式: DECLARE @str NVARCHAR(MAX) = N'fd,re,45,tyu,976,qwer,gdsg,uyt' DECLARE @xml XM ...

  9. VMware Workstation “无法连接 MKS: 套接字连接尝试次数太多;正在放弃。” 解决方法【转】

    今天和往常一样打开电脑,打开VMware Workstation,打开其中的一台虚拟机,以前都是这么打开没有问题,今天打开虚拟机突然提示“无法连接 MKS: 套接字连接尝试次数太多:正在放弃.”. 经 ...

  10. Androidstudio坑

    1.intel haxm sdkmanager显示不可选中,而且boost设置好了intervt 解决:重新关闭,打开系统,然后开启.... 2.解决不了一直报错,(自己的代码,明明已经没有问题) 有 ...