use*_*094 6 subquery presto amazon-athena
在 AWS Athena 上,我尝试使用 WITH 子句重用计算数据,例如
WITH temp_table AS (...)
SELECT ...
FROM temp_table t0, temp_table t1, temp_table t2
WHERE ...
Run Code Online (Sandbox Code Playgroud)
如果查询速度很快,“扫描的数据”就会通过屋顶。temp_table每次在FROM子句中引用时都会计算if 。
如果我单独创建一个临时表并在查询中多次使用它,我看不到问题。
有没有办法真正多次重用子查询而不会受到任何惩罚?
您可以使用 CTAS ( https://docs.aws.amazon.com/athena/latest/ug/ctas.html ) 而不是使用 WITH创建临时表。临时表可以使用 Parquet 格式作为示例,这可以减少接下来的查询中扫描的数据(假设它们不使用所有列)。它还可以防止大量内存消耗,从而导致“查询耗尽”错误
| 归档时间: |
|
| 查看次数: |
1370 次 |
| 最近记录: |