文章目录
一、DBeaver连接hive
1. 启动hive
[root@zxy_master conf]# hive --service metastore &
[1] 6887
[root@zxy_master conf]# hive --service hiveserver2 &
[2] 7067
2.配置Dbeaver连接
2.1.选择Apache Hive连接方式
2.2.配置IP、端口、用户名和密码
2.3.编辑驱动设置
默认状态下是通过官网下载jar包,但是这种方式可能会下载失败
可以从hive的lib目录将这个jar包拉取下来
hive的lib目录下,有hive-jdbc-1.2.1.jar 和 hive-jdbc-1.2.1-standalone.jar两个jar包,看有的博客说加standalone的jar包比较纯净,所以我这里也选择使用这个
2.4.测试连接失败
这里测试连接失败,返回
Unexpected driver error occurred while connecting to the database
org/apache/hadoop/conf/Configuration
org/apache/hadoop/conf/Configuration
org.apache.hadoop.conf.Configuration
org.apache.hadoop.conf.Configuration
2.5.添加hadoop-core-1.2.1.jar
根据报错返回记录和查阅文档,我尝试添加hadoop-core-1.2.1.jar
2.6.测试连接成功
2.7.测试建表
3.测试连接失败问题
可能连接失败的问题跟这个不一样,那么可能就是需要其他的jar包
可以去hive的lib目录下找到,如果缺少某一jar包,找资源下载即可
二、DBeaver线下数据导入数据库表
1.建表
create table java_etl_data(
tablename varchar(25) null,
field varchar(25) null,
remark varchar(255) null
);
2.导入
2.1 导入数据
2.2 导入类型
2.3 导入配置
以txt类型
导入数据,字段分隔符选择\t
,是因为我们在导出数据的时候就是根据\t
分割数据。
我这里导出的数据的编码格式就是utf-8
,文件编码类型应该与DBeaver导入数据时的Encoding
一致。如果不一致,可通过NotePad++
调整编码类型。
2.4 数据预览
2.5 数据导入
如果在2.3中查看数据没有问题的话,则点下一步,直到这里完成即可。
3.查看
到这里数据就已经导入成功了,如果表中有无意义的字段,通过SQL清理即可。
三、Dbeaver高级复制功能解决"少量数据完全重复"
1.问题对照
在数据处理中,是否会遇到如下情况,没有主键,数据完全一致
下面采用SQL去重方法,以及通过Dbeaver的高级复制功能实现删除重复数据
select *
from zxy;
2.去重
通过SQL去重语句,排查出重复数据数据
select id,name,testtime
from zxy
group by id,name,testtime
having count(*) > 1;
3.Dbeaver高级复制
点小方框处,待选中所有数据后
单击鼠标右键,弹出选择框
鼠标移动至高级复制处,再选择右边Copy as SQL
INSERT INTO `select id,name,testtime
from zxy
group by id,name,testtime
having count(*) > 1` (id,name,testtime) VALUES
(1,'zxy','2023-03-10'),
(2,'zxy','2023-03-11');
4.删除重复数据
delete from zxy
where id in (
select id
from (
select id,name,testtime
from zxy
group by id,name,testtime
having count(*) > 1
) t
)
5.恢复数据
因为在Copy as SQL
时,查询的数据结果是根据SQL去重语句
查出的,所以在生成插入语句的时候,还是往这个SQL去重语句
中插入,这明细是不对的,所以将这部分修改为表名即可。
- 修改前
INSERT INTO `select id,name,testtime
from zxy
group by id,name,testtime
having count(*) > 1` (id,name,testtime) VALUES
(1,'zxy','2023-03-10'),
(2,'zxy','2023-03-11');
- 修改后
INSERT INTO zxy (id,name,testtime) VALUES
(1,'zxy','2023-03-10'),
(2,'zxy','2023-03-11');
6.查看数据
- 可以看到已经是去重后的数据
- 查询重复语句已经查询不到
四、Dbeaver数据导入"CSV格式"、"Txt格式"导入配置
使用CSV、Txt导入的时候,数据格式不同,在导入数据的时候,要根据数据编码样式设置不同的配置。
1.Txt格式导入
1.1 数据格式
数据格式为:utf8
字段间是tab空格
1.2 导入配置
-
Encoding:数据编码
根据数据类型设置为utf-8
-
Column delimiter:字段分隔符
字段间使用tab空格,所以字段分隔符可以使用
\t
-
Quote char:引用符
没有特别需要注意,保证与Column delimiter、Escape char不同即可
-
Escape char:转义字符
没有特别需要注意,保证与Column delimiter、Quote char不同即可
2.CSV格式导入
2.1 数据格式
数据格式为:gbk
字段间是
,
分割特别需要注意的是字段名处有双引号,需要特殊处理
2.2 导入配置
-
Encoding:数据编码
根据数据类型设置为gbk
-
Column delimiter:字段分隔符
字段间使用
,
分割 -
Quote char:引用符
没有特别需要注意,保证与Column delimiter、Escape char不同即可
-
Escape char:转义字符
使用
"
作为转义字符,特殊处理数据字段处的双引号