Kyligence Enterprise 查询缓存配置

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Kyligence Enterprise 查询缓存配置

Kyligence Enterprise 查询缓存配置

SQL级缓存,SQL增加空白符号都会不命中。

为了提升执行相同查询的效率,Kyligence Enterprise 系统自带查询缓存并默认开启。

本文部分摘自Kyligence官方文档。

查询缓存的选型

  • Ehcache
    java内存级缓存,在Kyligence实例默认为8G JVM时, 默认的缓存大小为1G。
    增大缓存方式为先增大JVM内存,再配置增加缓存大小。
    缺点:1. 在SQL命中率并不高的场景下,过小的缓存作用不大;2. 过大的缓存可能加快GC频率,在FGC下也会导致延迟增加。
  • Redis
    缓存存储在Redis中,需要一套Redis集群。在v4.3中引入。
    增大缓存的方式为提升Redis集群的大小。
    缺点: 1. 增加运维难度;
    优点: 1. 提升SQL级缓存实用性。

缓存大小的预估方式

在kylin元数据库中根据查询历史进行SQL统计,例如统计24小时内查询延迟大于2000毫秒或扫描行数大于10000或查询扫描数据量字节数大于1048676,且查询结果集小于10000单元格的SQL历史,其一共需要的结果集的大小,以此来预估预存T+1日慢SQL需要的缓存大小。(kylin 查询历史的页面无法如此精细)

参数记录

$KYLIN_HOME/conf/kylin.properties

Kyligence Enterprise 自带查询缓存功能并默认开启

注意:所有下述配置需要重启后方能生效。

配置项 描述 默认值 可选值
kylin.query.cache-enabled 是否开启查询缓存,当该参数开启,下述参数才生效。 true false

查询被缓存的条件

由于内存资源可能是有限的,Kyligence Enterprise 不会默认缓存每条查询的结果。目前产品会有选择性的对性能较慢且结果集不是特别大的查询进行缓存。一条查询是否会被缓存,由以下几个参数影响:满足序号为 1、2、3 配置项中任意一项,且同时满足序号 4 配置项时,查询会被缓存。

序号 配置项 描述 默认值 默认值单位
1 kylin.query.cache-threshold-duration 查询延迟大于该值 2000 毫秒
2 kylin.query.cache-threshold-scan-count 查询扫描的行数大于该值 10240
3 kylin.query.cache-threshold-scan-bytes 查询扫描的数据量大于该值 1048576 字节
4 kylin.query.large-query-threshold 查询结果集小于该值 1000000 单元格

Ehcache 缓存配置

Kyligence Enterprise 默认使用 Ehcache 作为查询缓存,您可以通过配置 Ehcache 来控制查询缓存的大小和策略。您可以通过修改以下配置项来替换默认的查询缓存配置文件,更多的 Ehcache 配置项请参考官网 ehcache文档

配置项 描述 默认值
kylin.cache.config ehcache.xml 文件的路径。您可以在 ${KYLIN_HOME}/conf/ 下新建格式为 xml 的文件来替换默认的查询缓存配置文件,如 ehcache2.xml,并且修改配置项的值为: file://${KYLIN_HOME}/conf/ehcache2.xml classpath:ehcache.xml

Redis 缓存配置 (v4.2不支持,v4.3引入)

由于 Ehcache 查询缓存是进程级的,在不同进程或不同节点之间并不共享,因此在集群部署模式下,当后续相同查询路由至不同 Kyligence Enterprise 节点时,一个进程查询执行结果的缓存无法被另一个进程使用。因此,我们支持使用 Redis 集群作为分布式查询缓存,在所有 Kyligence Enterprise 节点间共享。具体的参数和配置方法如下:

配置项 描述 默认值 可选值
kylin.cache.redis.enabled 是否开启 Redis 集群用于查询缓存 false true
kylin.cache.redis.cluster-enabled 是否开启 Redis 集群模式 false true
kylin.cache.redis.hosts Redis 主机地址,当您需要连接 Redis 集群时,请使用逗号进行分割。如 kylin.cache.redis.hosts=localhost:6379,localhost:6380 localhost:6379
kylin.cache.redis.expire-time-unit Redis 缓存保留单位,EX为秒,PX为毫秒 EX PX
kylin.cache.redis.expire-time Redis 缓存保留时间 86400
kylin.cache.redis.password Redis密码

已知限制

由于当前 Query 节点与 All/Job 节点存在元数据存在同步差异,redis 缓存开关 kylin.cache.redis.enabled=true 需要和 kylin.server.store-type=jdbc 一起配置。

注意:Redis密码可以明文配置,也可以加密。加密方法请参考: 使用 MySQL 作为元数据存储

目录
相关文章
|
2月前
|
SQL 缓存 监控
MySQL缓存机制:查询缓存与缓冲池优化
MySQL缓存机制是提升数据库性能的关键。本文深入解析了MySQL的缓存体系,包括已弃用的查询缓存和核心的InnoDB缓冲池,帮助理解缓存优化原理。通过合理配置,可显著提升数据库性能,甚至达到10倍以上的效果。
|
1月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
|
23天前
|
缓存 并行计算 监控
vLLM 性能优化实战:批处理、量化与缓存配置方案
本文深入解析vLLM高性能部署实践,揭秘如何通过continuous batching、PagedAttention与前缀缓存提升吞吐;详解批处理、量化、并发参数调优,助力实现高TPS与低延迟平衡,真正发挥vLLM生产级潜力。
318 0
vLLM 性能优化实战:批处理、量化与缓存配置方案
|
2月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
165 1
Redis专题-实战篇二-商户查询缓存
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
481 5
|
3月前
|
缓存 NoSQL 数据库
Django缓存机制详解:从配置到实战应用
本文全面解析Django缓存技术,涵盖配置方法与六大缓存后端,结合实战场景演示四种典型应用方式,帮助开发者提升Web应用性能,应对高并发挑战。
102 0
|
4月前
|
缓存 NoSQL API
Django缓存机制详解:从配置到实战应用
本文介绍了 Django 缓存机制的基础知识与实战应用,涵盖缓存概念、Redis 安装配置、缓存策略及 API 使用,并通过 RBAC 权限系统演示缓存的读写与删除操作,助力提升 Web 应用性能。
132 0
|
6月前
|
缓存 数据挖掘 BI
|
8月前
|
缓存 NoSQL 关系型数据库
WordPress数据库查询缓存插件
这款插件通过将MySQL查询结果缓存至文件、Redis或Memcached,加速页面加载。它专为未登录用户优化,支持跨页面缓存,不影响其他功能,且可与其他缓存插件兼容。相比传统页面缓存,它仅缓存数据库查询结果,保留动态功能如阅读量更新。提供三种缓存方式选择,有效提升网站性能。
148 1
|
10月前
|
缓存 NoSQL Java
Mybatis学习:Mybatis缓存配置
MyBatis缓存配置包括一级缓存(事务级)、二级缓存(应用级)和三级缓存(如Redis,跨JVM)。一级缓存自动启用,二级缓存需在`mybatis-config.xml`中开启并配置映射文件或注解。集成Redis缓存时,需添加依赖、配置Redis参数并在映射文件中指定缓存类型。适用于查询为主的场景,减少增删改操作,适合单表操作且表间关联较少的业务。
196 6