备份kudu表数据(Kudu导入导出)

13 篇文章 0 订阅
3 篇文章 0 订阅

由于kudu修改hostname导致数据raft无法自动刷新,无法写入和修改所以需要做好备份。

方法0:最简单的方法是建好一张和需要备份的表一样的kudu表

INSERT INTO TABLE some_parquet_table SELECT * FROM kudu_table

方法一:(在Hue中进行即可)
1,利用impala进行备份,将Kudu表结构转化为impala表结构(其数据存储在hdfs中)
提前建好impala表

CREATE TABLE xxx1(
                id          INT                     ,
                user_id_add INT              ,      
                wx_identity STRING           
        )
		row format delimited fields terminated by ','

row format delimited fields terminated by ','
insert into  xxx1  select * from xxx2

2,上面有个简单方法

create table xxx1 as select * from xxx2

省去了去找建表语句和去掉一些冗余的列属性的步骤,这样更简便。

但是以上步骤对于一些字段少,且没有什么特殊字符的值来说,可以搞定,但是我用以上方法导出之后发现数据比源表多了很多,一查发现,有些字段的值中 存在 ‘\n\0’ 等特殊字符,用impala进行查询的时候遇到这些字符就换行成为了另外一条数据,所以导致数据多出!
所以对impala查出数据做处理,用impala String 函数中的 regexp_replace(string initial,string pattern,string replacement) 做处理

SQL变为
create table xxx1 as select id,user_id_add ,regexp_replace(wx_identity ,'[\n\0]','') from xxx2

用regexp_replace函数依次替换字段中需要替换的值

方法二,
用impala-shell进行

1,先把数据导出成CSV,或者TXT文件,不用进入impala-shell内部,用外部命令

impala-shell -q "select regexp_replace(*,'\n','') from music.xxx2" --delimited --output_delimiter=","  -o /home/xxx1.txt

参数详解:

-q query查询

–delimited (-B) 去格式化输出

–output_delimiter 输出的分隔符

-o 输出文件
2,将xxx1.txt文件上传到hdfs某个目录下 (/tmp/test/)
3,修改权限 hdfs dfs -chmod 777 /tmp/test/xxx1.txt
4,建impala表

CREATE TABLE xxx1(
                id          INT      ,
                user_id_add INT       ,      
                wx_identity STRING           
        )
		row format delimited fields terminated by ','
        location '/tmp/test/';

数据将自动映射为表数据

三,还原成kudu表数据
1,建好kudu表

CREATE TABLE xxx_kudu
(
				id          INT        ,
                user_id_add INT        ,      
                wx_identity STRING   ,
                primary key(id)       
)
STORED AS KUDU;

2, insert into xxx_kudu select * from xxx1

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冬瓜螺旋雪碧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值