@clickhouse_ru

Страница 658 из 723
Denis
13.09.2018
20:37:46
Вроде, chproxy заявляет, что они делают все то же, что и distributed
они делают в том смысле что обращение будет не к distributed таблице одной ноды, а к дистрибьютид таблицам на разных нодах, но distributed таблицы все равно нужны на каждой ноде, ну и инсерты chproxy умеет делать прямо в шарды.

Denis
13.09.2018
20:45:18
у вас есть 10 нод, 5 шардов по 2 реплики, вы создаете дистрибьютид таблицу на каждой ноде. теперь можно ходить и делать запросы на любой из 10 нод. но у вас тупое приложение все время ходит к первой ноде, и эта нода делает финальные агрегации, и загружена больше всех. вы ставите chproxy как балансер и начинаете ходить ко всем 10, все 10 загружены равномерно.

Vsevolod
13.09.2018
21:26:14
тогда мне это совсем не нужно, понятно

Google
Kirill
13.09.2018
22:53:36
А кто сталкивался с задачей удаления дублированных записей ? Когда по одному ключу две записи записались идентичных ?

nnnik
14.09.2018
03:04:24
Если у вас табличек много, вы уверены что вам КХ нужен?
ну, относительно много табличек основные таблицы - это логи но к ним есть таблицы(справочники), описывающие объекты с их свойствами, упоминаемые в этих логах @vstepankov пжл подскажите, в чем лайф-хак? деражть справочники в массивах?

Kirill
14.09.2018
03:39:21
ну, относительно много табличек основные таблицы - это логи но к ним есть таблицы(справочники), описывающие объекты с их свойствами, упоминаемые в этих логах @vstepankov пжл подскажите, в чем лайф-хак? деражть справочники в массивах?
Оставте справочники в постгресе и подключите их как словарь. Возможно ваши таблицы с логами по колонкам чуть более чем сильно совпадают, их можно в одну таблицу писать, просто создать доп колонку с типом логов и бросить ее в первичный ключ

Рулон
14.09.2018
06:02:17
Доброе утро! Есть 10 серверов и 1 csv, можно как-то параллелить загрузку?

Evgeny
14.09.2018
06:23:31
Лить в distributed таблицу

Не будет параллельного чтения, только запись

Vasilij
14.09.2018
06:45:42
Привет! В ответ на TRUNCATE TABLE table получил исключение: Received exception from server (version 18.10.3): Code: 48. DB::Exception: Received from 127.0.0.1:9003. DB::Exception: Can't proxy this query. Unsupported query type. Я правильно понимаю, что для Replicated таблиц truncate просто не поддерживается?

И вот ещё вопрос: ALTER TABLE table FETCH PARTITION кидает исключение, если мы эту партицию уже бэкапили. Можно как-то изменить это поведение (не кидать исключение), или проверить средствами самого Clickhouse, что партиция уже забэкаплена?

Konstantin
14.09.2018
09:28:20
подскажите, пытаюсь настроит chproxy при подключении получаю: "127.0.0.1:61813": invalid username or password for user "default"; query: "" при этом пользователя default вообще нет в конфиге, чтяднт?

Pavel
14.09.2018
10:20:28
Какой результат?
Тоже самое :(

2018.09.14 10:09:51.596455 [ 23 ] <Debug> MemoryTracker: Peak memory usage (total): 150.00 KiB. 2018.09.14 10:09:51.596472 [ 23 ] <Information> TCPHandler: Processed in 0.037 sec. 2018.09.14 10:09:52.010968 [ 23 ] {190} <Debug> executeQuery: (from 127.0.0.1:45300) INSERT INTO dns.traffic VALUES 2018.09.14 10:09:52.048632 [ 23 ] {190} <Error> executeQuery: std::exception. Code: 1001, type: std::bad_typeid, e.what() = std::bad_typeid (from 127.0.0.1:45300) (in query: INSERT INTO dns.traffic VALUES) 2018.09.14 10:09:52.048703 [ 23 ] <Debug> MemoryTracker: Peak memory usage (total): 150.00 KiB.

https://gist.github.com/pavel-odintsov/5cb2177f2735712fc033fcc9352158dc

Google
Alex
14.09.2018
10:56:36
посоны, как мне по красоте можно табличку вместе с данными из постгреса в кликхаус перенести?

Ну что? Есть идеи? Могу подключиться к постгресу через odbc. Могу сделать pgsql dump, clickhouse restore сделать не могу.

Alexey
14.09.2018
11:10:02
почитайте в доке Данные о такси в Нью-Йорке Как импортировать сырые данные

там как раз перенос данных из постгреса в кх

Alex
14.09.2018
11:11:38
ок, спс

Alexey
14.09.2018
11:12:20
https://clickhouse.yandex/docs/ru/getting_started/example_datasets/nyc_taxi/

Kirill
14.09.2018
11:26:02
Mike
14.09.2018
11:28:31
Сделайте пример для воспроизведения
Ошибка вызывается не запросом, а слиянием партиций, есть только полный трейс https://pastebin.com/A3M7XUmL

Kirill
14.09.2018
11:39:46
Ошибка вызывается не запросом, а слиянием партиций, есть только полный трейс https://pastebin.com/A3M7XUmL
Интересно, он у вас в этом блоке, судя по всему, вообще колонок не видит. Есть схема таблицы и версия сервера?

Mike
14.09.2018
11:43:14
Интересно, он у вас в этом блоке, судя по всему, вообще колонок не видит. Есть схема таблицы и версия сервера?
18.10.3 revision 54405, структура https://pastebin.com/1QqBmnYv , запись и запросы в эту таблицу идут постоянно и поле, конечно же есть, оно ключевое

Alexey
14.09.2018
11:50:47
18.12.13: SELECT value, formatReadableSize(value), description FROM system.metrics WHERE metric = 'MemoryTracking' ┌─────────value─┬─formatReadableSize(value)─┬─description──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 5090069495129 │ 4.63 TiB │ Total amount of memory (bytes) allocated in currently executing queries. Note that some memory allocations may not be accounted. │ └───────────────┴───────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 1 rows in set. Elapsed: 0.006 sec.

256Gb на тачке оперативы, что-то он странное показывает, нет?

Stanislav
14.09.2018
11:51:37
в лимит упёрлись

max_memory_usage

Alexey
14.09.2018
11:52:18
$ free -m total used free shared buff/cache available Mem: 257849 9408 25868 2508 222572 245311 Swap: 0 0 0

в смысле

Stanislav
14.09.2018
11:53:14
В смысле, у меня, например, на не особо большом сервере для юзера установлен лимит: <max_memory_usage replace="replace">6000000000</max_memory_usage>

Alexander
14.09.2018
11:53:38
https://clickhouse.yandex/docs/ru/operations/settings/query_complexity/

Alexey
14.09.2018
11:54:20
метрика показывает, сколько все запросы используют оперативы прямо сейчас, причем тут лимит этот?

Google
Stanislav
14.09.2018
11:54:48
А... Перепутал сообщение об ошибке и результат запроса

Тут разве что заммапленое могло посчитаться...

Alexey
14.09.2018
11:55:52
просто раньше на 54390 норм показывало, постоянно мониторил это, а теперь...

ладно, попробую дообновить кластер до конца и порестарчу раза три :) говорят помогает

еще такая ошибка: Code: 49, e.displayText() = DB::Exception: Attempt to attach to nullptr thread group, e.what() = DB::Exception при запросе: CREATE TABLE db.table ON CLUSTER repl ENGINE = Memory AS SELECT id, ts, sum(proc) FROM db.table2 WHERE date = (today() - 1) GROUP BY id HAVING sum(proc) > 0 ORDER BY ts ASC LIMIT 1000000

при 54390 такого не было

db.table2 - Distributed-таблица над ReplicatedCollapsingMergeTree

Алексей
14.09.2018
12:54:13
Если построить CREATE MATERIALIZED VIEW с таблицы MergeTree. В MergeTree применить ALTER TABLE name_table DELETE WHERE user_id>0, то эти данные останутся в MATERIALIZED VIEW?

Как их удалить в MATERIALIZED VIEW?

Combot
14.09.2018
12:58:07
combot.org/c/-1001080295593

Alex
14.09.2018
13:16:30
Пробовал кто-нибудь использовать JetBrains DataGrid для подключения к кликхаусу через https? У меня пишет: cannot initialize http client

Denis
14.09.2018
13:19:44
а они уже запилили поддержку? в обещаниях видел, в релизе - нет

Alex
14.09.2018
13:20:21
Да, вот пару дней назад скачал.

Ivan
14.09.2018
13:20:34
а они уже запилили поддержку? в обещаниях видел, в релизе - нет
да, насколько я помню, где-то в середине августа в минорном релизе

Alexey
14.09.2018
13:30:56


Alex
14.09.2018
13:32:09
пришло время обновиться до 18.12.14)

Roman
14.09.2018
13:34:28
на 18.12.14 все еще лучше



Alexey
14.09.2018
13:40:52
?

Google
Konstantin
14.09.2018
13:54:06
коллеги, может кто помочь с настройкой chproxy?

Ivan
14.09.2018
13:55:36
https://blog.jetbrains.com/datagrip/2018/08/15/datagrip-2018-2-2-clickhouse-support-and-bugfixes/

урааааааа!

Alexander
14.09.2018
14:02:02
Нужно issue на гитхабе хоть с каким-нибудь описанием. А то потеряется в чате.

Denis
14.09.2018
14:11:49
Если построить CREATE MATERIALIZED VIEW с таблицы MergeTree. В MergeTree применить ALTER TABLE name_table DELETE WHERE user_id>0, то эти данные останутся в MATERIALIZED VIEW?
останутся, данные MV лежат в обычной таблице, оттуда таким же alter delete удаляйте. Если вы не называли/создавали таблицу для MV (для синтаксиса create mat view ... to ... as), то MV таблица называется .inner.{MVname}....

Ivan
14.09.2018
14:16:42
неплохо, кроме цены =(
Ну так покупайте со скидками)

на всякие праздники

Bob
14.09.2018
15:00:39
Привет! Вчера попрбовали decimal | LowCardinality, перелили таблицу и сделали optimize final. Сегодня обновили КХ до 18.12.14 и КХ не стартанул из-за ошибок: Uncompressed size of column id_dep(19624475) is not divisible by the size of value Колонка объявлена как id_dep LowCardinality(UInt32) Могу выслать логи если проблема не известная…

Alexey
14.09.2018
17:25:14
На всякий случай - пока LowCardinality годится для тестирования, но не для продакшена.

Кстати, от LowCardinality(UInt32) наверное большого профита не будет. Ведь UInt32 - это уже намного лучше, чем String.

Bob
14.09.2018
17:30:29
Мы как раз тестировали и все стобцы где меного значений обернули в LowCardinality.

Alexey
14.09.2018
17:30:59
Имеется ввиду - где немного значений?

Bob
14.09.2018
17:32:09
А такой вопрос, с LowCardinality(UInt32) на LowCardinality(String) возможно буде перейти через alter колонки? По идее размерность столбца не должна меняться. Только словарь..

Имеется ввиду - где немного значений?
Не много уникальных значений

Nikolai
14.09.2018
17:36:23
Имеется ввиду - где немного значений?
Alter, наверное, можно сделать. Но я не проверял. Данные все равно перезапишутся вместе с индексами.

Проверил. Получилось.

Alexey
14.09.2018
17:46:49
Проверил. Получилось.
Можно сразу в тест добавить...

Google
Bob
14.09.2018
17:55:30
Можно сразу в тест добавить...
А словарь от LowCardinality где храниться? Я полагал что alter со сменой типа у словаря будет достаточно дешевой операцией.

Nikolai
14.09.2018
18:02:40
Можно сразу в тест добавить...
добавил: https://github.com/yandex/ClickHouse/pull/3138/commits/936b4789bdca69a87244ad4178b814830dd0b164

Alexey
14.09.2018
18:02:55
А словарь от LowCardinality где храниться? Я полагал что alter со сменой типа у словаря будет достаточно дешевой операцией.
Словарь хранится в отдельном файле. Некоторые столбцы имеют несколько файлов с данными (сериализуются в несколько "потоков"), в том числе, LowCardinality. ALTER для столбцов, у которых меняется физическое представление, реализуется так же, как чтение, CAST, запись. Операция по смене типа словаря, может быть дешёвой, за счёт маленького объёма данных, которых нужно прочитать с диска и записать обратно. По CPU не уверен, может быть не очень дёшево. (бывают случаи, когда ALTER бесплатен - например, замена UInt32 на DateTime и подобное).

Nikolai
14.09.2018
18:04:40
А словарь от LowCardinality где храниться? Я полагал что alter со сменой типа у словаря будет достаточно дешевой операцией.
Можно было бы сделать дешевой для некоторых случаев, но нужно руками писать оптимизацию. Сейчас еще есть проблема с тем, что поедут индексы, так как в начале словаря всегда хранится значение по умолчанию. В случае строк - это пустая строка, и ее нельзя сопоставить с числом.

Vladimir
14.09.2018
18:13:45
а для lowcardinality не делали бесплатный nullable?

Alexey
14.09.2018
18:15:23
Там есть некоторая специализация для Nullable. Возможно как раз бесплатная с точки зрения хранения. Николай ответит позже (~ через пол часа).

Bob
14.09.2018
18:18:33
Можно было бы сделать дешевой для некоторых случаев, но нужно руками писать оптимизацию. Сейчас еще есть проблема с тем, что поедут индексы, так как в начале словаря всегда хранится значение по умолчанию. В случае строк - это пустая строка, и ее нельзя сопоставить с числом.
Понятно, я исходил из предположения, что это не затрагивает индексы, т.к. результат сранения будет такой же( select 1 > 0, '1' > '0'; ), соответственно и засечки на том же месте. И при сменене типа в словаре значение по умолчанию будет такое как в исходном..

Nikolai
14.09.2018
19:41:20
а для lowcardinality не делали бесплатный nullable?
С точки зрения хранения бесплатный. Но в некоторых местах есть overhead.

Vladimir
14.09.2018
19:42:13
здорово

G
14.09.2018
22:42:24
Коллеги, подскажите пожалуйста в связке GROUP BY ... ORDER BY ... разве не будет в any первое значение в отсортированной группе. А в anyLast последнее? ORDER BY же после GROUP BY выполняется вроде бы как value | group ------+------ 1 | 1 2 | 1 3 | 2 4 | 3 5 | 3 SELECT group, any(value) as open, anyLast(value) as close FROM t GROUP BY group ORDER BY value; group | open | close ------+-----+------ 1 | 1 | 2 2 | 3 | 3 3 | 4 | 5 SELECT group, (SELECT value FROM t tt WHERE tt.group = t.group ORDER BY value ASC LIMIT 1) as open, (SELECT value FROM t tt WHERE tt.group = t.group ORDER BY value DESC LIMIT 1) as close FROM t GROUP BY group ORDER BY group ASC; group | open | close ------+-----+------ 1 | 1 | 2 2 | 3 | 3 3 | 4 | 5

Denis
14.09.2018
23:53:37
anyLast и any любое значение возвращают anyLast(x) Выбирает последнее попавшееся значение. Результат так же недетерминирован, как и для функции any. потому что 48 потоков выполняют запрос и кто-то вернет первый что-то, и это будет any коррелированные запросы в КХ не работают (вычисляются один раз как константа). create table xx (a Int64, b Int64) engine = MergeTree partition by tuple() order by tuple() insert into xx select number, 0 from numbers(1000000); insert into xx select number+1000, 1 from numbers(1000000); select b,o,e from ( select arraySort(groupArray(a)) ar,b,ar[1] o, ar[-1] e from xx group by b) order by b

Mike
15.09.2018
08:21:20
А в каких случаях anyLast предпочтительнее, чем any?

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