hadoop - CTE 的即时评估

标签 hadoop impala cloudera-cdh

我正在尝试优化包含多个 CTE 的非常长且复杂的 impala 查询。每个 CTE 被多次使用。我的期望是,一旦创建了 CTE,我应该能够指示 impala 该 CTE 的结果应该按原样在主查询中重新使用,而不是再次使用主查询对 CTE 中涉及的表进行 SCAN HDFS 操作。这可能吗?如果是怎么办?

我使用的是 impalad 版本 2.1.1-cdh5 RELEASE (build 7901877736e29716147c4804b0841afc4ebc9037) 版本

最佳答案

我不这么认为。我相信 WITH 子句不会创建任何永久对象,它只是为了避免使用新表或 View 使命名空间困惑,并使通过 reor 重构大型复杂查询变得更容易。 订购和更换各自的零件。 WITH 子句中使用的查询是有朝一日成为 View 或在 ETL 过程中具体化为汇总表的良好候选者。

关于hadoop - CTE 的即时评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47133583/

相关文章:

java - Flume的一些问题

java - Impala 通过 jdbc 使元数据失效

hadoop - 使用直线在远程 impala 上运行一些 sql 失败

sql - 使用两个键的SQL组

sql - Impala 无法删除外部表

hadoop - Hadoop名称节点未启动CDH4.7

hadoop - CDH4:将新节点添加到现有集群

docker - 评估Hadoop性能所需的数据大小

java - Hive NVL 不适用于列的日期类型 - NullpointerException

node.js - 如何使用Node JS连接Hive服务器