zoukankan      html  css  js  c++  java
  • hive 之 常用基本操作

    show databases; -- 查看所有数据库
    
    use 数据库;     -- 进入某个数据库
    
    select current_database(); -- 查看当前使用的数据库
    
    show tables;    -- 显示所有表
    
    show tables like '*tb_site*' -- 显示特定表
    
    show partitions 表名; -- 显示表的所有分区
    
    desc tab_name; -- 查看表结构
    
    desc formatted tab_name; -- 查看表结构详细信息(文件地址)
    
    查看表在HDFS中存放的数据文件(hadoop操作):
    hdfs dfs -ls hdfs://hadoop001:8020/user/hive/warehouse/tab_name(文件地址)
    
    show create table_name;   -- 显示创建表的语句
    
    select * from tab_name limit 2; -- 查询前n行
    
    创建分区表:
    create table if not exists tab_name(
    id int,
    name string
    )PARTITIONED BY (deal_day string) -- deal_day 分区字段
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY 'u0001' -- 分隔符
    LINES TERMINATED BY '
    ' -- 换行符
    STORED AS TEXTFILE -- 数据存储格式
    LOCATION '/data/tab_name' -- 文件存储地址
    
    create table as select 指定数据存储格式创建表
    
    create table tab_name stored as textfile as
    select * from tab_name2
    
    insert overwrite table 覆盖分区式插入数据
    注:在表结构发生变化(增加、删除字段)之后,需要删除分区才能更新数据。
    
    insert overwrite table tab_name partition(deal_day='某个分区日期')
    select * from tab_name2
    
    自动分区插入数据
    insert overwrite table tab_name partition(deal_day)
    select id,name,deal_day from tab_name2
    
    alter table table_name rename to new_table_name; -- 重命名表
    
    alter table table_name add columns (newcol1 int comment '备注信息,可忽略'); -- 增加字段
    
    alter table table_name change col_name new_col_name new_type;-- 修改字段
    
    alter table table_name replace columns (col1 int,col2 string,col3 string);-- 删除字段(COLUMNS中只放保留的字段)
    
    drop table table_name;-- 删除表
    
    
    alter table table_name drop if exists partition (deal_day='某个分区日期'); -- 删除分区
    
    
    drop database if exists db_name; --  删除库
    
    drop database if exists db_name cascade; --  强制删除库
    
    
    drop table if exists table_name; --  删除表
    
    
    truncate table table_name; --  清空表
    
    insert overwrite table table_name select * from table_name where 1=0;  --  清空表
    
    
    alter table table_name drop partition (deal_day<='某个日期'); --  删除分区
    
    
    insert overwrite table table_name select * from table_name where id>='20'; --  按条件删除数据,删除id小于20的数据,保留id大于等于20的数据
    
    hive -e "sql语句" -- 将查询结果打印在控制台上
    
    hive -e "sql语句" > xxx.txt -- 将查询结果写入到txt文件中
  • 相关阅读:
    try,except,finally的用法
    python实现蓝牙通信
    分布式全局ID的几种生成方案
    为什么要两次调用encodeURI来解决乱码问题
    jenkins配置到gitlab拉代码
    查看IOS-app证书到期时间
    使用SSH方式实现Git远程连接GitHub/gitlab
    Git 分支
    jenkins构建后操作archive the artfacts的用法
    MAC 安装jenkins
  • 原文地址:https://www.cnblogs.com/simple-li/p/14041346.html
Copyright © 2011-2022 走看看