问题描述
我正在尝试在Clickhouse db中创建一个填充的大型物化视图,但是在创建时会超时。错误是:
makemigrations
要解决此问题,我想增加此超时时间,但是问题是,我不知道它是哪一个。我的驱动程序属性中没有超时设置,该值是120s。 我已经将socket_timeout设置为500s。
解决方法
它看起来像触发了 lock_acquire_timeout max_execution_time。
尝试之一:
- 不要定义POPULATE子句,而要按块手动填充物化视图
# define MV without POPULATE
CREATE MATERIALIZED VIEW IF NOT EXISTS mv_name ..
ENGINE = engine
AS SELECT ..
FROM ..;
# manually populate it by call of several INSERTs
INSERT INTO mv_name
SELECT ..
FROM ..
WHERE dt_column >= '..' AND dt_column < ''; // <-- restrict the chunk size
- 或增加
lock_acquire_timeoutmax_execution_time -值
CREATE MATERIALIZED VIEW IF NOT EXISTS mv_name ..
ENGINE = engine
AS SELECT ..
FROM ..
SETTINGS max_execution_time = 600;
要定义设置为120的设置,请使用查询:
SELECT *
FROM system.settings
WHERE value = '120'