hive不建议用insert,因为Hive是建立在Hadoop之上的数据仓库工具,主要用于批处理和大数据分析,而不是为OLTP(在线事务处理)操作设计的。INSERT
操作会非常慢
数据导入
命令行界面:建一个文件
查询数据>>复制>>粘贴到新建的文件中
加载数据到Hive(方法一)
查看数据是否插入成功
通过DataGrip
通过Hue查看是否插入成功
加载数据到Hive
示例
只是把原表的数据映射到目标表
示例
方法二示例
加载结束后再查询原文件所在的目录,文件已不存在,HDFS 加载走的是move移动文件
但是如果是从本地加载,走的是COPY,即保留原文件
方法二示例
(通过第三方工具访问Hive来执行本地加载文件可能会出现问题)
在命令行输入Hive启动Hive CLI,即Hive的命令行界面("Command Line Interface")
方法三示例
很慢, 因为相当于走的是insert
方法四示例
只是映射了原表的数据,没有创建新表, 即通过新表名和原表都可以查到相同的数据
注意事项
粘贴数据内容时,末尾不要有空行,否则数据表会出现空行,因为Hive默认行和行之间是换行,只要出现换行就会新起一行,只不过没有匹配到数据,所以是NULL
加载2次,可以上传成功,但是HDFS会把文件自动改名
使用overwrite,相当于先清空当前目录下的文件,在把文件上传
复制表结构
不同
使用like复制原表的表结构给目标表, 连分隔符也和原表一致,使用select语句则是先创建新表再插入数据,分隔符是默认的,不一定和原表一致.如果想要表结构一致且需要数据,使用数据导入的方法四
数据导出
示例
导出的文件系统自动起名
注意:只能在终端使用这个命令
命令解释:
>>也常被称为追加
参数 e
代表 "expression",即要执行的HiveQL语句
示例
使用 -e参数命令执行完就到了linux,其他的命令执行完还在Hive