我正在尝试定义一个sql视图,该视图从源结构数据类型中选择元素的子集并创建一个新结构。在蜂箱里我可以做到:
create view myview as
select
id,
named_struct("cnt", bkg.cnt, "val", bkg.val) as bkg
from mybkgtable
这是有效的。问题是,当从presto调用此视图时,它会失败,并显示:Function named_struct not registered
发现presto没有结构数据类型,而是有ROW。它使用以下语法:
select
id,
CAST(ROW(bkg.cnt, bkg.val) as row(cnt integer, val double)) as bkg
from mybkgtable
但是,Hive不理解这种语法。
问题是,是否可以有一个既适用于hive又适用于presto的视图定义?
问题是,是否可以有一个既适用于hive又适用于presto的视图定义?
遗憾的是,没有
您可以使用coral在hiveql中编写视图定义,并将其转换为presto。
https://github.com/linkedin/coral
https://engineering.linkedin.com/blog/2020/coral