为了更快的定位您的问题,请提供以下信息,谢谢
【详述】在 sr 创建一个视图 A,
create view `default_catalog`.`enlightent_daily`.`v_movie_total_info_zero_p`
select * FROM default_catalog.enlightent_daily.v_total_info_zero_p
视图创建完成后, 我 用show create view 查看 sql语句。
CREATE VIEW `v_movie_total_info_zero_p` (`name`, `play_times`, `dayplaytimes`, `up`, `dayup`, `down`, `daydown`, `totalcomments`, `comment_count`, `barragecount`, `daybarragecount`, `playtimespredicted`, `dayplaytimespredicted`, `channel`, `fake`, `day`, `channeltype`) AS SELECT
* FROM `enlightent_daily`.`v_total_info_zero_p`
变成了FROM enlightent_daily.v_total_info_zero_p 。 default_catalog 被去掉了。
【背景】trino 迁移 sr , trino 默认在 hive catalog 下面。 在 sr 里也想默认在hive catalog里。这样开发不需要改 sql。
迁移 trino 的 hive 视图 到 SR
- trino 在建 hive 的视图
- trino 中的hive catalog 不需要配置 oss key, 所以一个catalog 可以访问hive 的所有表。
- sr 的hive catalog 需要配置 oss key, 我们有两个oss 账号, 所以我们有两个 hive catalog。
hive_new 和 hive_old, 用于访问基于oss账号的表。 - 因为需要用到两个 catalog, 我们无法在 hive 里建视图, 只能把视图 迁移 到 SR上。
【业务影响】是
【是否存算分离】 是
【StarRocks版本】3.2.8
【结果演示】
set catalog default_catalog;
select * from default_catalog.enlightent_daily.v_movie_total_info_zero_p;
结果正确
set catalog hive_new;
select * from default_catalog.enlightent_daily.v_movie_total_info_zero_p;
错误信息如下:
此时在hive_new catalog 下面, 视图中的enlightent_daily
.v_total_info_zero_p
是无法找到的。
SQL 错误 [1049] [42000]: Getting analyzing error. Detail message: View enlightent_daily.v_movie_total_info_zero_p references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them: Getting analyzing error. Detail message: Unknown database ‘enlightent_daily’…