通過impala更改Kudu表屬性


開發人員可以通過更改表的屬性來更改 Impala 與給定 Kudu 表相關的元數據。這些屬性包括表名, Kudu 主地址列表,以及表是否由 Impala (內部)或外部管理。

Rename an Impala Mapping Table ( 重命名 Impala 映射表 )

ALTER TABLE kudu_PERSON RENAME TO my_new_table;

注意: 使用 ALTER TABLE ... RENAME語句重命名表僅重命名 Impala 映射表,無論該表是內部還是外部表。這樣可以避免可能訪問基礎的 Kudu 表的其他應用程序的中斷。

Rename the underlying Kudu table for an internal table ( 重新命名內部表的基礎 Kudu 表 )

創建內部表:

CREATE TABLE kudu_PERSON
(
  CompanyId INT,
  WorkId INT,
  Name STRING,
  Gender STRING,
  Photo STRING,
  PRIMARY KEY(CompanyId)
)
PARTITION BY HASH PARTITIONS 16
STORED AS KUDU
TBLPROPERTIES (
  'kudu.master_addresses' = 'hadoop01:7051,hadoop02:7051,hadoop03:7051', 
  'kudu.table_name' = 'PERSON'
);

如果表是內部表,則可以通過更改 kudu.table_name 屬性重命名底層的 Kudu

ALTER TABLE kudu_person SET TBLPROPERTIES('kudu.table_name' = 'new_name');

Remapping an external table to a different Kudu table ( 將外部表重新映射到不同的 Kudu 表 )

如果用戶在使用過程中發現其他應用程序重新命名了kudu表,那么此時的外部表需要重新映射到kudu上

創建一個外部表:

CREATE EXTERNAL TABLE external_table
STORED AS KUDU
TBLPROPERTIES (
  'kudu.master_addresses' = 'hadoop01:7051,hadoop02:7051,hadoop03:7051', 
  'kudu.table_name' = 'PERSON'
);

重新映射外部表,指向不同的kudu表:

ALTER TABLE external_table
SET TBLPROPERTIES('kudu.table_name' = 'hashTable')

上面的操作是:將external_table映射的PERSON表重新指向hashTable表

Change the Kudu Master Address ( 更改 Kudu Master 地址 )

ALTER TABLE my_table
SET TBLPROPERTIES('kudu.master_addresses' = 'kudu-new-master.example.com:7051');

Change an Internally-Managed Table to External ( 將內部管理的表更改為外部 )

ALTER TABLE my_table SET TBLPROPERTIES('EXTERNAL' = 'TRUE');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM