在 Athena 中重新运行查询时,可以选择重用上次存储的查询结果。此选项可以提高性能并降低扫描字节数方面的成本。例如,如果我们知道结果在给定时间范围内不会更改,则重用查询结果
非常有用。可以指定重用查询结果的最长期限,只要存储的结果不早于指定的期限,Athena 就会使用它。
如果使用的Athena V2引擎,则这个功能不能使用,只有升级到V3才可以:
开启的方式是编辑workgroup:
运行以下SQL查询:
select c.customer_id,concat("firstname",' ',"lastname") as full_name,
sum(cast(price as decimal(6,2))) as lifetime_value,
count("timestamp") as lifetime_purchase_count,
sum(cast(price as decimal(6,2))) /count("timestamp") as average_spend_per_purchase
from customers_parquet c join sales_parquet s on c.customer_id = s.customer_id
group by c.customer_id,concat("firstname",' ',"lastname"),c.country;
运行完成后,打开Reuse query results
,并设置时间为30分钟:
单击“Run again” 按钮重新运行查询。请注意与原始运行相比,运行时间和扫描的数据的差异:
转到查询编辑器中的“Recent queries”选项卡,然后检查“Cache”列以查看添加到执行中的“Result reuse”。这表明对于该查询,结果被重用: