
V
26.03.2018
11:59:30
table=tmp create=clickhouse-client --query="SHOW CREATE TABLE $table" | tr -d '\\' clickhouse-client --query="DROP TABLE $table" clickhouse-client --query="$create"
# Замена TRUNCATE, вместо "tmp" нужно указать название таблицы

Ivan
26.03.2018
12:00:56

Stanislav
26.03.2018
12:01:20
Если в таблицу никто ничего не пишет - удалить все её партишны

Google

Oleg
26.03.2018
12:27:47
Добрый день! Подскажите, пожалуйста, как правильно перенести базу с одного жесткого диска на другой.

Konstantin
26.03.2018
12:28:06
вот хоть убейте, не помню где прочитал про truncate - недели 2 назад

Kirill
26.03.2018
12:29:25
Это не те дроиды,которых вы ищете!

Konstantin
26.03.2018
12:30:09

Гаврилов
26.03.2018
12:33:58
а может всетаки те?)

Nick
26.03.2018
12:34:36
Добрый день. У материализированных вьюх можно удалять партиции?
Code: 48. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Method dropPartition is not supported by storage MaterializedView.

Kirill
26.03.2018
12:40:09

Nick
26.03.2018
12:43:19
:) alter table .inner.hourly_statistics drop partition 201803
Syntax error: failed at position 13:
alter table .inner.hourly_statistics drop partition 201803
Expected identifier
собственно ему не нравится
возможно я неправильно это делаю)

Alex
26.03.2018
12:48:21
Имя таблицы заквотируйте обратными кавычками (или двойными)

Google

Nick
26.03.2018
12:49:15
Благодарю вас. Помогло

Michal
26.03.2018
14:33:49

Ievgen
26.03.2018
14:35:42
Mikhail спасибо, будем искать/пилить

Michal
26.03.2018
14:41:15
У меня в планах было попробовать к liquibase плагин написать (с помощью jdbc драйвера это вроде как не сложно, особенно если пропустить часть автогенерации DDL запросов). Но пока руки не доходят. Если найдете/напилите что-то интересное - дайте знать, пригодится.

Дмитрий
26.03.2018
14:44:11
liquibase опирается на databasechangeloglock, которому нужно уметь UPDATE в таблицу. В этом месте придется как-то костылить. Мы решили дождаться поддержки UPDATE.

Michal
26.03.2018
14:46:13

Alexander
26.03.2018
14:46:13
Кстати, об update - roadmap актуален? первый квартал на исходе )

Michal
26.03.2018
14:47:18
Для flyway видел что кто-то реквестовал поддержку кх: https://github.com/flyway/flyway/issues/1772

Alexander
26.03.2018
14:47:24

Дмитрий
26.03.2018
14:49:13

Michal
26.03.2018
14:49:52
Мы продумывали эту задачу в виде ALTER UPDATE/DELETE. Смысл в том, что соответствующий UPDATE/DELETE реализуется путём перезаписи part-ов, подходящих под условие. Проблема в реализации сейчас в том, что это плохо проходит через механизм репликации. В целом решаемо, но пока откладываем.
Ну и дальше довериться тому что реплики сами подхватят изменение.
А для нереприцированных таблиц - должен быть нереплицированный databasechangeloglock

Artem
26.03.2018
15:32:08
всем привет, скажите а кликхаус отправляет в заголовке ответов информацию о колонках для join запросов?

Michal
26.03.2018
15:44:32
Т.е. FORMAT TSV - там просто данные, без заголовков. A FORMAT TabSeparatedWithNamesAndTypes - с названием столбца и его типом
и т.п.

Alexey
26.03.2018
15:50:02

Michal
26.03.2018
15:50:15
При join-ах в кликхаусе нужно явно указывать желаемые стобцы, простой "звездочкой" выберет только столбцы из первой таблицы.

Google

Алексей
26.03.2018
15:59:53
но проблема ушла да. видимо и виджет откатился

Michal
26.03.2018
16:09:29

antuan
26.03.2018
16:12:42
подскажите, как IN работает, если слева от оператора - колонка с массивом, а справа - тупль с одним числом? Т.е.: arr_int_column in (123)
и что будет, если справа будет тупль из нескольких чисел?
Функции для реализации оператора IN.
in, notIn, globalIn, globalNotIn
Смотрите раздел "Операторы IN".
Операторы для работы с множествами
Смотрите раздел "Операторы IN".
a IN ... - функция in(a, b)
больше ничего найти в документации не удалось

Marsel
26.03.2018
16:22:36
У меня тоже вопрос. Нужно достать перую запись в течении часа, есть способ без группировки и сортировки?

Артемий
26.03.2018
16:22:54
SELECT [1,2,3] IN (3)
=> 1
SELECT [1,2,3] IN (4)
=> 0

antuan
26.03.2018
16:24:31
по сравнению с has разницы, я так понимаю, нет в производительности?

Michal
26.03.2018
16:24:35

Alexey
26.03.2018
16:24:36

antuan
26.03.2018
16:25:13
ясненько
тогда вопрос-любопытство по поводу клиента

Артемий
26.03.2018
16:25:42


antuan
26.03.2018
16:26:29
:) SELECT ts_spawn FROM order_logs WHERE platform_id = 441 AND state = 2 AND step = 14 AND has(int_orders_ids,26847920);
SELECT ts_spawn
FROM order_logs
WHERE (platform_id = 441) AND (state = 2) AND (step = 14) AND has(int_orders_ids, 26847920)
┌───ts_spawn─┐
│ 1515006089 │
└────────────┘
┌───ts_spawn─┐
│ 1514765774 │
└────────────┘
┌───ts_spawn─┐
│ 1514880101 │
│ 1514880983 │
└────────────┘
...
:) SELECT ts_spawn, count(*) FROM adcombo.order_logs WHERE platform_id = 441 AND state = 2 AND step = 14 AND int_orders_ids IN (26847920) GROUP BY ts_spawn;
SELECT
ts_spawn,
count(*)
FROM order_logs
WHERE (platform_id = 441) AND (state = 2) AND (step = 14) AND (int_orders_ids IN 26847920)
GROUP BY ts_spawn
┌───ts_spawn─┬─count()─┐
│ 1514963795 │ 1 │
│ 1515002486 │ 1 │
│ 1514916085 │ 1 │
│ 1514940358 │ 1 │
│ 1514862081 │ 1 │
│ 1514934075 │ 1 │
...
результат одинаковый, но разный формат
первый не особо удобен

Google

Michal
26.03.2018
16:26:47

Alexey
26.03.2018
16:27:17

antuan
26.03.2018
16:27:33
как-то можно заставить кх выдавать только ответ во втором формате?
единой таблицей с одним хэдом

Michal
26.03.2018
16:27:56
Или просто добавить ORDER BY

antuan
26.03.2018
16:28:36
нашел, если добавить group by ts_spawn (которого не было во втором варианте), то выдаст одной табличкой
а по дефолту как клиент заставить этот формат использовать?

Michal
26.03.2018
16:29:56
Там он по умолчанию старается отдавать результаты "по мере поступления", т.е. если есть одна строка, а вторая не понятно когда появится - то печатает одну строку
Иногда это полезно
Можно в конфиг файл клиента написать <format> или просто параметром clickhouse-client

antuan
26.03.2018
16:31:09
ок, ещё раз спасибо

Michal
26.03.2018
16:39:16
clickhouse-client -f PrettyCompactMonoBlock или так https://gist.github.com/filimonov/32ec471e973eb046b6c458287b969f20 (кстати может этот пример конфигурации клиента - закомитовать куда-нибудь, или в документацию добавить?)

Artem
26.03.2018
17:49:27

Alexandr
26.03.2018
18:14:11
Насколько хорошо сжимаются строки? Имеется колонка где много одинаковых записей, стоит ли выносить ее в отдельную таблицу?

Wolf
26.03.2018
18:15:00
а вчем суть выноса в отдельную таблицу, там будет тоже самое, сжимаются хорошо

Alexey
26.03.2018
18:15:05

Alexandr
26.03.2018
18:22:06
А какая по скорсти прохождения по строковым колонкам если сравнивать с UInt32? Насколкьо понимаю нужно сначала разжать данные, а потом сравнить соедржимое строки, может если заменить колонку на число то скорость должна быть выше?

Wolf
26.03.2018
18:23:32
очевидно что числа вранивать намного быстрее чем строки

Google

Denis
26.03.2018
18:48:49
После апгрейда на 1.1.54371, запрос
select value from system.events where event='ZooKeeperExceptions' (мониторим дельту)
стал возвращать необычно много строк.
в clickhouse-server.err.log тишина про зукипер.
такое ощущение что теперь эта метрика увеличивается на каждое сообщение про зукипер в логе и равно
/var/log/clickhouse-server/clickhouse-server.log|grep -i keep|grep Trace|wc -l

Alexey
26.03.2018
18:57:47

Denis
26.03.2018
19:00:22

Alexey
26.03.2018
19:03:45
Пока не очевидно. Проверим при релизе.

Alexander
26.03.2018
20:49:14
Подскажите, пожалуйста, где поподробнее почитать как freeze работает. У меня сейчас 25000 директорий таблица занимает, из них кроме ста - это все изменения последнего дня. Если заморозить, они сливаться продолжат?

Alexey
26.03.2018
20:55:35
Да, слияния продолжатся.
Freeze создаёт хардлинки в отдельной директории, а также защищает файлы от модификации. Мержам это не помешает, так как удаление старых директорий продолжится как обычно (но фактически данные не удалятся, так как есть хардлинки).

Alexander
26.03.2018
21:00:02
а, дошло кажется. спасибо

Eugene
27.03.2018
04:30:31
Подскажите, плиз, как передать серверу явно клиентский часовой пояс и указать серверу его использовать при http подключении.

shang
27.03.2018
06:38:22
'select truncate()', Исключение: Неизвестная функция tranc.

Konstantin
27.03.2018
06:40:56
'select truncate()', Исключение: Неизвестная функция tranc.
у меня другое поведение на ваш пример.
"SELECT truncate()
Received exception from server (version 1.1.54362):
Code: 42. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Number of arguments for function trunc doesn't match: passed 0, should be 1 or 2.."

shang
27.03.2018
06:44:31
извините, я написал неправильное имя

Konstantin
27.03.2018
06:44:56
ничего страшного, все равно это не та функция которая нужна)

shang
27.03.2018
06:45:11
как использовать эту функцию, я не видел ее в документе

Konstantin
27.03.2018
06:45:47
без понятия)

shang
27.03.2018
06:46:39
как его использовать, 'truncate'