@clickhouse_ru

Страница 567 из 723
Tima
25.06.2018
14:48:23
SELECT toTypeName(arrayMap((x, y) -> tuple(x, y), arr1, arr2)) FROM (SELECT [1,2,3, 4, 5, 6] AS arr1, [10, 11, 12, 14, 15, 16] AS arr2) возвращает Array(Tuple(UInt8, UInt8)) - всё вроде сходится, но ошибка есть

Tima
25.06.2018
14:49:04
1.1.54385

Kirill
25.06.2018
14:50:01
=(

Google
Alexander
25.06.2018
14:52:54
Приветствую коллеги. В этом чате можно задавать вопросу по требуемому железу для ClickHouse или тут другая тематика?

Kirill
25.06.2018
14:54:37
pointInPolygon работает только для константных полигонов
Но Кортежи не могут быть записаны в таблицы (кроме таблиц типа Memory) ?

Nikolai
25.06.2018
14:56:25
Я говорю о том, то выражение arrayMap((x, y) -> tuple(x, y), arr1, arr2)) FROM (SELECT [1,2,3, 4, 5, 6] AS arr1, [10, 11, 12, 14, 15, 16] AS arr2) получается неконстантным. Можно попробовать записать его в with секцию.

Kirill
25.06.2018
15:01:21
server version 1.1.54381





Vladimir
25.06.2018
15:09:17
Подскажите, может кто сталкивался, экспортирую данные из Аппметрики утилитой от яндекса, для таблицы events получаю такое значение поля EventParameters: SELECT EventParameters FROM events_all LIMIT 1 "{""GroupID"":""Default"",""PlayerID"":""... т.е. это JSON но закавыченый. Стандартные функции работы с JSON его не воспринимают. Как понимаю проблема в утилите. Вопрос - есть ли какой способ сделать из этого нормальный JSON для КХ?

Jen
25.06.2018
15:12:44
sed '/s/""/"/g' ???

Vladimir
25.06.2018
15:15:03
да, только внутри КХ чтоб в запрос вставить, между утилитой и КХ быстро встроиться не представляется возможным(по хорошему надо фиксить утилиту)

Jen
25.06.2018
15:16:05
а почему в csv не выгрузить, не поправить и не залить?

Vladimir
25.06.2018
15:19:01
Вариант рабочий, но долгий и объем данных будет большой гоняться(утилита работает с минимальным квантом данных в 1 день), кроме того нужно контролировать появление данных извне. Здесь же идея в том чтоб сделать материал вьюху которая будет это делать налету. Но как этот sed написать внутри КХ?

Google
Vladimir
25.06.2018
15:26:41
replaceAll(EventParameters,'""','"') помогло, json распознается, буду писать вьюху, всем спасибо

Edya
25.06.2018
15:49:40
Когда ожидается следующий stable-релиз? Очень уж хочется попробовать эту многообещающую фичу https://github.com/yandex/ClickHouse/pull/2352

Kirill
25.06.2018
16:44:34
Я говорю о том, то выражение arrayMap((x, y) -> tuple(x, y), arr1, arr2)) FROM (SELECT [1,2,3, 4, 5, 6] AS arr1, [10, 11, 12, 14, 15, 16] AS arr2) получается неконстантным. Можно попробовать записать его в with секцию.
Да, просто Tuple как поле работает, но как быть с Array(Tuple()) ?( Выражение вида WITH arrayMap((x, y)-> tuple(x, y), polygon_lat, polygon_lon) AS polygon SELECT pointInPolygon((point_lat, point_lon), polygon) FROM test_db.mopolygons Приводит к той же ошибке Argument 2 for function pointInPolygon must be constant array of tuples

Nikolai
25.06.2018
17:00:41
Да, просто Tuple как поле работает, но как быть с Array(Tuple()) ?( Выражение вида WITH arrayMap((x, y)-> tuple(x, y), polygon_lat, polygon_lon) AS polygon SELECT pointInPolygon((point_lat, point_lon), polygon) FROM test_db.mopolygons Приводит к той же ошибке Argument 2 for function pointInPolygon must be constant array of tuples
Если x, y - это столбцы из таблицы, то функцию напрямую использовтаь не получится. Придется делать отдельные запросы для каждого конкретного полигона.

В принципе, добавить поддержку неконстантных полигонов не очень сложно, но работать будет на порядок медленнее.

Kirill
25.06.2018
17:40:57
Denis
25.06.2018
17:46:53
а как увеличить таймаут при обращении к http словарю? ExternalDictionaries: Cannot update external dictionary '......', leaving old version: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Timeout: connect timed out: ...., e.what() = Timeout

Denis
25.06.2018
18:01:17
Nikolai
25.06.2018
18:03:04
если правильно помню, то в config.xml

Denis
25.06.2018
18:06:04
хм, и этот параметр повлияет сразу на все, включая репликацию.

Nikolai
25.06.2018
18:07:52
На порядок медленнее, чем бомбить запросами по каждому полигону ?)
Зависит от количества полигонов и числа точек. Функция изначально делалась для малого числа полигонов.

Kirill
25.06.2018
18:08:47
Зависит от количества полигонов и числа точек. Функция изначально делалась для малого числа полигонов.
Реализация для 146 полигонов на ~80-150тыс. записей уже кажется достаточно медленной =\ Хотя, если развернуть это в 146 колонок для каждой записи ?

Denis
25.06.2018
18:23:17
если правильно помню, то в config.xml
в профиль вписал, заработало select * from system.settings where name = 'http_connection_timeout' name value changed description http_connection_timeout 5 1 HTTP connection timeout.

Nikolai
25.06.2018
18:24:25
отлично!

Aliaksandr
25.06.2018
20:44:25
@milovidov_an @ztlpn гляньте плз. имеет смысл дальше копать?
Лучше спросите у разработчиков docker-compose, т.к. баг, скорее всего, в нем

molo4ko
25.06.2018
20:52:28
Можно ли настроить репликацию так, чтобы вышло 2 “виртуальных” кластера? То есть, например, 3 машины, на которые предполагается основная нагрузка (продакшен - запись, чтение в производственных целях) и еще 1, на которую данные реплицируются, но пользоваться ей предполагается в ридонли-режиме (например, непрограммисты / какие-то data analysis-люди, которые могут нагрузить чрез меры тестовыми запросами и т.д.)

Evgeny
25.06.2018
20:52:52
Скажите пожалуйста. При использовании Nested филдов и загрузки в формате JsonEachRow я получаю ошибку Unknown field found while parsing JSONEachRow format: qp Что я делаю не так?

Google
Evgeny
25.06.2018
20:58:53
"qp":"[[10123838,122]]",

кстати вопрос вдогонку - а автор github.com/apla/node-clickhouse тут есть?

Evgeny
25.06.2018
21:43:38
Скажите пожалуйста. При использовании Nested филдов и загрузки в формате JsonEachRow я получаю ошибку Unknown field found while parsing JSONEachRow format: qp Что я делаю не так?
Вопрос решен, я неверно понял как нужно формировать вставку. Ну и - apla/node-clickhouse нифига не умеет работать с nested полями

Николай
26.06.2018
05:56:37
Подскажите, пожалуйста, как сделать, чтобы CH был доступен извне?

Wolf
26.06.2018
06:09:08
Listen опция есть у него

Vasilij
26.06.2018
06:56:29
Привет! Вот есть например таблица, в неё смотрят несколько MAT VIEW. Порядок, в каком они забирают вставленные данные и раскладывают по своим таблицам, недетерминирован, или на него можно как-то повлиять?

Смысл в том, что результат MAT VIEW 2 зависит от данных в основной таблице, и данных в таблице, в которую складываются результаты MAT VIEW 1. И если возможно сказать MAT VIEW 2 - ты подожди пока MAT VIEW 1 отработает, тогда ок, а иначе надо придумать другую схему.

Kirill
26.06.2018
07:00:25
Vasilij
26.06.2018
07:01:11
Понятно, спасибо!

Kirill
26.06.2018
07:01:43
И там не таблица, а блок данных, все манипуляции возможны только в рамках него

Николай
26.06.2018
08:09:44
Vasiliy
26.06.2018
08:52:18
Добрый день, а можете подсказать - в ClickHouse есть что-то типа capped collections (как в монге)? Смысл сводится к тому, что базе можно указать максимальный объём хранимых данных и база сама следит за этим размером, выбрасывая старые метрики, когда объём превышается. Таким образом, в базу можно писать больше или меньше метрик, не бояться, что она вырастет по объему, но да - глубина истории будет меняться в зависимости от количества метрик в единицу времени.

Victor
26.06.2018
08:53:58
https://clickhouse.yandex/docs/ru/table_engines/replacingmergetree/ может подойдёт, нужно будет только со стороны приложения логику дополнительную внести

Vasiliy
26.06.2018
08:58:47
https://clickhouse.yandex/docs/ru/table_engines/replacingmergetree/ может подойдёт, нужно будет только со стороны приложения логику дополнительную внести
Видел, но не похоже на то, что нужно. В данном случае речь идёт о дубликатах, а у меня дубликатов нет - просто много метрик, значения которых имеет смысл допустим сутки. Ну и в тоже время место, где запускается база очень ограничено по памяти, поэтому размер контролировать надо очень тонко.

Можно конечно логику в приложение добавить, по которой будет производится очистка старых перед добавлением новых данных, но хотелось узнать есть ли какой-нибудь более правильный путь?

Vasiliy
26.06.2018
09:01:51
В общем речь идёт о квоте. Но вижу в ClickHouse квоты на запросы, но не вижу на более приземлённые вещи - типа размера.

Google
Mike
26.06.2018
09:05:17
Коллеги, небольшой оффтоп по ZK, нет ли у кого под рукой инструкции по замене ноды ЗК? Требуетсся заменить сервер. Или просто вывожу из кворума, и потом добавляю заново?

Wolf
26.06.2018
09:05:57
лучше наверно сперва добавить а потом выводить

Tima
26.06.2018
09:06:35
В КХ нет удаления данных, можно отцепить данные, они в течении некоторого времени удалятся с диска

Mike
26.06.2018
09:08:02
лучше наверно сперва добавить а потом выводить
хм, железо будет подменяться, тоесть сначала выключим, потом включим

Wolf
26.06.2018
09:08:35
Detach вижу, что не удаляет данные.
можно не детачит ьа удалять партицию

ну или после детача удалить руками с диска

drop partition если не изменяет память

Tima
26.06.2018
09:10:05
Обычно делают так: 1. детачат партицию 2. данные партиции куда-то переносят, на бэкапный сервер например

Victor
26.06.2018
09:14:37
есть у меня подозрение, что у Василия имеет место быть негативный перенос навыков с монго. Во-первых, какой памяти не хватает? Оперативы? Монга жрущая, факт, да. Во-вторых, если не хватает места на диске, то КХ более экономный в этом плане

Vasiliy
26.06.2018
09:24:11
есть у меня подозрение, что у Василия имеет место быть негативный перенос навыков с монго. Во-первых, какой памяти не хватает? Оперативы? Монга жрущая, факт, да. Во-вторых, если не хватает места на диске, то КХ более экономный в этом плане
Да, есть проблема как с дисковым пространством так и оперативой. Но тут важнее не то, сколько будет жрать база в целом, а гарантия, что база не вылезет за пределы отведённых ресурсов.

DROP в целом выглядит верно - и похоже, что пока это единственный способ удалять данные. Но с ним надо думать как организовать данные так, чтобы воспользоваться им.

В общем я понял, что сходу такой фичи нет

Дальше тут наверное что угодно можно навертеть)

Wolf
26.06.2018
09:27:53
проблем с местом и памятью у кх в сто раз меньше чем у монги

если уж у вас монга влезала то и кх на куда больших обьемах влезет

Edya
26.06.2018
09:33:33
Когда ожидается следующий stable-релиз? Очень уж хочется попробовать эту многообещающую фичу https://github.com/yandex/ClickHouse/pull/2352
@milovidov_an Есть какая-либо информация по поводу даты следующего stable релиза? (аппроксимированное значение тоже приветствуется)

Wolf
26.06.2018
09:35:50
где то неделю назад апроксимированная дата

Google
Николай
26.06.2018
09:40:12
Подскажите, пожалуйста, не очень хорошо знаком с докером, пытаюсь поднять clickhouse, используя его. https://hub.docker.com/r/yandex/clickhouse-server/ Выполнил команду для старта сервера, потом через докер приконнектился клиентом - всё ок. Пробую зайти на http://localhost:8123 - там не отвечает. Почему так?

Николай
26.06.2018
09:42:20
надо пробросить порт примерно так -p 8123:8123
А да, что-то припоминаю, спасибо.

Vasiliy
26.06.2018
10:12:21
если уж у вас монга влезала то и кх на куда больших обьемах влезет
ну в общем понял. надо тестить и смотреть на поведение )

Alexandr
26.06.2018
10:12:48
Привет. Подскажите, пожалуйста, как массив, сериализованный в строку( например '[0,1]') привести обратно в массив нужного типа. CAST(arrayAsString AS Array(Int32)) возвращает null

Wolf
26.06.2018
10:12:56
ну в общем понял. надо тестить и смотреть на поведение )
не ну просто можно смело запустить кх на машине в два раза меньше монги и 100% вам хватит ресурсов

Vasiliy
26.06.2018
10:17:30
не ну просто можно смело запустить кх на машине в два раза меньше монги и 100% вам хватит ресурсов
рано или поздно метрики забьют хранилище, а для меня важно, чтобы они отъели пусть и +- большой, но фиксированный ресурс.

Wolf
26.06.2018
10:18:05
рано или поздно метрики забьют хранилище, а для меня важно, чтобы они отъели пусть и +- большой, но фиксированный ресурс.
ну такого не бывает если вам нужны все данные и это никак не связано с базой данных , удаляйте старые данные просто и будет все пучком

Vasiliy
26.06.2018
10:19:50
ну такого не бывает если вам нужны все данные и это никак не связано с базой данных , удаляйте старые данные просто и будет все пучком
ну удобство в capped коллекциях в том и состоит, что я могу не думать об удалении старых данных а только пушить новые. Смысл в том, что старые данные мне не нужны, а сколько их уместится - ну только от объёма диска фактически зависит.

Wolf
26.06.2018
10:20:29
ну тут это пара строчек кода а уж это мы умеем

Vasiliy
26.06.2018
10:21:34
ну в общем подход понял, дальше буду пробовать

Alexey
26.06.2018
10:22:19
Гарантии по выделенному на базу/таблицу месту были бы полезны не очень богатым людям типа меня. У меня в КХ netflow лежит с пограничных маршрутизаторов, и любой гражданин из этого интернета банальным синфлудом может сделать вместо тысячи потоков (записей) в секунду миллион. Я сделал партицирование почасовое и зачистку раз в две минуты, но всё равно неспокойно как-то

Гаврилов
26.06.2018
10:23:41
может проще монгу юзать?)

?
26.06.2018
10:24:15
такие данные не должны доходить до кх, по идее, иначе при каппед – и данных не останется, все гражданин из интернета забьет

Vasiliy
26.06.2018
10:26:54
ну на самом деле придумать мест, где требуется квотирование по размеру со стороны базы, не так сложно. Другое дело, что возможно КХ не достаточно хорошо подходит под такую модель использования.

Ilyas
26.06.2018
10:27:16
А подскажите кто в теме - есть ли в планах tarantool в качестве источника внешних словарей для КХ?

Alexey
26.06.2018
10:34:42
такие данные не должны доходить до кх, по идее, иначе при каппед – и данных не останется, все гражданин из интернета забьет
Тот неловкий момент, когда хранение этого в КХ для выявления таких граждан и надобно :)

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