hive学习笔记(二)

hive基本操作

  • 进入hive的两种方式:
    1. 命令行输入:hive 即可
    thrit做的连接(Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。)
    2. beeline JDBC做的连接
    01 启动hiveserver2 服务 这个服务要后台启动
    02 输入beeline
    03 连接 !connect jdbc://hive2://myx01:10000
    04 输入用户名和密码 mysql的用户名和密码
    05 退出 !q
    DDL:对表的操作 比如 字段,结构,类型
创建数据库:
  • create database databaseName;
  • create database if not exists databaseName; 为了避免报错,所以加上判断
    数据库相对于hdfs其实就是文件夹
    表相对于hdfs也是文件夹
    表中的数据就是hdfs上的文件
  • 展示数据库 show databases;
  • 使用数据库 use databasename;
  • 删除数据库 drop database databasename;
  • 创建数据库并指定在hdfs上的路径 create database test03 location '/aaa/test03.db';
  • 查看数据库的详细信息 desc database extended test03;
  • 过滤显示查询的数据库 show databases like ‘d*' ;
hive创建表:

hive创建的表默认分隔符是 \001
hive表分为1.内部表也叫管理表 2.外部表
区别:在删除表时会体现出来,内部表在删除hive表时,真实数据和元数据都会被删除,外部表被删除时,真实数据会被保留,元数据会被删除。
外部表一般会在加载数据时使用,内部表一般用来存放分析的结果。

  • 创建内部表 create table stu01(name string,age int, gender string) row format delimited fields terminated by '\t' stored as textfile;
  • 创建外部表 create external table stu01(name string,age int, gender string) row format delimited fields terminated by '\t' stored as textfile;
    创建的表默认格式就是 testfile stored as textfile
  • 删除表 drop table tablename;
  • 分区表格式 create table tablename(字段 字段类型...) partitioned by (分区的字段名称 类型) row format delimited fields terminated by '\t' ;
    分区在hdfs上也是文件夹
  • 查看表分区 show partitions tablename ;
  • 添加分区 alter table tablename add partition(分区字段=’字段名称‘);
  • 添加多个分区 alter table tablename add partition(分区字段=’字段名称01‘) partition(分区字段=’字段名称02‘) partition(分区字段=’字段名称03‘)...;
    注意中间是空格
  • 删除一个分区 alter table tablename drop partition(分区字段=’字段名称‘);
  • 删除多个分区 alter table tablename drop partition(分区字段=’字段名称01‘),partition(分区字段=’字段名称02‘),partition(分区字段=’字段名称03‘),...;
    注意中间用逗号隔开
  • 查看表的详情信息 desc formatted tablename;
  • 重命名表 alter table tablename rename to newTablename;
  • 修改列名和列类型 alter table tablename change 要修改的列名 新列名 新的类型;
  • 增加列 alter table tablename add columns (增加的列名 列类型);
  • 删除列 alter table tablename replace columns (你要保留的字段);
    DML操作:对表中数据的操作 插入数据,重写数据
  • 加载数据 load data [local] inpath 'path' [overwrite] into table tablename;
    [local] path 本地路径 指的是虚拟机路径
    path 指的是hdfs路径
    [overwrite] 是否重写
    hive 加载数据到表中会很快,因为hive并不会读取文件中的内容
  • 清除表数据: truncate table tablename;
  • Insert导出:insert overwrite [local] directory 'path' [row format delimited fields terminated by "\t分隔符"]指定字段分割符 select * from tablename [where]
    在使用insert语句时,yarn的服务必须是正常的。
  • 指定数据库和表名查看内容 select * from 数据库名.表名 limit 10 分页查看;
  • 查看表的建表语句 show create table tablename;
  • 建表并插入语句 create table tablename as select *,字段 from tablename02 [where 条件];
  • 创建和某张表结构相同的表: create table newTablename like tablename;
  • 在hive中操作 hdfs
    dfs -ls /user/hive/warehouse/par_movies/scorerange=0-3;
    dfs -cat /user/hive/warehouse/par_movies/scorerange=0-3/part-00000;
    dfs -put /a.txt /user/hive/warehouse/par_movies/scorerange=0-3;

你可能感兴趣的:(hive学习笔记(二))