@clickhouse_ru

Страница 593 из 723
Michal
19.07.2018
14:52:24
Кому верить, и что делать, если схлопывания данных на практике не происходит, хотя на вид всё сконфигурировано правильно?
Верить коду и тестам. https://github.com/yandex/ClickHouse/blob/master/dbms/tests/integration/test_graphite_merge_tree/configs/graphite_rollup.xml Остальные источники могут ошибаться :)

@orantius, у вас в clickhouse.yandex/docs/en/formats в боковом баре есть пару битых ссылок. Например:
Там микрореволюция / уборка в документации происходила :) Вы как раз видимо угодили в момент актуализации - сейчас про форматы тут: https://clickhouse.yandex/docs/en/interfaces/formats/ Пуллреквест тут: https://github.com/yandex/ClickHouse/pull/2659

Google
Andrew
19.07.2018
15:08:23
С несуществующими машинками - падает с лаконичным 2018.07.19 18:05:24.948742 [ 1 ] <Error> Application: Host not found: blabla.net

С пустым элементом zookeeper - Cannot create table from metadata file /var/lib/clickhouse/metadata/dbname//table_name.sql, error: ZooKeeperImpl::Exception: No addresses passed to ZooKeeper constructor. (Bad arguments), stack trace: И тоже не стартует. Но без segfault'а, да :)

Andrew
19.07.2018
15:47:16
2018.07.19 18:46:19.802132 [ 1 ] <Error> Application: DB::Exception: Cannot create table from metadata file /var/lib/clickhouse/metadata/db_name//table_name.sql, error: ZooKeeperImpl::Exception: All connection tries failed while connecting to ZooKeeper. Addresses: 127.0.0.1:33533

Тоже не стартует

Ivan
19.07.2018
15:59:41
Есть опыт, какая из библиотек шустрее? официальная по верх http? https://github.com/housepower/ClickHouse-Native-JDBC https://github.com/yandex/clickhouse-jdbc

Yuran
19.07.2018
16:22:54
Есть опыт, какая из библиотек шустрее? официальная по верх http? https://github.com/housepower/ClickHouse-Native-JDBC https://github.com/yandex/clickhouse-jdbc
С помощью HTTP у нас получалось вставлять несколько Гбит/сек, причём даже в формате VALUES, а не RowBinary. Я думаю, в подавляющем большинстве случаев интерфейс не будет узким местом :).

Ivan
19.07.2018
16:29:48
задача частые селекты для этого нужно держать соединение.

Gleb
19.07.2018
16:49:59
clickhouse-jdbc держит HTTP коннекшен пул

Dann
19.07.2018
17:04:34
Ребят, а у кого-то получалось запихнуть pd.DataFrame со столбцом из списков в ClickHouse, где под это дело есть колонка типа Array(String)?

Ivan
19.07.2018
17:06:25
clickhouse-jdbc держит HTTP коннекшен пул
нужна какая то тонкая настройка? есть пример?

Gleb
19.07.2018
17:07:03
нужна какая то тонкая настройка? есть пример?
нет, он просто работает, главное пул не закрывать :)

Ivan
19.07.2018
17:07:35
так а как пул создать. я через датасоурс работаю

Google
Gleb
19.07.2018
17:09:36
так а как пул создать. я через датасоурс работаю
он там создается, главное не закрывать конекшен

https://github.com/yandex/clickhouse-jdbc/blob/master/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java#L197

Ivan
19.07.2018
17:38:45
спасибо

Alex
19.07.2018
18:24:53
коллеги, подскажите пожалуйста, кх уводит таблицы в RO режим если остаются только два zookeeper из трех, это у меня косяк в конфигурации кх или зукипера?

Yuran
19.07.2018
18:25:41
Alex
19.07.2018
18:26:05
ну вот мне тоже кажется что должно, а кх сваливается в ro режим, причем не все ноды

Yuran
19.07.2018
19:00:32
Господа, у меня такой вопрос возник. Вот у нас есть таблица с такой структурой: ( Path String, Value Float64, Time UInt32, Date Date, Timestamp UInt32 ) ENGINE = GraphiteMergeTree(Date, (Path, Time), 8192, 'graphite_rollup') В ней хранятся графитовые метрики. В первичный ключ у нас входит строковое поле Path и время. Партиции, которые создал ClickHouse, выглядят следующим образом: 20180610_20180611_6676093_6700911_7 (партиций для каждого месяца по 20-30 штук) . Насколько я понимаю, для int'овых полей имя 6676093_6700911 означало бы диапазон первичного ключа 6676093 — 6700911, но что это означает для строковых полей? Вероятнее всего, берется хэш от строки, а значит запросы вида WHERE Path = 'моя_строка' и тем более WHERE Path = 'мой_префикс%' будут идти во все партиции? Или как это работает :)? Спрашиваю, потому что такие запросы выполняются неприлично долго, скорость чтения состаляет сотни тысяч строк в секунду вместо ожидаемых сотен миллионов :). Второй раз исполняется уже быстрее, но тоже долго. Хочется понять, почему так происходит и правильно ли я понимаю, как партиции разбиваются по файлам.

Kirill
19.07.2018
19:21:02
нет - 4 там нужно чтоб 3-и ноды ответили ОК (4/2+1), но лучше 5 серверов, тогда 2 ноды могут "откинуться" на время

Alex
19.07.2018
19:23:56
нет - 4 там нужно чтоб 3-и ноды ответили ОК (4/2+1), но лучше 5 серверов, тогда 2 ноды могут "откинуться" на время
это именно особенность зукипера? потому что в консуле 2х из 3х хватает для кворума

Александр
19.07.2018
19:25:25
Привет, странный вопрос, полез сверять system.events а у меня на разных нодах разное количество типов евентов, например на 3 нодах есть а на одно нету LeaderElectionAcquiredLeadership - это хорошо или плохо ?

Alex
19.07.2018
19:27:16
Это значит, что данный эвент на ноде ещё не произошёл

Kirill
19.07.2018
19:27:38
Александр
19.07.2018
19:27:50
чет гуглил тип евента, не смог найти сходу, на все есть дока ?

Alex
19.07.2018
19:28:00
2-х зукиперов из трёх должно хватать

Alex
19.07.2018
19:28:24
2-х зукиперов из трёх должно хватать
ну вот не хватает, сваливается в RO

Alex
19.07.2018
19:28:55
в недавних версиях был баг, что при отсыхании сессии ClickHouse переподключался не сразу

у вас долго ro продолжается?

(не сразу = 30 секунд)

Google
Alex
19.07.2018
19:30:20
ну вообще на некоторых инстансах может быть до рестарта

Kirill
19.07.2018
19:34:49
Там еще сам ZK должен лидера переназначить, если сервера вхардкожены в конфиг то, по идее, он будет думать что их 3 и 2 оставшихся большинство (не всегда это работает, но у нас ZK сейчас старый и в нем, судя по issue есть куча багов, надо обновлять), при динамической конфигурации при смерти одной ноды из 3-х он вполне может считать что их всего 2-е и тут точно кворума не будет

Tatiana
19.07.2018
19:36:51
ну вообще на некоторых инстансах может быть до рестарта
на тех иснтансах все три ноды Зукипера прописаны? и оставшиеся две доступны?

Alex
19.07.2018
19:37:35
прописаны все три

Kirill
19.07.2018
19:37:58
он в логи должен писать что делает и что не получилось

Vladimir
19.07.2018
19:45:48
А нет ли случайно планов поддержать etcd?

Александр
19.07.2018
19:50:17
Гугл говорит что SlowRead проставляется в 1 когда с диска медленее 1Mb\s читает, можно ему верить ?

Yuran
19.07.2018
19:51:33
Denis
19.07.2018
19:55:03
Интересно, а как КХ использует индекс если написать where toYYYYMM(поле_дата)= сканируется весь индекс? или разворачивается в нормальное условие >= начало <= конец ?

Alex
19.07.2018
20:00:53
привет, подскажите насколько зрела идея хранить финансовые транзакции в кх? какова вероятность что-то не записать на диск как например в монге

Denis
19.07.2018
20:02:08
это же несложно проверить)))
ну да, код взять да и прочитать. (в смысле я знаю что индекс используется, но не могу понять каким образом, если идет скан всего индекса, то я буду продолжать писать условие >= начало <= конец)

Alex
19.07.2018
21:09:31
Очень плохо идея из за отсутствия транзакций.
инсерт происходит частично в некоторых случаях?

идея апендонли для раздачи юзерам данных

Alexey
19.07.2018
21:10:09
В clickhouse нет случайно pointInPolygon, только для geography type как в Postgis?
В ClickHouse нет geography type - pointInPolygon работает для точек на плоскости.

ну вот мне тоже кажется что должно, а кх сваливается в ro режим, причем не все ноды
С двумя из трёх нод ZK работает нормально. Возможно временное (обычно десятки секунд) состояние readonly, если он был подключен к тому серверу, который выпал. После этого переподключится и всё будет Ок.

Google
Alexey
19.07.2018
21:19:26
нет - 4 там нужно чтоб 3-и ноды ответили ОК (4/2+1), но лучше 5 серверов, тогда 2 ноды могут "откинуться" на время
Типичной инсталляцией ZK является 3 сервера. Увеличение количества серверов до 5 редко имеет смысл - так как кластер будет масштабироваться только по чтению, а по записи будет лишь деградировать.

Alex
19.07.2018
21:21:11
Alexey
19.07.2018
21:23:12
идея апендонли для раздачи юзерам данных
В ClickHouse нет полноценных транзакций, тем не менее, есть свойства транзакционности, которые позволяют записывать данные надёжно. Так, каждый INSERT атомарен (с размером батча до 1 млн. строк по-умолчанию).

Свойства репликации: https://yandex.github.io/clickhouse-presentations/rit2018/#23

Господа, у меня такой вопрос возник. Вот у нас есть таблица с такой структурой: ( Path String, Value Float64, Time UInt32, Date Date, Timestamp UInt32 ) ENGINE = GraphiteMergeTree(Date, (Path, Time), 8192, 'graphite_rollup') В ней хранятся графитовые метрики. В первичный ключ у нас входит строковое поле Path и время. Партиции, которые создал ClickHouse, выглядят следующим образом: 20180610_20180611_6676093_6700911_7 (партиций для каждого месяца по 20-30 штук) . Насколько я понимаю, для int'овых полей имя 6676093_6700911 означало бы диапазон первичного ключа 6676093 — 6700911, но что это означает для строковых полей? Вероятнее всего, берется хэш от строки, а значит запросы вида WHERE Path = 'моя_строка' и тем более WHERE Path = 'мой_префикс%' будут идти во все партиции? Или как это работает :)? Спрашиваю, потому что такие запросы выполняются неприлично долго, скорость чтения состаляет сотни тысяч строк в секунду вместо ожидаемых сотен миллионов :). Второй раз исполняется уже быстрее, но тоже долго. Хочется понять, почему так происходит и правильно ли я понимаю, как партиции разбиваются по файлам.
6676093 - это последовательный номер вставки. Он говорит о том, что в таблицу, в данную партицию, было сделано примерно 6 676 093 INSERT-ов. Для хорошей производительности в WHERE надо указывать условия и на первичный ключ (например, Path = 'мой_префикс%') и на ключ партиционирования (например, Date >= '2018-07-20'). Если есть условия на Time, то условия на Date всё-равно нужны.

Alex
19.07.2018
21:35:56
В ClickHouse нет полноценных транзакций, тем не менее, есть свойства транзакционности, которые позволяют записывать данные надёжно. Так, каждый INSERT атомарен (с размером батча до 1 млн. строк по-умолчанию).
партиции на репликах эквивалентны? то есть если я на мастере деатачу партицию Х и на репликах тоже самое я получу на репликах копию мастера?

Alexey
19.07.2018
21:38:47
партиции на репликах эквивалентны? то есть если я на мастере деатачу партицию Х и на репликах тоже самое я получу на репликах копию мастера?
Да. Реплики синхронизируются до побайтово идентичных данных в идентичных партициях. Запросы ATTACH/DETACH реплицируются.

Alex
19.07.2018
21:39:28
то есть только с мастера можно партиции убрать и оно само догонит на репликах?

Alexey
19.07.2018
21:40:13
то есть только с мастера можно партиции убрать и оно само догонит на репликах?
Если выполнить DETACH PARTITION на одной реплике, то партиция будет detached на всех репликах.

Maxim
19.07.2018
21:44:16
Подскажите, кто-нибудь пробовал подключать R к кликхаузу? Чтобы можно было R функции вызывать в запросах.

И возможно ли это в принципе? Или может можно подключить R-ные библиотеки написанные на сях

Alexey
19.07.2018
22:10:47
Подскажите, кто-нибудь пробовал подключать R к кликхаузу? Чтобы можно было R функции вызывать в запросах.
Ещё никто не подключал, насколько мне известно. Есть наоборот - возможность из R работать с ClickHouse.

Maxim
19.07.2018
22:19:27
Из R уже работаем, полет отличный! Интересно, можно ли сделать обратно. В принципе, очень хочется иметь возможность писать полноценный код прямо в clickhouse. По аналогии с KDB.

и Q

например, чтобы можно было посчитать линейную регрессию не открывая питон или R

Alexey
19.07.2018
22:29:51
например, чтобы можно было посчитать линейную регрессию не открывая питон или R
Это весьма интересный вариант - сделать функцию, которая будет обрабатывать массив с помощью произвольного куска кода на R. Если есть хороший вариант interop, чтобы не было лишнего копирования или перекодирования массива. Если есть заинтересованные разработчики - можно попробовать сделать это в качестве эксперимента.

Google
Kirill
20.07.2018
05:28:43
Тут неправда.
Да. Тут совршенно неправда) Если у ZK 3-и сервера, то 2 из 3-х - кворум, 3/2+1=2, но, в действительности это не всегда работает (у нас есть старый кластер ZK для кафки и ZK там какой-то совсем "лохматый из коробки" и ведет себя он, скажем так, не всегда адекватно). Что касаемо последней стабильной, я, если честно не проверял, оно пока просто работает, могу сегодня попробовать погасить сервера оставив минимум который должен дать кворум и посмотрю что будет, интересно стало.

Stanislav
20.07.2018
05:33:34
Аналогично. Вообще, зк из трёх у меня полностью сломался только после переполнения диска на двух из трёх, после чего уменьшил интервал между логами и их количество на диске.

Kirill
20.07.2018
05:47:33
Проверял несколько раз плюс были даунтаймы в ДЦ, два их трёх дают кворум версия дефолтная из убунту 1604
OK, возможно у меня на 3-х была неведомая фигня как у @gtbear. Перепроверю на актуальных версиях и если все ОК буду спать еще крепче.

Konstantin
20.07.2018
07:51:28
подскажите почему может появляться ошибка Code: 23, e.displayText() = DB::Exception: Cannot read from istream, e.what() = DB::Exception? Есть шард с двумя репликами. На одной реплике где то 1.5Т данных. На другой реплике данных нет. То есть организовали репликацию. Канал между репликами 10Гбит/с. Я почти уверен, что проблем с железом нет (не наблюдаю не ошибок, ничего). Данные начинают перетикать. В какой то момент трафик вырастает до 8Гбит/с и так это работать может дня два.. толку нуль. На дисках наблюдаю работу как при репликации на других шардах (на двух шардах репликация завершилась успешно в пределах полудня, данных так же 1.5Т). В system.replication_queue вижу очередь с типом GET_PART. Получается данные идут, но крайне мелкими порциями… Есть идеи?

Kirill
20.07.2018
08:08:35
Кстати, а есть где-то статьи или хоть что-то что можно почитать на предмет - каким лучше делать индекс?
https://groups.google.com/forum/#!searchin/clickhouse/%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%7Csort:relevance/clickhouse/eUrsP30VtSU/p4-pxgdXAgAJ

Evgeny
20.07.2018
08:08:50
Спасибо!

Vadim
20.07.2018
10:56:16
Добрый день, коллеги. Помогите пожалуйста примонтировать папку для хранения БД с хостовой машины в докер контейнер. https://github.com/yandex/ClickHouse/issues/2690

Lamobot
20.07.2018
11:03:50
Добавьте в volume еще папку логов КХ -v ${VOLUME}/logs:/var/log/clickhouse-server

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