@clickhouse_ru

Страница 264 из 723
Alexey
18.09.2017
15:23:51
Функция позволяет преобразовать Nullable значение в не Nullable. Работает следующим образом: если значение не NULL, то возвращает его. Если значение NULL, то возвращает некоторый не специфицированный результат.

Alexey
18.09.2017
15:40:32
Попробуйте toInt64OrZero от Nullable строки. Эта функция должна вернуть NULL, если аргумент NULL (и ноль, если аргумент не NULL, но не парсится как число).

Stas
18.09.2017
15:44:18
Попробуйте toInt64OrZero от Nullable строки. Эта функция должна вернуть NULL, если аргумент NULL (и ноль, если аргумент не NULL, но не парсится как число).
Спасибо, кажется работает, не мог подумать что эта функция может не преобразовывать NUll. Ранее я тут спрашивал но повторюсь, вдруг тоже поможете - если у меня есть строки типа string и внутри как цифры так и нули, я бы хотел их агрегировать sum() и что бы при попадении NULL - результатом агрегации был бы NULL

Google
Stas
18.09.2017
15:45:37
так я получаю: DB::Exception: Illegal type Int64 of argument of function toInt64OrZero. Only String argument is accepted for try-conversion function. For other arguments, use function without 'try'.

Alexey
18.09.2017
15:47:51
Сейчас все агрегатные функции возвращают не NULL, агрегируя только не NULL-значения.

Stas
18.09.2017
15:51:16
это я уже понял, но в рамках полной поддержки NULL - это не планируется? к великому сожелнию вынужден работать с такой структурой данных =(

Alexey
18.09.2017
15:54:58
Можно какой-нибудь комбинатор реализовать. Например, -OrNull: sumOrNull и т. п.

Stas
18.09.2017
15:56:48
вот это было бы очень круто тк статистика которую я обрабатываю часто имеет NULL значения а конечный KPI имеет смысл только если все счетчики включенные в расчет не имеют NULL в заданном промежутке времени

Alexey
18.09.2017
17:05:03
Маленькая просьба. https://news.ycombinator.com/newest Надо на этой странице найти нашу статью "Evolution of Data Structures in Yandex.Metrica" и нажать слева треугольник "вверх". Перед этим придётся зарегистрироваться. Но не стоит беспокоиться - на этом сайта самая лучшая регистрация из всех, что я видел :)

Roman
18.09.2017
17:07:12
To the moon ?

Vsevolod
18.09.2017
17:11:52
там, кстати, довольно суровая защита от накруток, в том числе и от накруток через чатики :)

Vladislav
18.09.2017
19:02:11
подскажите, пожалуйста, что может быть не так: есть распределенная таблица CREATE TABLE postgres.user_subscribes_new ( site String, ctime DateTime DEFAULT now(), blog_id UInt32, post_id Nullable(UInt32), user_id UInt64, event UInt8, chour DateTime MATERIALIZED toStartOfHour(ctime), cdate Date MATERIALIZED toDate(ctime)) ENGINE = Distributed(sports, \'local\', \'user_subscribes_new\', blog_id) есть локальные таблицы на 6 шардах (3x2): CREATE TABLE local.user_subscribes_new ( site String, ctime DateTime DEFAULT now(), blog_id UInt32, post_id Nullable(UInt32), user_id UInt64, event UInt8, chour DateTime DEFAULT toStartOfHour(ctime), cdate Date DEFAULT toDate(ctime)) ENGINE = ReplicatedMergeTree(\'/clickhouse/tables/{shard}/subscribes\', \'{replica}\', cdate, (site, blog_id, event, chour, cdate), 8192) вставляю в рапсределенную три раза: INSERT INTO postgres.user_subscribes_new( site, blog_id, user_id, event, ctime, post_id ) VALUES ('RU', 43590, 23607725, 1, 1, 1406479) в таблице видна только одна запись, независимо от того, соклько было инсертов. куда посмотреть?

Oleg
18.09.2017
19:03:52
это случаем не "дедупликация данных"?

Блоки данных дедуплицируются. При многократной записи одного и того же блока данных (блоков данных одинакового размера, содержащих одни и те же строчки в одном и том же порядке), блок будет записан только один раз. Это сделано для того, чтобы в случае сбоя в сети, когда клиентское приложение не может понять, были ли данные записаны в БД, можно было просто повторить запрос INSERT. При этом не имеет значения, на какую реплику будут отправлены INSERT-ы с одинаковыми данными. То есть, обеспечивается идемпотентность INSERT-ов. Это работает только для последних 100 вставленных в таблицу блоков.

Vladislav
18.09.2017
19:05:36
блин, дедупликация, точно. я дошел к этому от другой проблемы, а про дедупликацию в mergetree забыл совершенно

Google
Oleg
18.09.2017
19:05:37
это имею ввиду

Vladislav
18.09.2017
19:06:00
ага, понял. спасибо, вылетело из головы.

сейчас осталось понять, решил ли я изначальную проблему )

Marat
18.09.2017
19:23:23
Господа привет! меня интересует то, как вставлять rowdata? вернее как их представлять. в документации это не сказано.

Marat
18.09.2017
19:30:51
сейчас я тестирую, поэтому допустим json бы выглядел так {"date": "01-02-2017", "name": "Marat}

Marat
18.09.2017
19:35:10
конечно так подойдет, просто мне интересна именно работа с бинарными данными. Т.к. хочу попробовать сделать все из эрланга, а он с бинарными данными отлично работает

Для меня это ПОКА вопрос любопытства, и если я не получу ответ на него, ничего критического не произойдет;)

Рулон
19.09.2017
06:03:45
Господа ) Что-то мы давно не собирались)

Kirill
19.09.2017
06:10:38
Думаю, можем на Кипре место предоставить, если вдруг кому интересно )

Cleverfox
19.09.2017
06:57:46
Всем доброго врменеи суток. Подскажите, как вставить в поле NULL, желательно в TabSeparated или RowBinary формате. В доке не нашёл.

f1yegor
19.09.2017
07:51:31
done

Dmitry
19.09.2017
10:07:55
подскажите, кто как бекапит кх

Google
Dmitry
19.09.2017
10:07:59
нашел вот такое https://github.com/resure/scpnet/wiki/ClickHouse-backup

есть какое-то более цельное решение?

Andrew
19.09.2017
10:08:37
есть какое-то более цельное решение?
да ALTER TABLE FREEZE PARTITION и rsyncom забирать папку КХ

Vitaliy
19.09.2017
10:32:28
Всем доброго врменеи суток. Подскажите, как вставить в поле NULL, желательно в TabSeparated или RowBinary формате. В доке не нашёл.
В RowBinary - просто бинарная единица. Это флаг того, что значение NULL. Если это флаг нулевой, то после него идет само значние. Пример: echo -ne "\x01\x00\xFF" | clickhouse-local --structure "i Nullable(UInt8)" --input-format RowBinary --query "SELECT * FROM table" 2>/dev/null

Виктор
19.09.2017
10:52:28
ребят кто-нибудь сталкивался с тем что после перезапуска кликхауса он не отвечает ни на какие запросы и подключения, а в логах пишет что удаляет что-то постоянно

2017.09.19 13:51:01.567860 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428120_3428120_0 2017.09.19 13:51:01.573137 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428121_3428121_0 2017.09.19 13:51:01.574949 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428122_3428122_0 2017.09.19 13:51:01.576726 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428123_3428123_0 2017.09.19 13:51:01.578542 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428124_3428124_0 2017.09.19 13:51:01.580526 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428125_3428125_0 2017.09.19 13:51:01.582195 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428126_3428126_0 2017.09.19 13:51:01.583956 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428127_3428127_0 2017.09.19 13:51:01.585541 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428128_3428128_0 2017.09.19 13:51:01.587274 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428129_3428129_0

Как-то так в логах

Просто даже не знаю что делать

Виктор
19.09.2017
10:56:27
Ну у нас одна большая таблица и где-то 6 мелких. Т.е. немного не та ситуация. единственное что перед перезапуском был дроп большой базы. Может быть в этом проблема?

Оно просто чистит перед запуском?

Tima
19.09.2017
11:00:03
Ну у нас одна большая таблица и где-то 6 мелких. Т.е. немного не та ситуация. единственное что перед перезапуском был дроп большой базы. Может быть в этом проблема?
При дропе данные сразу не удаляются. Так что в вашем случае всё нормально, это идёт непосредственное удаление. В недавних релизах добавили опцию в конфиг, что можно заблокировать таблицу на удаление, если в ней больше указаного кол-ва строк

Виктор
19.09.2017
11:00:17
Спасибо боьлшое :)

Pavel
19.09.2017
11:33:52
Всем привет! А есть ли либы для CH, которые могут общаться с сервером по https искаропки?

попробовал либу от mail.ru - не хочет https ?

Vladislav
19.09.2017
11:40:22
а что за либа от mail.ru?

и для какого она языка?

Pavel
19.09.2017
11:41:26
ой, Go =)

https://github.com/mailru/go-clickhouse

вот эта

Google
Pavel
19.09.2017
11:42:10
сейчас мучаю https://github.com/roistat/go-clickhouse вроде https появился в ней

Slach
19.09.2017
11:45:36
есть два протокола http и native https это только если перед clickhouse стоит nginx

Pavel
19.09.2017
11:46:04
именно так и стоит по соображениям безопасности

roistat вроде https умеет, сейчас попробую подсунуть нужные хидеры авторизации OAUTH

Alex
19.09.2017
11:46:58
> https это только если перед clickhouse стоит nginx Необязательно - см. настройку https_port в конфиге.

Павел Максимов
19.09.2017
12:09:02


Paul
19.09.2017
12:09:57
ну вот я бы попытался сначала уменьшить размер вставки

у вас, похоже, питон падает. Не кликхауз

Павел Максимов
19.09.2017
12:12:05
ладно, попробую поменьше кусками, спасибо

Roman
19.09.2017
12:14:45
Ребят, чет туплю, подскажите пожалуйста есть ли способ через jdbc используя RowBinaryStream инсертить null значения?

Igor
19.09.2017
12:16:55
if (string == null) { stream.writeInt8(1); } else { stream.writeInt8(0); stream.writeString(string); }

Andrew
19.09.2017
12:17:04
судя по трейсу вы делаете копию данных, храните в памяти две копии одних и тех же данных. Да, стоит уменьшить на порядки размер файлов, либо загружать через clickhouse-client. Из привычного вам Jupyter это можно сделать через ! в начале ячейки

Ilya
19.09.2017
12:19:21
А что в логах кликхауса?

Pavel
19.09.2017
12:24:50
угу, roistat заработал как требуется

Vsevolod
19.09.2017
12:25:25
Добрый день! Скажите пожалуйста, в чем может быть причина в том, что не происходит заполнение материализированного представления? В docker версии происходит, в нативной установке под ubuntu 16.04 не происходит. Версия 1.1.54284 и там и там, схема одна и та же. Данные схожие. Запрос из которого формируется представление выдает схожие данные как и в MV в docker, а в нативной установке расходятся. Какие логи отвечают за это? Вижу только, что в докер версии происходит мерж частей в MV, а в нативном нет.

Vitaliy
19.09.2017
12:32:21
Что скажете на счет этого поделия http://www.proxysql.com/blog/proxysql-143-clickhouse ?

Vitaliy
19.09.2017
12:32:28
2017.09.19 13:51:01.567860 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428120_3428120_0 2017.09.19 13:51:01.573137 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428121_3428121_0 2017.09.19 13:51:01.574949 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428122_3428122_0 2017.09.19 13:51:01.576726 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428123_3428123_0 2017.09.19 13:51:01.578542 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428124_3428124_0 2017.09.19 13:51:01.580526 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428125_3428125_0 2017.09.19 13:51:01.582195 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428126_3428126_0 2017.09.19 13:51:01.583956 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428127_3428127_0 2017.09.19 13:51:01.585541 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428128_3428128_0 2017.09.19 13:51:01.587274 [ 3 ] <Debug> ads.main_data (Data): Removing part 20170919_20170919_3428129_3428129_0
Это нормально. Просто пред рестартом сервер помержил эти куски, но не успел удалить куски-исходники (они только через 8 минут удаляются). При рестарте он все приводит в согласованное состояние, проверяет и удаляет ненужные куски, ставит задачу в очередь на скачивание недостающх.

Google
Виктор
19.09.2017
12:32:46
Понял, спасибо :)

Pavel
19.09.2017
12:36:14
In today's release, ProxySQL 1.4.3, the most important feature is surely the support for ClickHouse as a backend! Clients can still connect to ProxySQL using the MySQL Protocol, and ProxySQL will query ClickHouse.

Nice idea!

итого, roistat единственные кто сумел подключиться по https без проблем =)

Pavel
19.09.2017
13:38:14
ну другим плагинам указываешь, а им не нравится "https" как протокол

вот вся и проблема

Vsevolod
19.09.2017
13:53:54
Добрый день! Скажите пожалуйста, в чем может быть причина в том, что не происходит заполнение материализированного представления? В docker версии происходит, в нативной установке под ubuntu 16.04 не происходит. Версия 1.1.54284 и там и там, схема одна и та же. Данные схожие. Запрос из которого формируется представление выдает схожие данные как и в MV в docker, а в нативной установке расходятся. Какие логи отвечают за это? Вижу только, что в докер версии происходит мерж частей в MV, а в нативном нет.
Нашел интересное поведение КХ. Если формировать из запроса содержащий JOIN, то нельзя указывать в качестве таблиц данных запросы, даже если они требуются только для алиасов. Иначе не обновляется. В таблицах есть схожие колонки, поэтому из за использования алиасов не происходила "подписка" на изменения в таблице А. А данные приходили в таблицу А позже, чем в таблицу Б, из-за этого данные в MV и не объединялись. Нам повезло, что есть возможность "подписаться" на 2 таблицы сразу же, однако из за отсутствия алиасов в join, можно также наткнуться на эту проблему.

Oleh
19.09.2017
14:09:03
Добрый день, подскажите, в чем может быть проблема clickhouse error: [242] DB::Exception: Table is in readonly mode" query":{"Stmt":"INSERT INTO statistics.daily_statistics_events

Symstriker
19.09.2017
14:10:39
Ну собсно там понятно в чем проблема. Вопрос в том какой барашек ридонли поставил

Oleh
19.09.2017
14:11:35
можно как-то убрать ридонли?

у меня на слейве повторяется такая ошибки 2017.09.19 14:16:33.699771 [ 9 ] <Error> ReshardingWorker: no node, path: /clickhouse/task_queue/resharding/localhost.localdomain

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

Anton
19.09.2017
16:33:47
В PG есть запрос: select array(select id from table) Как сделать аналогичное?

Ksu
19.09.2017
16:35:37
Добрый вечер кто-нибудь в курсе, можно ли выделять определенное кол-во ядер на запрос?

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