
Alexey
21.02.2018
21:14:52
И значит задача - посмотреть, почему есть столько запросов. Если среди них много однородных, то их можно объединить вместе в один запрос...

Google

Alexey
21.02.2018
21:27:02

∀
21.02.2018
21:28:23
спасибо!

Roman
21.02.2018
21:32:01
периодически не можем вставить данные с ошибкой
2018.02.21 23:31:09.799732 [ 20 ] <Error> executeQuery: Code: 36, e.displayText() = DB::Exception: Element of set in IN or VALUES is not a constant expression: I, e.what() = DB::Exception (from 193.187.80.17:46838) (in query: INSERT INTO ipfix (EventDate,ipVersion,flowStartSysUpTime,flowEndSysUpTime,packetDeltaCount,octetDeltaCount,sourceTransportPort,destinationTransportPort,protocolIdentifier,sourceIPv4Address,destinationIPv4Address) VALUES), Stack trace:
0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x3317996]
1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x131a3df]
2. clickhouse-server(DB::evaluateConstantExpression(std::shared_ptr<DB::IAST> const&, DB::Context const&)+0xd16) [0x2bcf126]
буду рад хоть какой-нибудь подсказке которая поможет - идей нет


Alexey
21.02.2018
21:34:00
периодически не можем вставить данные с ошибкой
2018.02.21 23:31:09.799732 [ 20 ] <Error> executeQuery: Code: 36, e.displayText() = DB::Exception: Element of set in IN or VALUES is not a constant expression: I, e.what() = DB::Exception (from 193.187.80.17:46838) (in query: INSERT INTO ipfix (EventDate,ipVersion,flowStartSysUpTime,flowEndSysUpTime,packetDeltaCount,octetDeltaCount,sourceTransportPort,destinationTransportPort,protocolIdentifier,sourceIPv4Address,destinationIPv4Address) VALUES), Stack trace:
0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x3317996]
1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x131a3df]
2. clickhouse-server(DB::evaluateConstantExpression(std::shared_ptr<DB::IAST> const&, DB::Context const&)+0xd16) [0x2bcf126]
Это связано с тем, что данные для вставки записаны не в точно ожидаемом формате. Тогда ClickHouse пытается интерпретировать указанное значение как произвольное выражение и затем преобразовать его к нужному типу данных.
Чтобы увидеть более явно, где возникает проблема, выставите настройку input_format_values_interpret_expressions в ноль.


Roman
21.02.2018
21:36:20
Ок. Спасибо. попробую


Alexander
21.02.2018
21:40:16
периодически не можем вставить данные с ошибкой
2018.02.21 23:31:09.799732 [ 20 ] <Error> executeQuery: Code: 36, e.displayText() = DB::Exception: Element of set in IN or VALUES is not a constant expression: I, e.what() = DB::Exception (from 193.187.80.17:46838) (in query: INSERT INTO ipfix (EventDate,ipVersion,flowStartSysUpTime,flowEndSysUpTime,packetDeltaCount,octetDeltaCount,sourceTransportPort,destinationTransportPort,protocolIdentifier,sourceIPv4Address,destinationIPv4Address) VALUES), Stack trace:
0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x3317996]
1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x131a3df]
2. clickhouse-server(DB::evaluateConstantExpression(std::shared_ptr<DB::IAST> const&, DB::Context const&)+0xd16) [0x2bcf126]
У нас сегодня было
insert into clicks_test (date, aff_id) values ("2018-02-21", "b0a8a25f-5d66-44f3-9169-bb7426dc15f7");
INSERT INTO clicks_test (date, aff_id) VALUES
Exception on client:
Code: 36. DB::Exception: Element of set in IN or VALUES is not a constant expression: 2018-02-21
а это вставилось:
insert into clicks_test (date, aff_id) values ('2018-02-21', 'b0a8a25f-5d66-44f3-9169-bb7426dc15f7');
values с двойными кавычками не проходит, а с одинарными проходит


Roman
21.02.2018
21:44:24
Смущыет что проблема "плавяющая" может вставить 500000 записей без проблем и потом может падать
Направление понял, будем смотреть.

Vladislav
21.02.2018
21:49:26

Google

Vadim
22.02.2018
02:29:21

Илья
22.02.2018
04:58:01
Доброе утро. Люди работающие с catboost (не нашел отдельного "живого" паблика :) ) подскажите пожалуйста. Насколько реально и целесообразно учить catboost парсить логи ?? Есть логи, где состав полей постоянно меняется, конечно же на perl уже написан рабочий быстрый парсер, но появилась идей проверить как сеть может справиться с этой задачей? Т.е. на вход строки лога сырые, на выход json, или любая коллекция Ключ=Значение. Может быть такое что catboost будет это делать достаточно быстро?
А и еще, я вообще не шарю в нейросетях, машинном обучении и т.д. :(
Собственно поэтому и спрашиваю :)

Stas
22.02.2018
05:25:32

Илья
22.02.2018
05:29:06
Т.к. стало интересно уже начал изучать данную тему. Но хотелось бы узнать мнение уже знающих людей именно по описанному сценарию. Просто если удастся добиться каких то приемлемых результатов (по мнению знающих) то начну данный сценарий реализовывать для проверки, со всеми вытекающими :)

Stas
22.02.2018
05:36:23

Илья
22.02.2018
05:40:49
Это понятно что обучать нужно реальных логах.
Логи выглядят следующим образом
Т.е. в зависимости от типа событий состав полей разный бывает

Tima
22.02.2018
05:48:55
Т.е. в зависимости от типа событий состав полей разный бывает
Можно посоветовать лишь что-то типа key-value базы данных (redis, cassandra или даже mongodb), куда писать распарсеные из файла данные. И дальше уже имея более гибкий и быстрый доступ к данным - заливать в КХ или куда ещё нужные поля в нужном формате
Ваша задача вообще никаким боком к анализу данных. У нас на работе тоже пытались на стороне пользователя js-ом парсить данные, от нас же, через сети Хопфилда?

Илья
22.02.2018
05:54:21
Ясно) Спасибо

Stas
22.02.2018
05:57:33
Далее делаем широкую таблицу на лету и скармливаем её Catbost’у

Tima
22.02.2018
06:02:14
Т.е. в монге храню неструктуированные данные, а в базах типа мускуля и КХ - структуированные типизированные данные

Stas
22.02.2018
06:06:13

Tima
22.02.2018
06:08:22

Stas
22.02.2018
06:09:02

Google

Tima
22.02.2018
06:09:49

Stas
22.02.2018
06:11:20

Tima
22.02.2018
06:19:33
Правда в вертике, но всё же

Александр
22.02.2018
06:40:01
У нас тоже монга. Вот буквально вчера строил индекс и увидел кол-во документов.
Index Build (background) Index Build (background): 917813414/992020960 92%
Вполне отлично живем на монге :)
Мы из нее берем данные и складываем в более узкую таблицу в Clickhouse и по ней агрегируем данные

Tima
22.02.2018
06:51:35

Roman
22.02.2018
07:51:02
как сделать input_format_values_interpret_expressions=0 ? В инструкии не нашел как-то.

Kirill
22.02.2018
07:58:19

Roman
22.02.2018
08:22:13
такое ощущение что в какой-то момент съезжает блок вставки значений в CH. Проверили запрос - формируется корректно, но ошибка вот такая: 2018/02/22 10:19:46 Error: %!(EXTRA *clickhouse.DbError=clickhouse error: [27] DB::Exception: Cannot parse input: expected , before: IPv4StringToNum(\'94.100.180.55\'),IPv4StringToNum(\'5.59.45.214\')),(\'2018-02-22\',4,538449350,538449350,1,52,443,50604,6,IPv4StringToNum(\'87.250.251.60\'),IPv4Strin: (at row 1)

Egor
22.02.2018
08:28:27
такое ощущение что в какой-то момент съезжает блок вставки значений в CH. Проверили запрос - формируется корректно, но ошибка вот такая: 2018/02/22 10:19:46 Error: %!(EXTRA *clickhouse.DbError=clickhouse error: [27] DB::Exception: Cannot parse input: expected , before: IPv4StringToNum(\'94.100.180.55\'),IPv4StringToNum(\'5.59.45.214\')),(\'2018-02-22\',4,538449350,538449350,1,52,443,50604,6,IPv4StringToNum(\'87.250.251.60\'),IPv4Strin: (at row 1)
Откуда вставляется?

Roman
22.02.2018
08:29:37
мы принимаем поток IPFIX на свой обработчик, формируем на нем пачки по 500000 записей и вставляем в CH. Сейчас будем проверять источник данных.
формируем запрос библиотекой github.com/roistat/go-clickhouse

Egor
22.02.2018
08:31:31

Tima
22.02.2018
08:32:23
такое ощущение что в какой-то момент съезжает блок вставки значений в CH. Проверили запрос - формируется корректно, но ошибка вот такая: 2018/02/22 10:19:46 Error: %!(EXTRA *clickhouse.DbError=clickhouse error: [27] DB::Exception: Cannot parse input: expected , before: IPv4StringToNum(\'94.100.180.55\'),IPv4StringToNum(\'5.59.45.214\')),(\'2018-02-22\',4,538449350,538449350,1,52,443,50604,6,IPv4StringToNum(\'87.250.251.60\'),IPv4Strin: (at row 1)
Такое бывает когда в исходных данных нет значения, а коде формирования батча не учитывается это и не проставляются дефолтные значения для каждого из типов.
Например в данных нет даты, тогда в строку для КХ нужно ставить '0000-00-00', иначе при вставке столбцы "поедут"

Egor
22.02.2018
08:32:45
пакеты размером около 30-40кб, а буфер мог вмещать всегшо 8кб
и пакет резался.

Aleksandr
22.02.2018
09:03:11
Приветствую. А тут можно задавать вопросы по Tabix? Есть одна проблема, может кто в курсе как ее устранить.

Артемий
22.02.2018
09:21:17

Google

Aleksandr
22.02.2018
09:24:43
не правильное отображение поля Int64 , есть поле в котором идет так:
Значение записаное - 1519274696510074922
Значение которое отображается - 1519274696510074880
Значение которое копируется - 1519274696510075000
Версия табикса самая последня - 18.02.2
Использую build версию которая
в одной из версий данный баг был пофикшен, если я не ошибаюсь это была бета версия 17.10.3
не давно обновился до 18.02.2 и снова появилась ошибка

Alexey
22.02.2018
09:32:30
К слову, я тут сейчас смотрю в select * from system.parts и вижу там популярную дату '1970-01-01 86:28:15'. Это нормально?)

Александр
22.02.2018
09:32:53
Всем привет. Есть вопрос по визуализации запроса к КХ в Grafana - потратил кучу времени, не могу найти решение.
Не получается вывести график с группировкой по дате.
Запрос возвращает данные такого вида:
┌──────────t─┬─ClickY─┬─GlickG─┐
│ 2018-01-01 │ 48458 │ 195892 │
│ 2018-01-02 │ 51356 │ 205198 │
│ 2018-01-03 │ 55770 │ 221476 │
│ 2018-01-04 │ 68547 │ 223475 │

Jen
22.02.2018
09:34:34
и в чем проблема?
графана с полпинка заводится :)
правда ей две колонки типа Date и DateTime нужны, если не ошибаюсь

Александр
22.02.2018
09:36:15

Jen
22.02.2018
09:36:26
toDateTime?
SELECT (intDiv(toUInt32(toStartOfMinute(date)), 2) * 2) * 1000 as t, sum(uplink) as SocialNets_uplink, sum(downlink) as SocialNets_downlink FROM ipdr_day.grafana_services WHERE month BETWEEN toDate(1509035744) AND toDate(1509042234) AND toStartOfMinute(date) BETWEEN toDateTime(1509035744) AND toDateTime(1509042234) and service = 'SocialNets' GROUP BY t ORDER BY t
такой запрос у меня генерирует графана, можно нечто подобное самому сообразить без встроенных макросов, только в нужное место вставить toDateTime

Александр
22.02.2018
09:38:41
спасибо, сейчас попробую

Jen
22.02.2018
09:39:07
макросами удобно пользоваться, когда Date и DateTime в разных колонках есть

Александр
22.02.2018
09:40:42
toDateTime() спас меня - не находил эту функцию в доке=)
точнее, она там есть в примерах, но не в списке функций
спасибо!))

Jen
22.02.2018
09:40:56
нзч :)

Александр
22.02.2018
09:41:02
завелось

Google

Артемий
22.02.2018
09:48:40
Это нулевая дата по UTC +N преобразуется в такой вид

Maksim
22.02.2018
10:04:06
Привет всем
Дано:
1. Старый кластер клика обновляется до актуальной версии
2. добавляется новая машина
3. попытка выполнить креейт тейбл взятый со старой тачки
.....
ENGINE = ReplicatedMergeTree('/clickhouse/tables/01/gm_vip_buy', '{replica}', EventDate, intHash32(gbId), (gbId, tWhen), 8192)
Received exception from server (version 1.1.54343):
Code: 36. DB::Exception: Received from ............:9000. DB::Exception: Sampling expression must be present in the primary key.
есть кто сталкивался?

Александр
22.02.2018
10:22:46
Я на память не помню как именно, но и в доке вроде бы нет еще это штуки, зато, есть на гитхабе где то в тестах. Не могу поискать, с телефона неудобно (

Maksim
22.02.2018
10:24:33
ща посмотрю

Александр
22.02.2018
10:28:24
Там что-то из серии ceate table ... order by ... sample by ...

Maksim
22.02.2018
10:32:42
ага https://github.com/yandex/ClickHouse/blob/fbef2a9816478899d3869e6c295727f24f925b2e/dbms/src/Parsers/ParserCreateQuery.h
190 /** ENGINE = name [PARTITION BY expr] [ORDER BY expr] [SAMPLE BY expr] [SETTINGS name = value, ...] */
спасибо
https://github.com/yandex/ClickHouse/blob/f1cfca40b8ee95807ac31ac4663ad75872e85239/docs/ru/table_engines/custom_partitioning_key.md во даже в доке есть

Roman
22.02.2018
10:38:33
Нашли причину - если не использовать функцию "IPv4StringToNum" в запросе к СH - все нормально вставляется. Реализовали свою имплементацию IPv4StringToNum на go. Все чудесно вставяется мультиинсертом.

Maksim
22.02.2018
11:27:55
Там что-то из серии ceate table ... order by ... sample by ...
переписал на новый лад, и ...
ENGINE = ReplicatedMergeTree('/clickhouse/tables/01/gm_vip_buy', '{replica}')
PARTITION BY EventDate
ORDER BY intHash32(gbId)
SAMPLE BY (gbId, tWhen)
Received exception from server (version 1.1.54343):
Code: 36. DB::Exception: Received from .....:9000. DB::Exception: Sampling expression must be present in the primary key.
существует ли способ обрать семплирование? в проблемных таблицах всеоавно его не применяем