@clickhouse_ru

Страница 272 из 723
Konstantin
27.09.2017
09:18:37


<dictionaries> <dictionary> <name>testPSQL</name> <source> <odbc> <connection_string>DSN=myconnection</connection_string> <table>s**************c</table> </odbc> </source> <lifetime> <min>300</min> <max>360</max> </lifetime> <layout> <complex_key_hashed /> </layout> <structure> <key> <attribute> <name>id</name> <type>String</type> </attribute> </key> <attribute> <name>dt</name> <type>String</type> <null_value>null</null_value> </attribute> </structure> </dictionary> </dictionaries>

Исключение почему-то пропало, но всегда отдаются нули
только сейчас заметил, у вас же более 1млн записей в словаре, не?)

Google
Konstantin
27.09.2017
09:27:26
т.е. все заработало?)

Vladimir
27.09.2017
09:27:30
Но этот тип словаря поддерживает такое количество

не-а=)

А какой тип данных у вас используется в постгре для строк?

varchar?

И вы пробовали получить сами значения? Не возвращает ли функция забора всегда значения по умолчанию?

Konstantin
27.09.2017
09:29:43


Vladimir
27.09.2017
09:37:08
Оказывается, словарь нормально подключился. Видимо в запросе я что-то делаю не так. Спасибо

Alexey
27.09.2017
09:39:48
А changelog будет?
Обязательно. Но позже.

Stas
27.09.2017
10:26:15
Господа, а max_memory_usage можно ли как-то задать при работе из веба? а не через родной клиент (там понятно как и все работает)

Igor
27.09.2017
10:30:27
?max_memory_usage=x

Vladimir
27.09.2017
11:54:27
Коллеги, а нет ли у кого-нибудь ссылочки на мануал о том, как из 2х компов собрать кластер для кх? так чтобы аналитик, а не сисадмин справился..

Google
Andrey
27.09.2017
12:05:40
Vladimir
27.09.2017
12:06:39
Репликация не нужна, пока что основная причина расширения - закончилась память на первой машине и добавить нет откуда, зато есть вторая машина

Kirill
27.09.2017
12:06:50
Коллеги, а нет ли у кого-нибудь ссылочки на мануал о том, как из 2х компов собрать кластер для кх? так чтобы аналитик, а не сисадмин справился..
Прям в конфиге config.xml Вписать <remote_servers> <cluster> <shard> <replica> <host>ip-1</host> <port>9000</port> </replica> </shard> <shard> <replica> <host>ip-2</host> <port>9000</port> </replica> </shard> </cluster> </remote_servers> создать на первом и втором сервере обычную таблицу, создать distributed таблицу чтоб с обеих машин данные брала CREATE TABLE distributed_table AS your_local_table Engine = Distributed (cluster, schema, your_local_table, rand());

Vladimir
27.09.2017
12:07:55
У меня непонимание на уровне "как заставить 2 машины видеть друг друга, потом поставить на обе по кх и заставить их подружиться

Kirill
27.09.2017
12:10:49
И еще В /etc/clickhouse-server/users.xml прописать для пользователя которым ходите max_memory_usage, max_bytes_before_external_sort/max_bytes_before_external_group_by (меньше чем max_memory_usage) и distributed_aggregation_memory_efficient = 1 пример <user> <log_queries>1</log_queries> <max_memory_usage>45000000000</max_memory_usage> <max_bytes_before_external_sort>15000000000</max_bytes_before_external_sort> <max_bytes_before_external_group_by>15000000000</max_bytes_before_external_group_by> <distributed_aggregation_memory_efficient>1</distributed_aggregation_memory_efficient> <use_uncompressed_cache>0</use_uncompressed_cache> <load_balancing>random</load_balancing> </user>

Symstriker
27.09.2017
12:22:19
чтобы машины друг друга видели достаточно того что на обеих будет стоять КХ наружу ))

все остальное по списку

Vladimir
27.09.2017
12:29:40
Я же правильно понимаю, что если на 1 машине у меня уже много данных, то при подключение второй я могу за них не переживать - они никуда не денутся?

Kirill
27.09.2017
12:30:54
да

Vladimir
27.09.2017
13:00:10
Подскажите, пожалуйста по внешним словарям. Допусти у меня есть табличка в Postgresql, в которой есть поля с несовместимыми типами. Например, UID, MONEY и т.п. Для того чтобы мне можно было её использовать в качестве внешнего словаря я должен обернуть её во вьюху, в которой я приведу типы к совместимым? Например, UID в String.

Konstantin
27.09.2017
13:02:42
а просто String их не проглатывает?

Vladimir
27.09.2017
13:05:52
Ок, сейчас попробую.

Konstantin
27.09.2017
13:06:35
Ок, сейчас попробую.
в mysql точно varchar норм читается если в словаре String

Vladimir
27.09.2017
13:07:34
Такой ещё вопрос: В таблице PostgreSQL 20 столбцов. Я хочу как словарь использовать только 5 из них. В этом случае достаточно в конфиге перечислить интересующие меня поля или нужно оборачивать во view?

Konstantin
27.09.2017
13:08:25
в mysql достаточно перечислить в словаре названия нужных стобцов

не бойтесь пробовать, словарь легко прощает ошибки =)

Google
Vitaliy
27.09.2017
13:42:58
Блин, лог усыпан Couldn't remove 20170927_20170927_271329_271329_0 from ZooKeeper: no node
А можете полную строку лога привести? Если это в CleanupThread происходит, то тут никакого криминала нет - скорее всего этот кусок был дубликатом. И еще у вас наверное не самая свежая версия, в новой такого логирования уже нет.

Vladimir
27.09.2017
14:10:41
Подскажите пожалуйста, как оптимизировать запрос? Постоянно упираюсь в Memory limit (for query) exceeded:

Нужно понять переходы по сайту для конкретного визита

SELECT visit_id, pageviews, watch_id AS url, referer FROM visits ARRAY JOIN watch_ids AS watch_id ANY INNER JOIN hits USING (watch_id) WHERE (date = '2017-09-26') AND (visit_id = 5648523026255061741)

papa
27.09.2017
14:13:02
фильтр по дате на правую сторону есть?

Vladimir
27.09.2017
14:13:23
поле date есть в обеих таблицах

papa
27.09.2017
14:14:22
я бы написал подзапрос вместо hits

Vladimir
27.09.2017
14:14:31
Но если добавить hits.date = '2017-09-26' то Exception: Unknown identifier: hits.date.

papa
27.09.2017
14:14:44
и не называл слишком много вещей watch_id

join (select from hits where date)

а еще у вас в левом запросе мало данных - хиты одного визита, лучше его сделать правым.

Александр
27.09.2017
14:18:21
А можете полную строку лога привести? Если это в CleanupThread происходит, то тут никакого криминала нет - скорее всего этот кусок был дубликатом. И еще у вас наверное не самая свежая версия, в новой такого логирования уже нет.
Да, ClenupThread. КХ давно не обновлял ) Спасибо, успокоили! Дубликаты были, да, писал несколько раз одни и теже блоки данных. Искал почему некорректные значения пишутся, а я оказывается пихал число за пределами UInt16 в колонку с UInt16 собственно )

papa
27.09.2017
14:19:43
papa
27.09.2017
14:21:37
но там есть watch_id

Vladimir
27.09.2017
14:21:40
хотя 10М хитов за вчера и справа могут в память влезть
не влезает( Memory limit (for query) exceeded: would use 12.52 GiB

papa
27.09.2017
14:22:11
это уже с фильтром по дате?

Vladimir
27.09.2017
14:22:12
но там есть watch_id
Да, но как конектить к visits, где watch_id в массиве?

Google
Vladimir
27.09.2017
14:22:51
это уже с фильтром по дате?
С 1им фильтром, т.к. по хорошему лучше без него. Сегодняшний визит может растянуться и на завтра по хитам

papa
27.09.2017
14:26:39
а вот так не работает? select visit_id, pageviews, url, referer from ( select watch_id from hits where date = '2017-09-26' ) ANY INNER JOIN ( SELECT visit_id, pageviews, watch_id AS url, referer FROM visits ARRAY JOIN watch_ids AS watch_id WHERE (date = '2017-09-26') AND (visit_id = 5648523026255061741) ) using (watch_id)

а что у вас в индексе есть, может если вы знаете id визита, то вдруг получится что-то подтянуть в запрос чтобы не сканить все. юзера какого-нибудь.

Vladimir
27.09.2017
14:32:49
client_id в обоих индексах

Сейчас попробую на них

Sergei
27.09.2017
14:39:20
Подскажите пожалуйста, есть ли какой-то эффективный способ выгрузить из очень большой таблицы данные, упорядоченные по нескольким полям. Группировок нет. Влоб КХ ругается на лимит по памяти (увеличивать его не хочется). Нет ли у КХ возможности сортировать данные используя диск?

Шардировать и упорядочивать на стороне не предлагать

papa
27.09.2017
14:53:52
Это сработало! Спасибо. Теперь буду стараться избавиться от даты в хитах
а зачем от нее избавляться, если она в индексе то это ускоряет запрос

Vladimir
27.09.2017
14:54:24
Потому что хиты сегоднящшнего визита могут уходить в завтра

papa
27.09.2017
14:54:55
возьмите даты за сегодня и завтра.

Sergei
27.09.2017
15:01:08
спасибо
Не подскажите, а для вложенных запросов у КХ есть какая-нибудь такая настройка (для сброса на диск)?

Tima
27.09.2017
15:15:31
Насколько я знаю такой настройки нет. Но есть выступление Алексея Миловидова, как с проблемой непомещения запроса в памяти можно бороться. Погуглите "clickhouse meetup"

Vladimir
27.09.2017
16:36:19
всем привет. может кто-нить уже сталкивался: как подружить ReplacingMergeTree-таблицу с мат.вьюхой на SummingMergeTree или AggregatingMergeTree? агрегация в мат.вьюхе происходит по вставляемому куску, в котором могло произойти изменение версии одного из ранее вставленных PK - никак не могу придумать, как учитывать это в финальной агрегации. т.е. такое изменение не должно влиять на countState/Merge, например

hamper ?
27.09.2017
17:39:13
Привет, а есть какие-нибудь готовые выгребалки из кафки в кх, типа как для вертики?

Maxim
27.09.2017
18:23:22
Напиши сам на flume

Google
Maxim
27.09.2017
18:23:32
Быстро и легко

Kirill
27.09.2017
18:26:17
Roman
27.09.2017
18:49:11
а кто-нибудь использовал это? https://github.com/VerizonDigital/vflow/tree/master/consumers/clickhouse

Roman
27.09.2017
19:58:18
@not_logan можно будет поинтересоваться о результатах через недельку?

Paul
27.09.2017
20:00:03
@not_logan можно будет поинтересоваться о результатах через недельку?
конечно. Могу даже статью написать, если интересно будет

кто такой @why_rebecca_bot ?

Виктор
27.09.2017
20:00:23
спам детектор

Constantine
27.09.2017
20:00:30
там в описании указано ?

Виктор
27.09.2017
20:00:30
у него бывают ошибки, не обращайте внимания

Paul
27.09.2017
20:01:03
а что такого плохого я сделал, если не секрет? :))))

Roman
27.09.2017
20:23:38
> Могу даже статью написать, если интересно будет супер

Sergei
27.09.2017
21:27:08
Подскажите пажалуйста вот запрос SELECT hash1, hash2, url, domain, site_id stat, id FROM uri_stat ANY LEFT JOIN ( SELECT hash1, hash2, argMax(stat_id, event_date) AS stat FROM site_stat PREWHERE status =1 GROUP BY hash1, hash2 ) USING (hash1, hash2) WHERE stat > 0 ORDER BY hash1 ASC, hash2 ASC, event_date ASC вложенный запрос небольшой (6М записей), свободно проигрывается и помещается в память max_bytes_before_external_group_by max_bytes_before_external_sort выставлены но вылетает ошибка по нехватке памяти uri_stat - большая но, вроде как внешние сортировки должны работать

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