@clickhouse_ru

Страница 109 из 723
Sergey
07.04.2017
08:30:22
оу, да, про 6 версию я не подумал. Я собирал. Но не помню)
а POCO-либы ставили из rpm? или сами собирали (если да, то каким gcc?)

Vladislav
07.04.2017
08:35:22
Если никто не против, хотел бы вернуться к вопросу дашбордов, в частности, помимо zeppelin и redash, пользуется кто metabase? А второй момент, кто с редашем, как вы его в проде используете, если там куча багов на уровне постгресной базы?

Sergey
07.04.2017
08:37:43
Мы пользуемся Airbnb Superset

Vladislav
07.04.2017
08:47:46
Мы пользуемся Airbnb Superset
Спасибо, посмотрю

Google
Vladimir
07.04.2017
09:04:49
не совсем, как минимум в rhel6 нет gcc5
Я когда думал собирать под центось6, собрал шланг. Это оказалось проще

Но лучше сразу взять цо7

Sergey
07.04.2017
09:10:50
Я когда думал собирать под центось6, собрал шланг. Это оказалось проще
Собранный с помощью clang odbc-драйвер заработал без проблем? (Да, похоже, что придется переезжать на Centos 7)

Vladimir
07.04.2017
11:10:26
Посмотрел на объем работ и плюнул

В цо7 собирается отлично если брать системный злиб и гцц из devtoolset-6

Первое тоже важно, потому что иначе соберется zlib-ng, поставится в /usr/lib и это не очень хорошо

Собранный с помощью clang odbc-драйвер заработал без проблем? (Да, похоже, что придется переезжать на Centos 7)
Ну на самом деле нет смысла имхо сидеть на 6ой. Даже 7ая слишком старая

Maksim
07.04.2017
11:25:50
Скажите а можно ли настроить такую схему- есть основной сервер статистики на кх. есть доп. сервер на котором дублируется статистика из основного сервера. но запросы на вставки идут на основной. а дополнительный просто клонирует данные основного. Зачем? дополнительный дев сервер хотим подключить на дополнительный сервер статистики для отладки. Ну и что будет если миграции будем выполнять? надо бы чтобы они на двух серверах применялись..

Maksim
07.04.2017
12:15:13
репликация?
возможно. нооо если поменяем структуру таблицы на доп. сервере. что будет в итоге?

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

Google
Maksim
07.04.2017
12:22:41
Что вы используете в качестве клиента?
ну у нас php приложение. драйвер пхп выбирает с базы кх. есть еще доп. инструменты для миграций которые реализовали сми2. ну можно и без них просто слать по curl запрос

Vladimir
07.04.2017
12:23:29
Дублировать можно http через goreplay

Или UDP через netcat например

Но TCP увы

Но не проще ли

Это делать через репликацию?

Сделали копию, отключили копию, протестировали на копии миграции, удалили с копии данные, доключили копию в кластер для повторного наполнения

Maksim
07.04.2017
13:20:31
Это делать через репликацию?
может все таки проще создать бэкап положить в облако. и на другом сервере его импортить каждый день?

хотелось бы автоматизировать процесс

Mike
07.04.2017
13:30:39
Всем привет :) У нас есть поток событий, каждое — с идентификатором пользователя (`dt | eventId | userId`) Требуется: узнать сколько раз он взаимодействовал с системой за неделю (`weeknum | userId | sessionsCount`). На вид — задача изоморфна получению отдельных визитов из хитов. Может ли кто-нибудь рассказать алгоритм, как в метрике (или не в метрике?) получаются визиты из хитов, или как в кх сделать такой запрос? Хочется понять сам принцип.

Leonid
07.04.2017
13:53:02
Привет! Мы тут хотим переехать на другой ZK кластер и хочется узнать, если возможность перевести CH в readonly режим? Мы, конечно, загасим все наши воркеры, которые пишут в CH, но хочется подстраховаться

Alexey
07.04.2017
14:00:08
Привет! Мы тут хотим переехать на другой ZK кластер и хочется узнать, если возможность перевести CH в readonly режим? Мы, конечно, загасим все наши воркеры, которые пишут в CH, но хочется подстраховаться
Внутри ClickHouse такой возможности нет, но всегда можно закрыть порты с помощью iptables. 9000, 8123 - закрыть на запись и чтение. 9009 - закрыть репликацию.

Leonid
07.04.2017
14:00:49
О, точно, спасибо!

Mike
07.04.2017
14:07:47
В Метрике вычисление сессий - довольно сложный алгоритм и отдельная структура данных, разработанная специально для этого. Это делается снаружи ClickHouse.
В интернетах нашёл пример запроса, который делает прямо то что нужно (идеалогически) http://sqlmag.com/site-files/sqlmag.com/files/archive/sqlmag.com/content/content/23714/listing_03.txt => site_url| caller_ip | start_session | end_session Но возможностей кх не хватает, чтобы его запустить :(

Vladimir
07.04.2017
14:10:45
Как правильно мигрировать данные при изменении схемы (включая изменение индекса)? Хочу в приложении своем добавить потенциальную возможность такое делать. Я правильно понимаю что нужно делать следующее: 1. Rename старой 2. Создавать новую таблицу с правильным и исправленной схемой 3. Делать SELECT INTO в новую таблицу из старой 4. Удалить старую ?

Maksim
07.04.2017
14:34:33
Внутри ClickHouse такой возможности нет, но всегда можно закрыть порты с помощью iptables. 9000, 8123 - закрыть на запись и чтение. 9009 - закрыть репликацию.
Алексей не могли бы вы посоветовать более правильный способ организации дев прод серверов. на прод ui + прод кх само сабой понятно. а вот дев + доп сервер кх - хотелось бы на доп. сервере чтобы всегда были данные прод сервере кх. но с возможностью применить какую либо миграцию (удалить столбец к примеру) - все отладить и тогда уже на проде кх её выполнить и залить код ui

Alexey
07.04.2017
15:18:17
Мы используем тестовую среду с подмножеством данных. Тестовая среда полностью независима от продакшена. Но программы, которая записывают данные, записывают одновременно все данные на продакшен и часть данных на тестовую среду.

Google
Slach
07.04.2017
15:31:02
у нас отдельный сервер mysql для статистики. написали скрипт бэкапов на s3. делается sql пакуется в gzip заливается в облако. плохо?
да очень плохо, на масштабах 100 и более гигабайт данных нормально не работает юзайте xtrabackup хотябы вместо mysqldump

Stepan
07.04.2017
15:33:36
удалось побороть "No thread available" на словарях?
К сожалению, пока нет. Вот, можно прям в коде поправить https://groups.google.com/forum/#!topic/clickhouse/VNkWeL468mw , но это печальненько

Nikita
07.04.2017
15:35:16
ага, нашел уже. у меня ровно 16 словарей получается. все odbc

Alexey
07.04.2017
15:38:26
Можно решить задачу, реализовав поддержку опционального параметра в конфиге - odbc_dictionary_source_session_pool_size. Это тривиальное изменение, примерно на 20 минут времени. Пришлёте PR или самим придётся сделать?

Maksim
07.04.2017
16:05:49
Мы используем тестовую среду с подмножеством данных. Тестовая среда полностью независима от продакшена. Но программы, которая записывают данные, записывают одновременно все данные на продакшен и часть данных на тестовую среду.
ну при изменении структуры таблицы данные писаться ведь не будут? вы наверное имел ввиду репликацию из основного сервера на тестовую среду. важно понять как лучше нам организовать такой процесс чтобы данные всегда были актуальны но при необходимости мы могли поменять какие-то поля переписать код для работы с этими полями оттестировать и затем уже выложиь на прод код + миграцию на прод кх

papa
07.04.2017
16:30:36
а как вы это сейчас делаете.

Maksim
07.04.2017
16:32:31
пока никак. но думаю сделать бэкап компрессором потом запаковать закинуть на S3, затем из S3 берем распаковываем декопрессию делаем и импортим в базу раз в сутки (на кроне) пока такая мысль

Nikita
07.04.2017
17:15:52
Можно решить задачу, реализовав поддержку опционального параметра в конфиге - odbc_dictionary_source_session_pool_size. Это тривиальное изменение, примерно на 20 минут времени. Пришлёте PR или самим придётся сделать?
начал смотреть исходники, не совсем понял. по дефолту у SessionPool maxSessions = 32, почему тогда можно только 16 словарей? еще заметил, что сессия никогда не отдается в пул, т.е. всегда висит кол-во соединений равное кол-ву словарей. для постгреса без использования всяких баунсеров это может быть накладно, может как-то этот момент переделать что бы сессия всё таки возвращалась в пул? ведь по сути она нужна только когда надо обновить словарь.

Maksim
07.04.2017
17:19:17
Там конвейер обработки, первая программа пишет "сырые" данные на ТС и на продакшен, а потом всё это обрабатывают и пишут другие программы, которые выкладываются сначала на ТС, а потом на продакшен.
все равно не особо понял принцип работы. видимо пока сделаю дампами по крону. может еще скажите есть ли возможность сделать дамп "всей" базы? или только таблиц по отдельности?

Alexey
07.04.2017
17:20:09
Я пока тоже не до конца понял. Ведь SessionPool создаётся для каждого словаря (ODBCDictionarySource). То есть, для каждого словаря максимум 32 соединения (по факту, для flat, hashed словарей нужно одно), а при чём тут количество словарей - не ясно. Надо смотреть глубже.

Maksim
07.04.2017
17:21:43
Только по отдельности.
а в будущем планируется ?

Alexey
07.04.2017
17:23:47
Пока нет. Есть отдалённо похожая задача - восстановление реплики целиком (на пустом сервере). Сейчас приходится выполнять ATTACH TABLE для каждой таблицы для восстановления или копировать .sql файлы. Вот после этой задачи подумаем, чтобы сделать возможность полного бэкапа.

Maksim
07.04.2017
17:24:41
понял. спасибо

Alexey
07.04.2017
17:58:54
Давайте. Да, вывод gdb очень поможет.

Дмитрий
07.04.2017
19:00:25
Уф Graphouse allows you to use ClickHouse as a Graphite storage

Извиняюсь за офтоп побежал разворачивать

Google
Vladimir
07.04.2017
22:57:52
https://github.com/lomik/graphite-clickhouse

Slach
08.04.2017
06:51:56
А есть ссылки ?

Тьфу есть ссылки на graphouse ?

Нашел спасибо

Vladimir
08.04.2017
07:16:53
Тьфу есть ссылки на graphouse ?
Интересно чем он лучше или хуже того на что я выше ссылки кинул :)

Vladislav
08.04.2017
08:18:44
А из-за чего может появляться DB::Exception: std::bad_cast? Вставляю из одной распределенной таблицы в другую через INSERT INTO t2 SELECT ... FROM t1 с конвертацией в Nullable-колонки. Как можно посмотреть ошибку подробнее через клиент?

Evgeny
08.04.2017
13:58:41
https://github.com/yandex/graphouse

Veniamin
08.04.2017
14:02:03
https://github.com/yandex/graphouse
И сильно ли оно лучше будет чем influxdb?

Vladimir
08.04.2017
14:36:55
И сильно ли оно лучше будет чем influxdb?
Оно по функционалу отличается

И сильно ли оно лучше будет чем influxdb?
Графхаус не знаю, но ломиковский вариант в single server варианте на запись примерно в 20 раз быстрее

Но минус в том что тэги там слегка сбоку

Veniamin
08.04.2017
14:39:02
Спасибо, посмотрю тода.

Vladimir
08.04.2017
14:39:41
Вот как сам графхаус я не знаю, то что он на яве и я его из коробки взять не могу - меня останавливает от того чтоб посмотреть

Maksim
08.04.2017
15:18:53
как clickhouse настроить в распределенном режиме в рамках одного сервера?

prll
08.04.2017
15:52:06
разные порты + разные datadir

Slach
08.04.2017
17:16:39
Всем привет подскажите пожалуйста я правильно понимаю что для хранения UUID наиболее эффективным является тип FixedString(16) ? вопрос если я преобразовал UUID в FixedString(16) и там есть 0x0A или 0x0D как мне их правильно заэкранировать в CSV ? заменить однобайтовую последовательность на \r или \n?

а почему при парсинге CSV строки без кавычек то \n считается как два символа а не как один?

Google
Alexey
08.04.2017
19:43:10
Привет. > Всем привет подскажите пожалуйста я правильно понимаю что для хранения UUID наиболее эффективным является тип FixedString(16) ? Да. > если я преобразовал UUID в FixedString(16) и там есть 0x0A или 0x0D как мне их правильно заэкранировать в CSV ? заменить однобайтовую последовательность на \r или \n? В CSV правила экранирования совсем не такие, как в TSV. В CSV надо помещать это значение в кавычки и внутри заменять каждую кавычку на две кавычки. При этом, 0A, 0D остаются как есть. Для сравнения, если писать в TSV, то вам надо было бы писать значение не в кавычках, и внутри, экранировать символы - перевод строки, таб и бэкслеш с помощью последовательностей \n, \t, \\.

Maksim
08.04.2017
21:41:28
разные порты + разные datadir
несколько clickhouse серверов ? можно чуть подробнее. спасибо

Дмитрий
08.04.2017
21:51:18
Вариант с кликхаусом в docker контейнерах вам не подходит?

prll
08.04.2017
22:09:32
несколько clickhouse серверов ? можно чуть подробнее. спасибо
для начала не очень задача понятна, для тестов?

Maksim
08.04.2017
22:17:54
для начала не очень задача понятна, для тестов?
задача настроить в распредленном режиме

Dmitry
08.04.2017
22:20:11
А зачем это делать в рамках одного сервера?

Maksim
08.04.2017
22:26:04
А зачем это делать в рамках одного сервера?
я так понимаю надо 3 сервера. два с mergetree с одинаковыми данными и репликацией между ними + один принимающий сервер который распределяет ?

Dmitry
08.04.2017
22:29:37
Так не нужно делать

В кх мультимастер система, любой сервер может принимать запросы

Maksim
08.04.2017
22:31:52
*первоначально

В кх мультимастер система, любой сервер может принимать запросы
нам надо сделать в виде кластера. несколько серверов

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