小编pav*_*ddy的帖子

如何评估HIVE中的CTE(共表表达)

我的问题是关于性能以及在运行时评估CTE的方式.

我计划通过定义基本投影来重用代码,然后使用不同的过滤器在此基本投影的顶部定义多个CTE.

这是否会导致任何性能问题.更具体地说,每次都会评估基本投影.

例如:

WITH CTE_PERSON as (
   SELECT * FROM PersonTable
),


CTE_PERSON_WITH_AGE as (
   SELECT * FROM CTE_PERSON WHERE age > 24 
),

CTE_PERSON_WITH_AGE_AND_GENDER as (
  SELECT * FROM CTE_PERSON_WITH_AGE WHERE gender = 'm'
),

CTE_PERSON_WITH_NAME as (
  SELECT * FROM CTE_PERSON WHERE name = 'abc'
)
Run Code Online (Sandbox Code Playgroud)
  • 每次来自PersonTable的所有条目都将加载到内存中,然后过滤器将在(或)之后应用
  • 仅将过滤器后的结果集加载到内存中.

hive common-table-expression

5
推荐指数
1
解决办法
4738
查看次数

标签 统计

common-table-expression ×1

hive ×1