@clickhouse_ru

Страница 471 из 723
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
table=tmp create=clickhouse-client --query="SHOW CREATE TABLE $table" | tr -d '\\' clickhouse-client --query="DROP TABLE $table" clickhouse-client --query="$create"
Это я видел, ага. Удалить таблицу и создать новую. Я именно про truncate

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
Code: 48. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Method dropPartition is not supported by storage MaterializedView.
В .inner. таблице удаляйте, в новых версиях МV сами будут это делать

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
Благодарю вас. Помогло

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
liquibase опирается на databasechangeloglock, которому нужно уметь UPDATE в таблицу. В этом месте придется как-то костылить. Мы решили дождаться поддержки UPDATE.
Ну если databasechangeloglock сделать на движке например ReplacingMergeTree или CollapsingMergeTree - то вроде должно взлететь. А настоящих UPDATE скорее всего долго ещё не будет, в начале только ALTER .. UPDATE.

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

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

Дмитрий
26.03.2018
14:49:13
Что такое "ALTER .. UPDATE" и чем он отличается от обычного UPDATE?
Сложно консистентно держать две таких таблицы на разных репликах. Что произойдет если два инстанса покатят схему одновременно и возьмут лок на разных серверах? Хорошо, если Exception.

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
всем привет, скажите а кликхаус отправляет в заголовке ответов информацию о колонках для join запросов?
не понимаю вопрос. Заголовки с информацией о колонках при ответе на любой запрос (хоть с join хоть без join) отправляются если используемый формат это предусматривает

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

и т.п.

Alexey
26.03.2018
15:50:02
Всем привет. Хотелось бы попасть на "Я.Субботник по базам данных" на этой неделе. Можно как-то увеличить вероятность одобрения завявки?
Если там не будет слишком большого количества участников, то просто придёт подтверждение позже.

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

Google
Michal
26.03.2018
16:09:29
Для flyway видел что кто-то реквестовал поддержку кх: https://github.com/flyway/flyway/issues/1772
Хм. Там и пулл-реквест есть https://github.com/flyway/flyway/pull/1773

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
больше ничего найти в документации не удалось
Вернет 1, если в массиве есть значение из IN()

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
больше ничего найти в документации не удалось
Видишь суслика? И я не вижу... А он есть: https://clickhouse.yandex/docs/ru/query_language/queries/#in

Alexey
26.03.2018
16:24:36
SELECT [1,2,3] IN (3) => 1 SELECT [1,2,3] IN (4) => 0
В новых версиях эта функциональность убрана.

antuan
26.03.2018
16:25:13
ясненько

тогда вопрос-любопытство по поводу клиента

Артемий
26.03.2018
16:25:42
В новых версиях эта функциональность убрана.
Будет убрана? У меня сейчас 1.1.54370

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
Будет убрана? У меня сейчас 1.1.54370
Да, действительно. Пока убрано только из документации (особая поддержка для оператора IN, если слева стоит массив).

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

единой таблицей с одним хэдом

Michal
26.03.2018
16:27:56
результат одинаковый, но разный формат
Формат тот же. Можно попросить ClickHouse не разделять блоки FORMAT PrettyCompactMonoBlock

Или просто добавить 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
а вчем суть выноса в отдельную таблицу, там будет тоже самое, сжимаются хорошо

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

Denis
26.03.2018
19:00:22
Спасибо. Правда 54371 ещё не в релизе и не в тестинге. А вы собирали из master или с какими-то ещё добавлениями?
собирал из мастера (не заметил что есть testing релиз) git log commit f1887fe033268eaca6ee72fad950cc8cda4267c2 Merge: db49445 9ba2866 Author: alexey-milovidov <milovidov@yandex-team.ru> Date: Mon Mar 26 01:45:29 2018 +0300

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'

Страница 471 из 723