Hive学习笔记--基本操作

為{幸葍}努か 提交于 2019-12-19 00:57:28

基操

从hive的使用过程来说,与数据库类似不在赘述

  • 数据库语言有四大功能:DDL,DML,DCL,TCL。
    Data Definition Language,数据库定义语言。用于定义SQL模式、基本表、视图和索引的创建和撤消操作。
    Data Manipulation Language,数据操纵语言。数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。
    Data Control Language,数据库控制语言。 授权,角色控制等。
    Transaction Control Language,事务控制语言。设置保存点,回滚

启动
先启动Hadoop
从安装目录下bin/ 启动 hive 脚本
会发现
在这里插入图片描述
成功启动

新鲜东西

  • 在hive中创建的数据库存储在HDFS里面默认目录为/user/hive/warehouses 目录下
  • hive里面的字符串类型是string
  • 所创建的表也是HDFS里的一个目录节点
  • 以前hive继承了HDFS的不能修改和删除,因此已经插入的内容不能再做任何改动。hadoop2.0版本添加了支持数据的追加,实际上Insert into语句也是在执行追加操作;
  • Hive 支持查询,行级别的插入。不知处刚级别的删除和修改。

基本命令“DML”
创建表

  • create table city(id int…) *row format delimited fields terminated by ’ ,’ *;

    • 表一旦创建格式固定
    • row format delimited fields terminated by ’ ’ 是指定字段之间的间隔符
  • insert into :插入数据

    • 会发现执行效率很低,因为底层转化为MapReduce来执行,最后Hdfs目录下回多一个文件;
  • load data local inpath ‘/home/software/city.txt’ into table city;

    • 通过加载本地文件来添加到指定的表里,执行效率较高,HDFS同样会多出一个文件city。
    • 亦可以将Hdfs中的文件整合到Hive的表中进行管理。
  • from stu insert overwrite table stu1 select * insert overwrite table stu2 select *;

    • 可以直接将查询的数据写到不同表中HDFS的目录下
  • insert overwriter local dirrectory ‘/home/stu’ row format delimited fields terminited by ‘,’ select * from stu [where ];

    • 将查询的表内容直接写到本地指定目录 overwriter 会直接覆盖该目录。
  • like 复制表
    - create table stu2 like stu

  • “DDL”命令

  • alter table stu rename to stu2

  • alter table stu add cloumns (age int );

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!