
# 配置HetuEngine物化视图缓存能力
对于一条SQL，创建了对应的物化视图后，执行这条SQL时，将被改写为通过物化视图查询。如果开启了物化视图的"重写缓存"功能，那么多次执行这条SQL后，改写后的SQL将会保存到缓存中（默认最多保存10000条），在缓存有效时间（默认24小时）内，执行这条SQL时会直接从缓存中获取改写后的SQL，而不是重新对SQL进行改写。
可在计算实例中添加自定义参数"rewrite.cache.timeout"和"rewrite.cache.limit"分别设置缓存有效时间和最多能保存的改写SQL的条数。
- 创建一个新的物化视图，或者删除一个已有的物化视图时，缓存将失效。
- 如果缓存中被改写的SQL查询所关联的物化视图失效，或者处于REFRESHING状态，该条被改写的SQL查询将不会被使用。
- 当使用缓存时，被执行的SQL不能有任何改变，否则它将被当做一条新的SQL查询。
- 创建的物化视图中最多有500个可以用于SQL查询的改写，也就是SQL改写时使用的物化视图如果被包含在这500个中，那么就会进行改写，否则就当做普通SQL执行。可参考[•System级别：]在计算实例中添加自定义参数"hetu.select.top.materialized.view"来改变允许使用的物化视图个数。
#### 开启物化视图"重写缓存"
- Session级别： 参考[快速使用HetuEngine访问Hive数据源](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1711.html)在HetuEngine客户端执行**set session rewrite_cache_enabled=true**
  
- System级别：
  1. 使用用于访问HetuEngine WebUI界面的用户登录FusionInsight Manager。
  
  2. 选择"集群 \> 服务 \> HetuEngine"，进入HetuEngine服务页面。
  
  3. 在概览页签下的"基本信息"区域单击"HSConsole WebUI"后的链接，进入HSConsole界面。
  
  4. 单击"计算实例"，查看待操作的租户的实例状态，当绿色图标和蓝色图标数量均为"0"时，可执行[5]配置开启物化视图改写能力。
  
  5. 在"计算实例"页签，在待操作的实例所属租户所在行的"操作"列单击"配置"，进入"配置实例"页签，添加如下自定义参数。
     
     | 名称                    | 值        | 参数文件                          | 描述                                                                                                                                                                                                              |
     |:---|:---|:---|:---|
     | rewrite.cache.enabled | true     | coordinator.config.properties | 启用物化视图"重写缓存"                                                                                                                                                                                                    |
     | rewrite.cache.timeout | 86400000 | coordinator.config.properties | - 修改"重写缓存"的有效期  - 不填则使用默认值：86400000，单位：ms   |
     | rewrite.cache.limit   | 10000    | coordinator.config.properties | - 修改"重写缓存"的缓存上限  - 不填则使用默认值：10000，单位：条               |
        
     
  
  6. 参数添加完成后，将"立即启动"置为"是"，单击"确定"。
   
 
