Size: a a a

ClickHouse не тормозит

2020 July 29

ПП

Павел Прохоров... in ClickHouse не тормозит
Всем привет!
Системные таблицы, в частности system.mutations  - они же реплицируемые?
источник

ПП

Павел Прохоров... in ClickHouse не тормозит
А, понял - они Located in the system database.
источник

A

Andrey in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
>можете поделиться ссылкой на код про утилиту
принципиально нет, она для опытных c++ разработчиков, они ее за секунду найдут , тупо прочитав make

>но вообще как бы вы делали обновление движка
insert select на вашем месте

я использовал engine=Merge и натурально переехал, ничего не делая, со временем дропнув старые данные.
ок, хорошо, скажу им, как раз проверим, опытные с++ или нет 🙂

т.е. поднять новый КХ, создать бд/таблицы с новым синтаксисом и через
insert into table select * from remote('remote_host',db,table_remote_host,'user','pass');
заливали данные в новые КХ ?
источник

CN

Cybernetic Neuron in ClickHouse не тормозит
Cybernetic Neuron
А если id товара просто сохранять с его метаданными? А товар в отдельной таблице хранить (по ним редко будут запросы)
@den_crane спасибо большое)
вот так и сделаю, наверное, в доку углубляюсь потихоньку
источник

M

M in ClickHouse не тормозит
Подскажите, пожалуйста, что не так.

Сделал словарь (он же работает на 19.15, но все его определение в xml).

CREATE DICTIONARY dictionary.exceptAccountRevenue (
country String,
accountID UInt64 DEFAULT 0,
dateFrom Date DEFAULT '1971-01-01',
dateTo Date DEFAULT '2099-12-31',
retailerID UInt64 DEFAULT 0,
forecastRevenue_x1k UInt64 DEFAULT 0
)
PRIMARY KEY country, accountID, retailerID, dateFrom, dateTo
SOURCE(FILE(path '/opt/dictionaryClickhouse/exceptAccountRevenue.csv' format 'CSVWithNames'))
LAYOUT(COMPLEX_KEY_HASHED())
LIFETIME(300)


При попытке выполнить select * from dictionary.exceptAccountRevenue

получаю ошибку

Code: 481, e.displayText() = DB::Exception: File path /opt/dictionaryClickhouse/exceptAccountRevenue.csv is not inside /var/lib/clickhouse/user_files/ (version 20.4.6.53 (official build))


что это значит? теперь словари надо закидывать именно в /var/lib/clickhouse/user_files/? Хотя, попробовал закинуть вручную - ничего не изменилось
источник

s

serge in ClickHouse не тормозит
Всем привет!
При создании MV c движком ReplicatedSummingMergeTree из Distributed table (shard engine: ReplacingMergeTree) часть строк суммируется 2 и более раз.
Возможно ли избавится от дубликатов?
Нужно ли переходить на ReplicatedReplacingMergeTree в исходной таблице?
CREATE MATERIALIZED VIEW test_mv
ON CLUSTER default_cluster
ENGINE = ReplicatedSummingMergeTree(
        '/clickhouse/tables/global/test_mv',
        '{hostname}'
   )
PARTITION BY toYYYYMM(date)
ORDER BY (name, date)
POPULATE
AS
SELECT
 name,
 toDate(dt) as date,
 sum(sign*value) as score
FROM initial_table
GROUP BY (name, date);
источник

M

M in ClickHouse не тормозит
M
Подскажите, пожалуйста, что не так.

Сделал словарь (он же работает на 19.15, но все его определение в xml).

CREATE DICTIONARY dictionary.exceptAccountRevenue (
country String,
accountID UInt64 DEFAULT 0,
dateFrom Date DEFAULT '1971-01-01',
dateTo Date DEFAULT '2099-12-31',
retailerID UInt64 DEFAULT 0,
forecastRevenue_x1k UInt64 DEFAULT 0
)
PRIMARY KEY country, accountID, retailerID, dateFrom, dateTo
SOURCE(FILE(path '/opt/dictionaryClickhouse/exceptAccountRevenue.csv' format 'CSVWithNames'))
LAYOUT(COMPLEX_KEY_HASHED())
LIFETIME(300)


При попытке выполнить select * from dictionary.exceptAccountRevenue

получаю ошибку

Code: 481, e.displayText() = DB::Exception: File path /opt/dictionaryClickhouse/exceptAccountRevenue.csv is not inside /var/lib/clickhouse/user_files/ (version 20.4.6.53 (official build))


что это значит? теперь словари надо закидывать именно в /var/lib/clickhouse/user_files/? Хотя, попробовал закинуть вручную - ничего не изменилось
Пересоздал словарь с путем FILE(path '/var/lib/clickhouse/user_files/exceptAccountRevenue.csv' format 'CSVWithNames')
и все работает... Это нормальное поведение?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
M
Пересоздал словарь с путем FILE(path '/var/lib/clickhouse/user_files/exceptAccountRevenue.csv' format 'CSVWithNames')
и все работает... Это нормальное поведение?
изменилось, стало строже, надо в config.xml описывать каталог в котором лежат файлы типа exceptAccountRevenue.csv, иначе можно хакать линукс читая passwd и shadow создавая словарь с клиента
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
serge
Всем привет!
При создании MV c движком ReplicatedSummingMergeTree из Distributed table (shard engine: ReplacingMergeTree) часть строк суммируется 2 и более раз.
Возможно ли избавится от дубликатов?
Нужно ли переходить на ReplicatedReplacingMergeTree в исходной таблице?
CREATE MATERIALIZED VIEW test_mv
ON CLUSTER default_cluster
ENGINE = ReplicatedSummingMergeTree(
        '/clickhouse/tables/global/test_mv',
        '{hostname}'
   )
PARTITION BY toYYYYMM(date)
ORDER BY (name, date)
POPULATE
AS
SELECT
 name,
 toDate(dt) as date,
 sum(sign*value) as score
FROM initial_table
GROUP BY (name, date);
MV это триггер на инсерт, она не знает какой движок у исходной таблицы, и получает данные команды инсерт, MV не читает таблицу исходную, можно сделать исходную таблицу Engine=Null (всегда пустая) и MV будет также работать как и раньше. Поэтому если вы сделали инсерт сто раз и проинсертили одно и тоже, MV получит от инсерта 100 раз, и умножит на 100
источник

s

serge in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
MV это триггер на инсерт, она не знает какой движок у исходной таблицы, и получает данные команды инсерт, MV не читает таблицу исходную, можно сделать исходную таблицу Engine=Null (всегда пустая) и MV будет также работать как и раньше. Поэтому если вы сделали инсерт сто раз и проинсертили одно и тоже, MV получит от инсерта 100 раз, и умножит на 100
Спасибо за ответ!
В данном запросе я применяю POPULATE
и выглядит так, что SELECT делается с каждой ноды отдельно, и из-за этого появляются дубликаты
источник

M

M in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
изменилось, стало строже, надо в config.xml описывать каталог в котором лежат файлы типа exceptAccountRevenue.csv, иначе можно хакать линукс читая passwd и shadow создавая словарь с клиента
<!-- Directory with user provided files that are accessible by 'file' table function. -->
   <user_files_path>/var/lib/clickhouse/user_files/</user_files_path>

Это получается этот параметр?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
M
<!-- Directory with user provided files that are accessible by 'file' table function. -->
   <user_files_path>/var/lib/clickhouse/user_files/</user_files_path>

Это получается этот параметр?
ага, можно несколько
<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
<user_files_path>/ope//////</user_files_path>
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
serge
Спасибо за ответ!
В данном запросе я применяю POPULATE
и выглядит так, что SELECT делается с каждой ноды отдельно, и из-за этого появляются дубликаты
да
источник

M

M in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
ага, можно несколько
<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
<user_files_path>/ope//////</user_files_path>
Понял, спасибо!
источник

SP

Sergey Platonov in ClickHouse не тормозит
Sergey Platonov
Добрый день! Можно ли отключить проверку имен полей/столбцов при импорте данных из CSV с заголовками. Раньше проверялся только тип данных. Сейчас проблеммы с импортом из той же метрики, которая выдает заголовки вида ya:s:clientID, если поле в базе ClientID.
Добрый день! Может все же кто ответит? Как делать импорт из CSV с заголовками чтобы не выполнялась проверка соответствия с именами полей? Речь не о пропуске таких полей.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Sergey Platonov
Добрый день! Может все же кто ответит? Как делать импорт из CSV с заголовками чтобы не выполнялась проверка соответствия с именами полей? Речь не о пропуске таких полей.
вы странного хотите, отрежьте заголовок sed-м или используйте custom format
источник

A

Andrey in ClickHouse не тормозит
Andrey
ок, хорошо, скажу им, как раз проверим, опытные с++ или нет 🙂

т.е. поднять новый КХ, создать бд/таблицы с новым синтаксисом и через
insert into table select * from remote('remote_host',db,table_remote_host,'user','pass');
заливали данные в новые КХ ?
@den_crane подскажите?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Andrey
@den_crane подскажите?
я же дебил ДБА, программирую только на sql, с++ не знаю
источник

SP

Sergey Platonov in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
вы странного хотите, отрежьте заголовок sed-м или используйте custom format
в прошоой версии это не считалось странным. Как раз предварительно резать заголовки во всем что каждый день приезжает странно
источник

A

Andrey in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
я же дебил ДБА, программирую только на sql, с++ не знаю
нее за ссылку и программеров с++ я понял

я про
т.е. поднять новый КХ, создать бд/таблицы с новым синтаксисом и через 
insert into table select * from remote('remote_host',db,table_remote_host,'user','pass');
заливали данные в новые КХ ?
источник