
Гаврилов
20.03.2018
08:54:30
я думал например, создаю стринг поле с чистыми словами
и по нему ищу лайком
и отдельно лежит json объект для отдачи

Дмитрий
20.03.2018
08:56:54
А какую задачу вы пытаетесь решить? Для чего нужен кликхаус в этом месте?

Google

Alexander
20.03.2018
08:59:17
Ребят, вопрос по обновлению внешних словарей.
КХ каждый раз обновляет словарь полностью? Или есть возможность каким то образом обновить только те данные, которые обновились во внешней бд? Интресует Mongo как источник.

Wolf
20.03.2018
09:02:24
А как вы себе представляете обновить только измененные данные ? В любом случае тогда надо будет отправить данные которые есть в кх в монгу чтобы она знала что обновилось, так уж проще селекнуть все сразу и обновить все.

Alexander
20.03.2018
09:07:39
У меня в монге 1 млрд записей (которые постоянно обновляются), хочу ее подсоединить как внешний словарь к кх. Вот и спрашиваю мб есть какие алгоритмы, чтоб каждый раз не копировать в словарь весь миллиард записей
или это bad practice создавать такие объемные словари?

Гаврилов
20.03.2018
09:11:57
сейчас сущности лежат в постгресе
но постгрес на лайках умирает

Tima
20.03.2018
09:12:31

Andrey
20.03.2018
09:12:32

Alexander
20.03.2018
09:13:48
Ок,понял
Спасибо!

Tima
20.03.2018
09:13:48

Kirill
20.03.2018
09:15:19

Гаврилов
20.03.2018
09:15:45
чтото я не знаю в постгресе индекса, который умеет в лайки

Google

Гаврилов
20.03.2018
09:15:54
полнотекстовый поиск нормально

Дмитрий
20.03.2018
09:18:58
текстовый поиск по сущностям
Тогда вам лучше всё таки рассмотреть для себя elasticsearch или что-либо похожее вместо кликхауса. Кликхаус чуть меньше в этом случае подходит для строк, хотя и будет с ними работать, возможно даже быстрее постгре. Бывают случаи когда можно хранить текстовую составляющую в одной базе например эластик/монго, доставать из неё определенные идентификаторы данных и уже с ними идти в кликхаус за значениями но если у вас только поиск значений по тексту - документы эластика подойдут.

Гаврилов
20.03.2018
09:19:56
я думал первоначально в постгресе хранить только текст по которому искать

Kirill
20.03.2018
09:20:11

Гаврилов
20.03.2018
09:20:13
а сами объекты в постгресе
спасибо, я чото индесты только в доке искал
не смотря в расширения

Andrey
20.03.2018
09:26:34
Всем привет!
Всем привет!
подскажите, как увеличить количество тредов занимающихся в фоне мержами? мне нужно это ускорить для того чтобы не получать Too much parts. Merges are processing significantly slower than inserts
Я вижу что ни по диску, ни по сети, ни по cpu у меня кластер не загружен, а мёржить он не успевает.
Может можно увеличить треды для этой задачи?

Kirill
20.03.2018
09:38:44
Вам скорее всего нужно смотреть не в сторону увеличения тредов (background_pool_size), а разобраться почему у вас мержи не успевают, возможно вы слишком часто пишите

Alexey
20.03.2018
09:42:01
и слишком мелкими порциями

Andrey
20.03.2018
09:47:46
Я пишу в 200 потоков пачками по 250000 записей.

Wolf
20.03.2018
09:50:29
Это зря
Пишите реже но большими порциями
В кх хорошо вставлять скажем раз в секунду , а ваши двести потоков поди 200 раз в секунду вставляют

Pavel
20.03.2018
10:35:45
Всем привет. Похоже default expression не работает в последней версии.
event_time DateTime DEFAULT now() - 0000-00-00 00:00:00

Alexander Nairashvili
20.03.2018
10:36:58
кто нибудь пытался прикрутить дашборд chproxy к графане?
не получается ни валидировать data source, ни отрисовать дашборд, везде сыпятся ошибки вида
unsupported path: "/metrics/api/v1/query_range"
chproxy, вроде как, и не поддерживает данные эндпоинты

Alex
20.03.2018
11:27:58

Google

Alex
20.03.2018
11:28:01
:) create temporary table tmp (x UInt32, t DateTime default now())
CREATE TEMPORARY TABLE tmp
(
x UInt32,
t DateTime DEFAULT now()
)
Ok.
0 rows in set. Elapsed: 0.127 sec.
:) insert into tmp (x) values (1)
INSERT INTO tmp (x) VALUES
Ok.
1 rows in set. Elapsed: 0.025 sec.
:) select * from tmp
SELECT *
FROM tmp
┌─x─┬───────────────────t─┐
│ 1 │ 2018-03-20 14:26:25 │
└───┴─────────────────────┘
1 rows in set. Elapsed: 0.001 sec.
Какой CREATE TABLE у таблицы, как вставляете?


Artem
20.03.2018
12:00:15
Товарищи, подскажите, пожалуйста: есть ли функция для нумерации уникальных значений в кликхаусе?
Поясню на примере:
select enumerate(z),* from (
select 1 as x, 1 as y, 2 as z
union all
select 1 as x, 1 as y, 3 as z
union all
select 1 as x, 2 as y, 3 as z)
Вот нужна волшебная функция enumerate, которая бы пронумеровывала уникальные комбинации x (т.е. вернула бы значения 1,2,2). В идеале с возможностью указания сортировки
Или единственный способ-засунуть результат запроса во временную таблицу и там сделать group by, order by, rowNumberInAllBlocks, а потом приджоинить назад?
Но в таком случае у меня проблемы с нуллами появляются. Джоин по ним работает совсем не так как мне нужно :)
Да и производительность сильно хромает.
Подскажите, пожалуйста, куда копать?

papa
20.03.2018
12:02:45
SELECT arrayEnumerateUniq([1, 2, 3, 1, 2, 1])
┌─arrayEnumerateUniq([1, 2, 3, 1, 2, 1])─┐
│ [1,1,1,2,2,3] │
└────────────────────────────────────────┘
или вам не эти уникальные значения.

Artem
20.03.2018
12:08:50
это функция для работы с массивом. И она наоборот, нумерует дубликаты по сути

papa
20.03.2018
12:13:05
то есть вы хотите отобразить значения некоторого выражения в отрезок целых чисел 1..N, причем порядок для этого отображения взять откуда-то из запроса. звучит очень оконно, и кажется плохо работает в распределенном случае.

Artem
20.03.2018
12:17:48

Pavel
20.03.2018
12:48:15

Илья
20.03.2018
15:30:02
Подскажите, пожалуйста, а есть ли возможность сделать на одном сервере КХ запрос к другому серверу КХ? например, прилинковать через ODBC?

prll
20.03.2018
15:32:04
можно словарь clickhouse использовать

Илья
20.03.2018
15:32:04
изврат, конечно.. но иногда требуется делать небольшие выгрузки ручками. оптимально поднять КХ и прилинковать туда всё что можно

Kirill
20.03.2018
15:34:30
У КХ есть функция remote

Alexey
20.03.2018
15:34:47
https://clickhouse.yandex/docs/ru/single/?query=remote#remote

Илья
20.03.2018
15:36:39

Anton
20.03.2018
15:52:51
День добрый. Имеем дамп из монги и хотим поэксперементировать с переливом и выборкой данных в CH.
Вливаем так:
cat dump.json| clickhouse-client --input_format_skip_unknown_fields=1 --query="INSERT INTO table FORMAT JSONEachRow"
на выходе
Code: 117. DB::Exception: Unexpected nested field for key '_id'
Есть ли возможность пропускать "кривые" поля без переформатирования дампа?
Я так понимаю всё дело в фориате хранения id записи монгой
{"_id":{"$oid":"5a497a00aaabf03ff7ea8bdb"}, ... }

antuan
20.03.2018
15:56:23
Мб заюзать упомянутый выше remote, и - инсерт фром селект?
:)

Anton
20.03.2018
15:57:25
Словарь же сохраняется в памяти я так понимаю...
да и remote для запросов между CH и CH

Google

antuan
20.03.2018
15:59:30
:(

Anton
20.03.2018
16:14:29
А ещё КХ игнорирет пустые значения в CSV и пытается распарсить запятую и следующие за ней символы ?
Code: 27. DB::Exception: Cannot parse input: expected [ at end of stream.: (at row 1)
Row 1:
Column 0, name: ts, type: UInt32, parsed text: "1514764800"
Column 1, name: id, type: UInt32, ERROR: text ",0,0,1,20," is not like UInt32
когда в данных
1514764800,,0,0,1,20,,,

papa
20.03.2018
16:15:52
но ведь пустая строка это не uint32

Anton
20.03.2018
16:15:54
Ну или я не знаю как его готовить )
а nullable как его сделать?

Alex
20.03.2018
16:16:39
Должен пустые значения как 0 интерпретировать
То, что у вас там квадратная скобка, говорит, что где-то массив путается :)

Anton
20.03.2018
16:19:52
и вместо пустого массива должно быть [] да...

Tima
20.03.2018
16:21:33

Anton
20.03.2018
16:22:23

Tima
20.03.2018
16:34:13

Sergei
20.03.2018
17:02:39
Добрый вечер. Подскажите плз как узнать какая из нод обрабатывает запрос? Можно ли эти данные получить с результатом?

Wolf
20.03.2018
17:06:29
скорее нет чем да
можно в целом самому посмотреть какая нода обрабатывает

Ivan
20.03.2018
17:08:28

Sergei
20.03.2018
17:10:55
спасибо!

Андрей
20.03.2018
18:17:03

Roman
20.03.2018
18:28:01

Андрей
20.03.2018
18:45:03
А, так это ваше последнее сообщение было. Я не сопоставил ник и имя :)

Google

Андрей
20.03.2018
18:47:04
Тогда пойду спрошу у разработчика плагина для заббикс, что и как.

Alexandr
20.03.2018
19:40:54
Дрбрый вечер, имеется небольшая таблица
CREATE TABLE mqttdata (
topic String,
ts UInt64,
v Float32,
d Date MATERIALIZED toDate(ts),
dt DateTime MATERIALIZED toDateTime(ts)
) ENGINE = MergeTree(d, (topic, dt), 8192);
пытаюсь сделать выборку всех данных за сутки но усреднить значения для помещения их на график, подскажите пожалуйста в какую сторону копать что-бы запрос вернул значения по 1 часу или допустим из всех значений сделал 100 усредненых значений и часов от общего количества записей за день?

papa
20.03.2018
19:46:14
а как вы это обычно в sql делаете?

Alexandr
20.03.2018
19:51:26
Пытаюсь сделать так
SELECT
toStartOfHour(toDateTime(dt)) as t,
v,
topic
FROM
mqttdata
WHERE
ts > 1521572835 and ts < 1521579599
GROUP BY
topic,
t,
v
LIMIT
500
но это не совсем верно

papa
20.03.2018
19:52:32
а усредненные значения - это avg(v) ?

Alexandr
20.03.2018
19:53:12

papa
20.03.2018
19:53:41
хорошо. и чем именно неверно?

Alexandr
20.03.2018
20:01:54
Кажется все правильно, просто в записях был пустой промежуток и сбил меня с толку.

Konstantin
20.03.2018
20:35:14
а может кто знает, я вот часто вижу тут в группе, что время хранят в интовом таймстампе, а колонку Date для MergeTree материализуют из нее
это какой-то бест практис или что-то еще?

Anton
20.03.2018
20:40:42
Просто так проще :-) и портабельно

Denis
20.03.2018
21:36:44
А я правильно понимаю, что поля MATERIALIZED вычисляются при инсерте и далее ХРАНЯТСЯ в таблице?
(но если поле добавили, то для старых строк вычислится при select на лету)

Vitaliy
20.03.2018
21:40:14


Renat
20.03.2018
23:19:25
кто-нибудь сталкивался с сегфолтами на версии 1.1.54343? Упало почти одновременно на двух нодах
2018.03.20 22:37:38.616560 [ 78 ] <Error> ExternalDictionaries: Cannot update external dictionary 'meta_internal_id', leaving old version: Poco::Exception. Code: 1000, e.code() = 2027, e.displayText() = mysqlxx::BadQuery: Malformed packet (10.128.0.6:3306), e.what() = mysqlxx::BadQuery
2018.03.20 22:37:42.908631 [ 8813 ] <Error> BaseDaemon: ########################################
2018.03.20 22:37:42.908661 [ 8813 ] <Error> BaseDaemon: (from thread 60) Received signal Segmentation fault (11).
2018.03.20 22:37:42.908669 [ 8813 ] <Error> BaseDaemon: Address: NULL pointer.
2018.03.20 22:37:43.004288 [ 8813 ] <Error> BaseDaemon: 0. /usr/bin/clickhouse-server(tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)+0x11b) [0x750a6fb]
2018.03.20 22:37:43.004313 [ 8813 ] <Error> BaseDaemon: 1. /usr/bin/clickhouse-server(tcmalloc::ThreadCache::Scavenge()+0x40) [0x750a820]
2018.03.20 22:37:43.004332 [ 8813 ] <Error> BaseDaemon: 2. /usr/bin/clickhouse-server(std::_Rb_tree<char const*, char const*, std::_Identity<char const*>, std::less<char const*>, std::allocator<char const*> >::_M_erase(std::_Rb_tree_node<char const*>*)+0x155) [0x6a13075]
2018.03.20 22:37:43.004362 [ 8813 ] <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::IParserBase::parse(DB::TokenIterator&, std::shared_ptr<DB::IAST>&, DB::Expected&)+0x14e) [0x6c3056e]
2018.03.20 22:37:43.004370 [ 8813 ] <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::ParserSubquery::parseImpl(DB::TokenIterator&, std::shared_ptr<DB::IAST>&, DB::Expected&)+0xa8) [0x6c562c8]
2018.03.20 22:37:43.004379 [ 8813 ] <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::IParserBase::parse(DB::TokenIterator&, std::shared_ptr<DB::IAST>&, DB::Expected&)+0x1a6) [0x6c305c6]


liebe
21.03.2018
00:14:09
Привет, а как можно заджойнить таблицы по полям UInt32 и Int32 ?
Мне пишет Type mismatch of columns to JOIN by: product_id UInt32 at left, product_id Int32 at right

Alexey
21.03.2018
00:52:03
toUInt32(product_id) as product_id

Kirill
21.03.2018
04:09:37

Vasilij
21.03.2018
06:40:06