gpt4 book ai didi

impala - impala 的 view 或 with 子句是否只计算一次并在查询中多次使用?

转载 作者:行者123 更新时间:2023-12-01 15:21:02 25 4
gpt4 key购买 nike

with core as (
select
t1.a,
t1.b,
t2.c
from
test_1 t1
join
test_2 t2 on t1.a = t2.a
where
t1.b = 'test'
)
,tmp_1 as (
select a,count(1) from core group by a
)
,tmp_2 as (
select b,count(1) from core group by b
)
select
t1.a,
t1.count,
t2.count
from
tmp_1 t1
join
tmp_2 t2 on t1.a=t2.b

我的问题是,上面查询中的core CTE 只计算一次吗?或者在tmp_1tmp_2 CTE中都出现了两次,我在documentation of impala中找不到线索,

最佳答案

到目前为止,对于 Impala 和 Hive 的当前版本,查询中的核心 CTE 将被计算 2 次,正如您在 tmp_1 和 tmp_2 中引用它一样。

您可以在查询的 EXPLAIN PLAN 中观察它。

结论是,您可以使用WITH子句来更好地调试和维护复杂查询。它无助于提高 Hive 或 Impala 查询的性能。根据 Hive JIRA 站点,没有路线图来包含此递归功能。

Oracle 和 PostgreSQL 支持此递归功能。

关于impala - impala 的 view 或 with 子句是否只计算一次并在查询中多次使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47148680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com