我创建了一个配置单元表“sample”,所有者为“x”
hive> show table extended like sample;
--将所有者显示为“x”
有没有一种方法可以在不重新创建表(不想丢失数据)的情况下将所有者更改为其他“y”
一个已知的选项是直接在postgreshive metastore表中更新所有者。
hive=# update "TBLS" set "OWNER" = 'Y' where "OWNER" = 'X' and "TBL_NAME" = 'sample';
这安全吗?
2条答案
按热度按时间u4vypkhs1#
据我所知,除了直接更改metastore db之外,没有其他方法可以做到这一点。我需要这样做几次-没有任何问题。
js5cn81o2#
我刚刚经历了这个问题,可以和大家分享我的解析笔记,为我的“metastoredb的直接改变”增色。在我们的配置中,我们使用连接到Hive的presto。表将在配置单元中与presto连接的任何用户一起创建(与
--user
presto cli上的标志)。我们收到一条错误消息,例如:
我可以通过对配置单元元存储执行以下查询来查看表的用户:
然后,我可以根据需要通过执行以下操作来更新表:
注意:您应该在事务中运行此操作,并确保首先备份元存储。