Size: a a a

ClickHouse не тормозит

2020 August 05

DC

Denny Crane (I don't... in ClickHouse не тормозит
из-за таблицы engine=Dict ? версия КХ. ?
источник

АА

Алексей Артамонов... in ClickHouse не тормозит
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
обновитесь до 20.5.3, там починено https://github.com/ClickHouse/ClickHouse/issues/10994
источник

K

Kos in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
чтобы выдать на ветки права только определенному пользователю
понял. файл этот нужен когда выдаются права наподобие
setAcl /bob sasl:bob:cdrwa,sasl:alica:cdrwa  - тогда идет при подключении юзеров, проверка их паролей в файле saas.cfg.
а если
права установлены setAcl /bob digest:bob:X1SKGw3XQQSIPMZRf5lW7e07VPY=:cdrwa то файл не нужен.

мне кажется второй вариант предпочтительней. потому что пароль в хеш виде записан. а в файле saas.cfg он в PLAIN
источник

ВР

Вячеслав Ракицкий... in ClickHouse не тормозит
есть таблица:
create table analytics_click.datast(
 iddata UUID DEFAULT generateUUIDv4(),
 idmpchd UInt64,
 dsName String,
 tsUTC DateTime,
 val Nullable(Float64),
 valSrc Nullable(Float64),
 idstx UInt32,
 status UInt32,
 forsedUpdate UInt8,
 tsAddedUTC DateTime64,
 idbunch String,
 INDEX u_data (idmpchd, tsUTC) TYPE SET(1000) GRANULARITY 8192,
 INDEX id (iddata) TYPE SET(1) GRANULARITY 8192
) ENGINE = MergeTree()
 PARTITION BY (toYear(tsUTC), toMonth(tsUTC))
 ORDER BY (tsUTC, idmpchd);

в нее я буду писать все, но мне нужны уникальные записи, я создаю МВ:
create materialized view data 
ENGINE = MergeTree()
 PARTITION BY (toYear(tsUTC), toMonth(tsUTC))
 ORDER BY (tsUTC, idmpchd)
 AS(
select
 *
from datast
where iddata in(
SELECT
 argMin(iddata, status) as iddata
from datast
group by datast.idmpchd, datast.tsUTC
));

но во вьюху пишет все строки, которые вставляю, может кто направит на пусть истинный
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Вячеслав Ракицкий
есть таблица:
create table analytics_click.datast(
 iddata UUID DEFAULT generateUUIDv4(),
 idmpchd UInt64,
 dsName String,
 tsUTC DateTime,
 val Nullable(Float64),
 valSrc Nullable(Float64),
 idstx UInt32,
 status UInt32,
 forsedUpdate UInt8,
 tsAddedUTC DateTime64,
 idbunch String,
 INDEX u_data (idmpchd, tsUTC) TYPE SET(1000) GRANULARITY 8192,
 INDEX id (iddata) TYPE SET(1) GRANULARITY 8192
) ENGINE = MergeTree()
 PARTITION BY (toYear(tsUTC), toMonth(tsUTC))
 ORDER BY (tsUTC, idmpchd);

в нее я буду писать все, но мне нужны уникальные записи, я создаю МВ:
create materialized view data 
ENGINE = MergeTree()
 PARTITION BY (toYear(tsUTC), toMonth(tsUTC))
 ORDER BY (tsUTC, idmpchd)
 AS(
select
 *
from datast
where iddata in(
SELECT
 argMin(iddata, status) as iddata
from datast
group by datast.idmpchd, datast.tsUTC
));

но во вьюху пишет все строки, которые вставляю, может кто направит на пусть истинный
не решить такое с помощью materialized view

посмотрите на Engine=ReplacingMergeTree (но он не гарантирует остутствие дубликатов по ключу.

PARTITION BY (toYear(tsUTC), toMonth(tsUTC)) --- надо обязательно поменять на PARTITION BY toYYYMM(tsUTC)
источник

AP

Alexander Petrovsky in ClickHouse не тормозит
коллеги, подскажите plz, кластер состоит из двух шардов, в шарде две ноды (реплика), запрос над distributed таблицей возвращается время от времени разные данные хотя он фиксирован по диапазону времени (данные в таблице datetime) и не имеет ограничения limit X
источник

ВР

Вячеслав Ракицкий... in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
не решить такое с помощью materialized view

посмотрите на Engine=ReplacingMergeTree (но он не гарантирует остутствие дубликатов по ключу.

PARTITION BY (toYear(tsUTC), toMonth(tsUTC)) --- надо обязательно поменять на PARTITION BY toYYYMM(tsUTC)
спасибо
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Alexander Petrovsky
коллеги, подскажите plz, кластер состоит из двух шардов, в шарде две ноды (реплика), запрос над distributed таблицей возвращается время от времени разные данные хотя он фиксирован по диапазону времени (данные в таблице datetime) и не имеет ограничения limit X
а реплики это какой Engine? REPLICATED?

если прямо из шардов-таблиц выбирать, данные совпадают?
источник

AP

Alexander Petrovsky in ClickHouse не тормозит
engine - ReplicatedMergeTree для таблиц, и над ними engine - Distributed
источник

AP

Alexander Petrovsky in ClickHouse не тормозит
> если прямо из шардов-таблиц выбирать, данные совпадают?
да, это я счас проверяю руками как раз
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
Подскажите плез поведение словарей внешних. Есть словарь:
CREATE DICTIONARY test_dictionary(
               id UInt64,
               ....
           )
           PRIMARY KEY id
           SOURCE(MYSQL(
           ))
           LAYOUT(HASHED())
           LIFETIME(MIN 60 MAX 120);
Источник таблица на 20кк, значение атрибута не обновляется через LIFETIME MAX секунд, даже с учетом самого времени обновления. По сути словарь не обновляется вообще. Invalidate query нет, движок в мускуле Innodb
В чем может быть дело?
источник

D

Denis Goihburg in ClickHouse не тормозит
Привет, вопрос.
А есть настройка, чтобы заставить мерджы, вызванные
Optimize deduplicate бежать в несколько потоков?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Denis Goihburg
Привет, вопрос.
А есть настройка, чтобы заставить мерджы, вызванные
Optimize deduplicate бежать в несколько потоков?
нет. Но вроде и так несколько потоков, по мержу на партицию?
источник

D

Denis Goihburg in ClickHouse не тормозит
Ну в system.merges только один показывается...
источник

D

Denis Goihburg in ClickHouse не тормозит
И в итоге для большой таблицы идет довольно медленно
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Denis Goihburg
Ну в system.merges только один показывается...
значит я путаю. видимо только отдельно на каждую партицую вручную
источник

D

Denis Goihburg in ClickHouse не тормозит
Окок, спасибо)
источник

D

Dj in ClickHouse не тормозит
dmitry sevastyanov
Подскажите плез поведение словарей внешних. Есть словарь:
CREATE DICTIONARY test_dictionary(
               id UInt64,
               ....
           )
           PRIMARY KEY id
           SOURCE(MYSQL(
           ))
           LAYOUT(HASHED())
           LIFETIME(MIN 60 MAX 120);
Источник таблица на 20кк, значение атрибута не обновляется через LIFETIME MAX секунд, даже с учетом самого времени обновления. По сути словарь не обновляется вообще. Invalidate query нет, движок в мускуле Innodb
В чем может быть дело?
в system.dictionaries ошибки есть?
может и баг что вот это место сломано
Для таблиц типа MyISAM, время модификации проверяется запросом SHOW TABLE STATUS.
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
Dj
в system.dictionaries ошибки есть?
может и баг что вот это место сломано
Для таблиц типа MyISAM, время модификации проверяется запросом SHOW TABLE STATUS.
нет, статус в system.dictionaries LOADED, про Myisam я поэтому и указал что innodb движок в мускуле.
Словарь работает как положено, при первом запросе грузит в память, атрибуты отдаёт. Визуально всё в порядке. Но вот обновления не происходит. Принудительно обновить получается через SYSTEM RELOAD DICTIONARY и данные обновляются - значение аттрибута меняется.

В доке написано что invalidate query опционален, но возможно для каких то размеров внешних источников, или для каких то специфичных кейсов его всё таки необходимо указывать.
источник