客快物流大数据项目(七十七):使用Impala对kudu更改表属性操作
Posted Lansonli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了客快物流大数据项目(七十七):使用Impala对kudu更改表属性操作相关的知识,希望对你有一定的参考价值。
文字目录
使用Impala对kudu更改表属性操作
开发人员可以通过更改表的属性来更改 Impala 与给定 Kudu 表相关的元数据。这些属性包括表名, Kudu 主地址列表,以及表是否由 Impala (内部)或外部管理。
一、重命名Impala映射表
ALTER TABLE PERSON RENAME TO person_temp;
重命名impala表的时候,只会修改impala表的名字,不会修改kudu表名的名字,如果想修改kudu表名的话,需要使用impala3.3及以上版本
二、重新命名内部表的基础Kudu表
- 创建内部表:
CREATE TABLE kudu_student
(
CompanyId INT,
WorkId INT,
Name STRING,
Gender STRING,
Photo STRING,
PRIMARY KEY(CompanyId)
)
PARTITION BY HASH PARTITIONS 16
STORED AS KUDU
TBLPROPERTIES (
'kudu.num_tablet_replicas' = '1'
);
- 如果表是内部表,则可以通过更改kudu.table_name属性重命名底层的Kudu表
ALTER TABLE kudu_student SET TBLPROPERTIES('kudu.table_name' = 'new_student');
注意:kudu.table_name属性的设置与版本有关 |
在impala3.2版本中是无法修改底层的kudu表的名字的,从impala3.3开始可以修改 |
在Impala 2.11及更低版本中,可以通过更改kudu.table_name属性来重命名基础Kudu表: |
结论:在impala2.11及impala3.2之间的版本是无法修改kudu.table_name属性的 |
三、将外部表重新映射到不同的Kudu表
- 如果用户在使用过程中发现其他应用程序重新命名了kudu表,那么此时的外部表需要重新映射到kudu上
创建一个外部表:
CREATE EXTERNAL TABLE external_table
STORED AS KUDU
TBLPROPERTIES (
'kudu.master_addresses' = 'node2:7051',
'kudu.table_name' = 'person'
);
重新映射外部表,指向不同的kudu表:
ALTER TABLE external_table
SET TBLPROPERTIES('kudu.table_name' = 'hashTable')
上面的操作是:将external_table映射的PERSON表重新指向hashTable表
四、更改Kudu Master地址
ALTER TABLE my_table
SET TBLPROPERTIES('kudu.master_addresses' = 'kudu-new-master.example.com:7051');
五、将内部管理的表更改为外部
ALTER TABLE my_table SET TBLPROPERTIES('EXTERNAL' = 'TRUE');
将内部表更改成外部表以后,删除外部表,不会影响底层的kudu表,反之如果是内部表的话,删除内部表,则底层的kudu表也会同步删除
- 📢博客主页:https://lansonli.blog.csdn.net
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
以上是关于客快物流大数据项目(七十七):使用Impala对kudu更改表属性操作的主要内容,如果未能解决你的问题,请参考以下文章