MaxCompute支持将MCQA(MaxCompute Query Acceleration)查询作业的运行结果写入临时缓存中。当用户后续执行相同的查询作业时,MaxCompute会优先返回缓存中的结果,加快执行速度。本文为您介绍MCQA查询结果缓存机制、限制、计费规则并指导您如何验证查询作业是否使用了缓存机制。

缓存机制

对于每个MCQA查询作业,MaxCompute会在内部创建临时数据集来缓存查询结果。临时数据集的所有者即运行查询作业生成了缓存结果的用户。临时数据集对用户不可见,不支持查看临时数据集内容。MaxCompute会自动为运行查询作业的用户授予对临时数据集的访问权限。

MaxCompute会缓存查询结果大约6个小时。出现如下情况时,MaxCompute会删除缓存结果:
  • MaxCompute项目的资源使用率较高时,MaxCompute会提前删除缓存结果。
  • 缓存结果所引用的表或视图变更后,缓存结果立即失效,MaxCompure会删除失效的缓存结果。
  • 缓存结果已过期。

缓存限制

MCQA查询结果缓存的使用限制如下:
  • 如果您希望从缓存的查询结果中检索数据,执行的查询作业以及查询的上下文配置必须与原始查询作业完全相同。当您运行重复的查询作业时,MaxCompute会重复使用缓存结果。
  • 缓存的查询结果中所引用的表或视图变更后,缓存失效,再次执行相同的查询作业,不会检索到缓存数据。
  • 临时数据集的缓存大小限制为10 GB。

缓存计费规则

缓存的查询结果不会产生任何存储及计算费用,可以有效降低资源使用费用。

缓存验证

您可以获取查询作业的Logview信息,并在Job Details页签,查看到查询作业运行结果已写入缓存中,如下图示所示。更多获取Logview信息,请参见使用Logview 2.0查看Job运行信息

Cache