hive-sql+beeline+导入导出

hive-sql+beeline+导入导出,第1张

hive-sql+beeline+导入导出

文章目录
  • 说明
  • 分享
  • sql
  • beeline
  • 表数据导入导出
  • 总结

说明

本博客每周五更新一次。
本文记录hive知识,主要内容包括sql语句、beeline工具和表数据的导出和导入。

分享
  • 大数据博客列表
sql
  • 添加

    • 添加字段:alter table 库名.表名 add columns(字段名 字段类型,字段名 字段类型)
    • 添加分区:alter table 库名.表名 add if not exists partition (分区名='值',分区名='值');
    • 添加数据:insert into 库名.表名 values("one","270");
    • 部分字段添加数据:insert into 库名.表名 (字段一,字段二) values("one","270");
    • 指定分区添加数据:insert into 库名.表名 partition(分区名="2020060919") values("one","270");
    • 覆盖表添加:insert overwrite table 库名.表名 (字段一,字段二) values("one","270");
  • 修改

    • 修改存储路径:alter table 库名.表名 set location '存储路径'
    • 修改字段:alter table 库名.表名 change 旧字段名 新字段名 类型;
      • 压缩格式存储的表,修改字段类型,原有数据不可使用,慎重
    • 修改空值null为默认值0:alter table 库名.表名 set serdeproperties('serialization.null.format' = '0');
    • 修改表名: alter table 库名.旧表名 to 库名.新表名
    • 修改字段位置:alter table 表名 change 字段一 after 字段二;
      • 将字段一移动到字段二后面,有可能因为数据类型修改报错,造成修改不成功。
    • 修改分隔符:alter table 表名 set serdeproperties('field.delim'='t');,修改分隔符为t,建议同步修改下serialization.format
  • 删除

    • 删除分区:alter table 库名.表名 DROp IF EXISTS PARTITION (分区名='值',分区名='值');
    • 删除字段: ALTER TABLE test REPLACE COLUMNS(id BIGINT, name STRING);
      • 填写要保留的字段
  • 查看

    • 模糊查询表:show tables like '*name*';
    • 表字段结构:desc 表名;
    • 表创建语句:show create table 表名;
beeline
  • beeline工具hive库远程连接命令:/usr/hdp/current/hive-client/bin/beeline -u jdbc:hive2://ip:10000 -n 用户名 -p 密码 -d org.apache.hive.jdbc.HiveDriver
表数据导入导出
  • 导出数据beeline -u jdbc:hive2://host:10000 --incremental=true --showHeader=false --outputformat=dsv --delimiterForDSV=$'t' -e 'select * from test' > file.csv

    • –showHeader是否显示表头,只显示一行表头,不会多行。
    • –outputformat=table/vertical/csv/tsv/dsv/csv2/tsv2,结果展示的模式。默认是table。dsv可配合delimiterForDSV一起使用,设置分隔
    • –delimiterForDSV 指定输出格式中划分值的界定符。默认是‘|’,如果需要输入特殊符号,如’n001’ ,’x01’等需在前面加$,例 --delimiterForDSV=$’t’
  • 导入数据

    • 标准方法:
      • 用beeline将数据导入表中,需要先将文件上传到hadoop,比如上传到tmp下:hadoop fs -put 路径/data.txt /tmp/
      • 进入beeline里面执行:load data inpath ‘/tmp/data.txt’ overwrite into table 表名
    • 实用方法
      • 将数据上传到指定hive表分区目录下
      • 为hive表创建对应分区
总结
  • hive表数据存储如果为压缩格式如orc、parquet等,修改表字段结构,源数据不可用,因为表存储压缩格式数据,无法随着表结构变化动态改变。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5116581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存