
?
05.08.2018
15:47:54
можно как-то дропнуть таблицы по маске имени?
то есть вот так я их могу выбрать
select name FROM system.tables WHERE name like '%__tmp%'
а как дроп прикрутить?

Robert
05.08.2018
15:50:58
может выгрузить названия таблиц в файл через 'DROP TABLE ' || tablename; его потом запустить через параметр в clickhouse-client

?
05.08.2018
15:56:04
да, спасибо, как вариант, думал может есть что-то с меньшим количеством шагов

Robert
05.08.2018
16:18:34
Ну и еще один вопрос. Если у меня есть таблица-полу-справочник (больше 1 млн записей), в которых регулярно происходят обновления атрибутов. Я ее объявляю таким образом.
CREATE TABLE runner_catalog
(
selection_id UInt64,
runner_name String,
handicap UInt64,
sort_priority UInt8,
version UInt64
)
ENGINE = ReplacingMergeTree(version)
PARTITION BY intHash64(selection_id)
ORDER BY (selection_id, runner_name);
Я все правильно делаю? В качестве первичного ключа исползьую selection_id. Но из документации, не совсем понял зачем указывать ORDER BY.

Google

Robert
05.08.2018
16:19:21
Меня смущает, что в документации написано, что слияние происходит в фоне. Значит ли это, что можно столкнуться с ситуацией, когда в таблице runner_catalog будет больше одной записи с одинаковым selection_id?

Alexander
05.08.2018
16:57:21
А то, что вы называете первичным ключем - это секция order by (при этом это все же не совсем первичный ключ, это ключ сортировки)

Robert
05.08.2018
16:59:48
да, не нужен. Спасибо.

Alexander
05.08.2018
17:00:10
И да, записи с одним ключем будут повторяться в какие- то моменты времени. Это решается либо вызовом optimize, либо запросом с группировкой

Robert
05.08.2018
17:00:56
Спасибо. Получилось так.
create table runner_catalog (
selection_id UInt64,
runner_name String,
handicap UInt64,
sort_priority UInt8,
version UInt64)
Engine = ReplacingMergeTree(version)
ORDER BY (selection_id);

Fedor
05.08.2018
21:35:27
https://youtu.be/PLMSA_gDdyM
А есть следующий уровень? =)
У меня нездоровый, можно даже сказать, академический, интерес к представлению данных.
На 10:55 Алексей рассказывает "Как работает индекс". Он упоминает файлы индекса (primary.idx), засечек (.mrk) и данных (.bin). С кем можно обсудить формат этих файлов?
https://www.youtube.com/watch?v=PLMSA_gDdyM&t=655

Robert
05.08.2018
22:28:10
@fediq , исходники?

Fedor
05.08.2018
22:29:43
Обсуждать с исходниками - это когда тебя совсем никто не любит. =(

Pavel
05.08.2018
22:38:38
зато они никогда не введут в заблуждение, даже невольно

Roman
05.08.2018
23:24:22
@fediq https://events.yandex.ru/lib/talks/5800/
Вот хороший обзор внутренностей MergeTree движка

Александр
05.08.2018
23:33:02
open ! = free

Google

Fedor
05.08.2018
23:36:45
Тоже вариант. В ПМ?

Anton
06.08.2018
05:06:07
Добрый день.
Может еще кто то знает еще одна ошибка
Очистка Materialized View работает только на том сервере, где была создана, на любых других выходит ошибка:
ip-172-31-16-10.us-west-2.compute.internal :) truncate table db1.r_test_transactions;
TRUNCATE TABLE db1.r_test_transactions
Received exception from server (version 18.6.0):
Code: 48. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Can't proxy this query. Unsupported query type.
0 rows in set. Elapsed: 0.080 sec.
А тут Materialized View была создана и все работает:
ip-172-31-16-11.us-west-2.compute.internal :) truncate table db1.r_test_transactions
:-] ;
TRUNCATE TABLE db1.r_test_transactions
Ok.
0 rows in set. Elapsed: 0.047 sec.
Это ошибка CH или я опять где-то что то не так делаю?


Gulya
06.08.2018
05:50:46
Подскажите пожалуйста, ClickHouse не позволяет создавать таблицы с одинаковыми наименованием столбцов? engine = log, Хотела создать таблицу, которая имеет пару одинаковых наименования полей как в ранее созданных таблиц, тогда выдает ошибку DB::Exception: Column ID already exists.
Это из за того что движок LOG или в целом clickhouse не позволяет повторение наименование столбцов
новичок в ClickHouse, подскажите плиз не моге найти инфу

Victor
06.08.2018
05:54:04
одинаковые столбцы это как?
Это вообще законно?

Stanislav
06.08.2018
05:55:17
А какая бд позволяет?

Gulya
06.08.2018
05:57:16
У меня ранее скажем создана таблица "A" с колонками (id Int32, Name String) engine = log, и скажем я пытаюсь создать таблицу "B" с колонками ( id Int32, City String) engine = log
и тогда у меня возникает ошибка DB::Exception: Column ID already exists.
Кажется я поняла в чем причина

Robert
06.08.2018
06:39:01
Gulya, в чем? Тоже интересно стало.

Kirill
06.08.2018
06:46:43

Sergey
06.08.2018
06:47:45

Dmitry
06.08.2018
07:42:29
Народ
такая штука select one, 2 as one from (select 1 as one, 2 as two)
в результате будет 2 2, а не 1 2
это баг или фича ?

Google

antuan
06.08.2018
07:44:07
А если select one, select 2 as ne_one...?

Dmitry
06.08.2018
07:45:03
если алиасы разные будут то значения правильные вернутся
получается что при таком запросе insert into table (id, name) select 2 as id, 'test' as name, from table where id = 1
выбирается на запись с id = 1, а запись с id 2

Dima
06.08.2018
08:39:38
Здравствуйте
Кто-то сталкивался с подобной проблемой: "Poco::Exception. Code: 1000 ... Malformed message: Field value too long/no CRLF found"?
Отправляю external_data через curl. Передаю список. Если длинной менее 1000, все ок. Больше - ошибка
Через клиент все работает без проблем.

Дмитрий
06.08.2018
08:53:10
привет всем, а у кого-то есть пример как залить сsv в кликхаус на golang?

Max
06.08.2018
08:54:43

Denis
06.08.2018
08:54:53
зачем голанг, если есть cli?

Дмитрий
06.08.2018
08:55:16

Denis
06.08.2018
08:55:59
clickhouse-client умеет csv закидывать на серввер

Дмитрий
06.08.2018
08:56:16

Max
06.08.2018
08:59:44
Пост запрос в теле цсв а урл "/query=insert into TABLENANE format csv"

Дмитрий
06.08.2018
09:00:46

Combot
06.08.2018
09:00:46
Дмитрий Мищенко (0) увеличил репутацию Max Grigoriev (1)

Denis
06.08.2018
09:02:11
через cli:
clickhouse-client --host=... --query="INSERT INTO ... FORMAT CSV" < /path/to/data.csv

Alexander
06.08.2018
09:04:25
/stat@combot

Combot
06.08.2018
09:04:26
combot.org/c/-1001080295593

Dmitriy
06.08.2018
09:33:32
Всем доброго дня! Ребят подскажите или киньте ссылочку где можно почитать, каким способом кроме пересоздания таблицы можно изменить параметры внутри Engine? Есть таблица с типом SummingMergeTree с явным указанием колонок для суммирования, нужно добавить еще одну колонку в таблицу и включить её в колонки для суммирования! Спасибо!
А лучше всего как убрать с Engine явно заданные колонки, чтобы остался просто ключ по которому будет идти суммирование

Google

Dmitry
06.08.2018
10:06:31

Dmitriy
06.08.2018
10:35:15

Combot
06.08.2018
10:35:16
Dmitriy Lazarchuk (0) увеличил репутацию Dmitry Alekseev (1)
combot.org/c/-1001080295593

Alexey
06.08.2018
11:21:18

Ivan
06.08.2018
11:39:49
Читал в этом чате что в конец ключа можно добавлять, вроде даже тесты на эту фичу написаны

molo4ko
06.08.2018
12:53:58
кстати, рендерер md->html не работает с картинками, кажется
в md на гитхабе все в порядке

Kirill
06.08.2018
13:00:17

Вячеслав
06.08.2018
13:33:56
Привет!
Увидел в тикете на github (https://github.com/yandex/ClickHouse/issues/1178) такую конструкцию: OPTIMIZE TABLE tablename [FINAL] DEDUPLICATE;
Про DEDUPLICATE в документации ничего не нашел. Кто нибудь знает что именно делает DEDUPLICATE и работает ли это вообще?

Vasilij
06.08.2018
14:16:42
А кто-нибудь пользуется Kafka и кворумной записью? Не возникнет ли там каких-то граблей?

Evgeny
06.08.2018
14:28:57
А есть какой-то магический вариант задавать в самом начале запроса переменную которая потом будет использоваться в запросах включая подзапросы?

Alexander
06.08.2018
14:32:17
WITH expr AS ident SELECT ...

Roman
06.08.2018
14:34:33
Если бы еще табикс можно как-то приучить нормально форматировать такие выборки :)

Evgeny
06.08.2018
14:39:28

Vladimir
06.08.2018
14:55:34
Всем привет! Подскажите, пожалуйста, как использовать IPv4StringToNum в JDBC
Пытаюсь sendRowBinaryStream stream.writeString("IPv4StringToNum(" + lfadto.getIp4() + ")") , строка вставляется, но что-то явно идет не так. Переписываются другие поля

Roman
06.08.2018
15:12:56
Подскажите пожалуйста, как использовать кликхаус в качестве backend'а в проекте django?

Pavel Tyavin
06.08.2018
15:39:07

Roman
06.08.2018
15:39:47
Да только чтение

Google

Pavel Tyavin
06.08.2018
15:40:47
Ну тогда использование orm неоправданно. Просто обращайтесь к вашим ch-табличкам через http интерфейс.

Roman
06.08.2018
15:41:42
Хорошо, а если понадобится запись?

Vsevolod
06.08.2018
15:46:52
а можно ли в tsv поставить значение today() в поле типа Date?

Sergey
06.08.2018
18:41:22

Dmitriy
06.08.2018
18:41:23

Sergey
06.08.2018
18:46:00

Roman
06.08.2018
18:57:49

Sergey
06.08.2018
19:15:32
Что тогда посоветуете?
Ничего. :) На деле кворум и Кафка — это разные штуки. Мы об кворум бились при разных источниках данных. Возможно, выкрутитесь через "не получил 200, попробуй записать ещё раз", но, емнип, тут мы уже огребали с дедупликацией, но толком уже не помню.
А Кафка норм, как накопитель вполне. Тут ещё несколько человек её так используют.
Да и зачем? Сила евойная в аналитике, которую можно спихнуть на базу и она не крякнет. Аналитику сию делать на таблицах с большим количеством колонок. Соответственно, у вас и модели раздутые будут. А полезные запросы всё равно вне ORM писать. Если вам всё-таки тут прям очень нужен ORM, кажется, проще наваять своё ровно под свои задачи.

antuan
06.08.2018
19:24:18
алхимию пользуем в связке с кх, особо не жалуемся
благо что запросы там можно какие угодно строить