我有一个 Impala Kudu 设置,其中有下表:
CREATE TABLE IF NOT EXISTS impala_table (id STRING),
PRIMARY KEY (id))
distribute BY hash(id) into 5 buckets
STORED AS kudu
TBLPROPERTIES('kudu.table_name' = 'impala_tabl', 'kudu.master_addresses' = 'xx.xxx.xxxxx:xxxx');
在此之后,我创建了另一个表,但不小心给了它相同的表kude.table_name
CREATE TABLE IF NOT EXISTS impala_other_table (id STRING),
PRIMARY KEY (id))
distribute BY hash(id) into 5 buckets
STORED AS kudu
TBLPROPERTIES('kudu.table_name' = 'impala_tabl', 'kudu.master_addresses' = 'xx.xxx.xxxxx:xxxx');
我删除了 Impala 中的第二个表,但现在第一个表仍然存在于表列表中,但如果我尝试使用它,我会得到一个表不存在错误。如果我尝试重新创建表,则会收到表已存在错误。
所以 kudu 表impala_tabl
消失了,但 Impala 引用仍然存在于元存储中的某个地方。
我已尝试更改 impala 表以指向另一个 kudu 表名,但我无法更改该表(不存在)。还尝试了REFRESH,但没有成功。
有谁知道我如何删除这个 Impala 参考?
修复:我创建了一个指向同一个 kudu 表的新 Impala 表。然后我将表更改为外部表。之后,我能够删除外部表和我在第一步中创建的表。