clickhouse - 为每个读取查询定义优先级:使一些查询在后台运行
问题描述
我的问题如下:我为低延迟 Web UI 运行 clickhouse 集群,执行经典的 OLAP 查询,例如 SELECT ... WHERE ... GROUP BY ...
这些查询中的大多数从 10 毫秒到 1 秒都非常快,这是完美的。
然而,我还想将 clickhouse 用于较重的查询,例如使用字符串维度(例如 URL)或 SELECT DISTINCT(COUNT(...)) 等较慢的功能,或者只是在非常大的周长(所有行)上运行。
我的意思不是让这些查询更快,而是通过使用集群的全部资源来避免它们减慢其他查询的速度。
我可以想象一个这样的基本调度方法:
- 使用全部资源开始您的繁重查询
- 任何时候有轻量查询,暂停重查询,运行轻查询完成,然后全功率继续重查询
或任何其他更平滑的优先级方法。
Clickhouse 中有什么东西能够定义这种优先级吗?
解决方案
有这样的功能(不幸的是还没有记录):
:) select * from system.settings where name like '%priority%';
SELECT *
FROM system.settings
WHERE name LIKE '%priority%'
┌─name─────┬─value─┬─changed─┬─description───────────────────────────────────────────────────────────────────────────────────────┐
│ priority │ 0 │ 0 │ Priority of the query. 1 - the highest, higher value - lower priority; 0 - do not use priorities. │
└──────────┴───────┴─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────┘
1 rows in set. Elapsed: 0.002 sec.
推荐阅读
- android - 在Android中录制视频时显示textview
- java - 不兼容的类型 Object 不能转换成 Throwable?
- javascript - 当 iframe 改变时执行函数
- vue.js - 为什么 v-model 会改变 Vuex 状态而不是组件的本地数据?
- console - 服务现在公告 500(内部服务器错误)
- sql - 返回跨年份边界的前几个月数据 - SQL Server
- c# - 建立目录结构
- java - 从资源java中读取文件时出现空指针异常
- php - PHP查询中的EncryptByPassphrase
- android - How can I parse array of arrays JSON with Retrofit?