
Denis
25.06.2017
05:29:56
Ребята, доброго дня. Подскажите пожалуйста, можно ли такую схему шардирования и репликации организовать: https://groups.google.com/forum/#!topic/clickhouse/-t2JTu_Du9I

Alexey
25.06.2017
14:03:47

Pika
25.06.2017
16:35:01
В SQL диалект Clickhouse не планируется добавить оконные и аналитические функции? Оч не хватает.

zigmund
26.06.2017
03:26:20
Добрый день.

Google

zigmund
26.06.2017
03:26:35
Опять про broken pipe...
А точно ли реплики решают проблему?
<?xml version="1.0"?>
<yandex>
<clickhouse_remote_servers>
<cluster1>
<shard>
<internal_replication>false</internal_replication>
<replica>
<host>s1r1</host>
<port>9000</port>
</replica>
<replica>
<host>s1r2</host>
<port>9000</port>
</replica>
</shard>
<shard>
<internal_replication>false</internal_replication>
<replica>
<host>s2r1</host>
<port>9000</port>
</replica>
<replica>
<host>s2r2</host>
<port>9000</port>
</replica>
</shard>
</cluster1>
</clickhouse_remote_servers>
</yandex>
То есть 2 шарда из двух реплик
И хапнули
2017.06.26 09:19:56.748482 [ 46 ] <Error> advert_views.Distributed.DirectoryMonitor: Code: 210, e.displayText() = DB::NetException: I/O error: Broken pipe: while reading from socket (10.21.16.93:9000), e.what() = DB::NetException, Stack trace:
...

Александр
26.06.2017
05:03:38
Мне вроде как помогло обновление :)
Такой проблемы не встречал

Andrey
26.06.2017
06:09:26
Нам тоже не помогло, балансируем по нодам сами.

Alexey
26.06.2017
07:19:45
так помогло или "тоже не помогло"?

Andrey
26.06.2017
07:25:05
так помогло или "тоже не помогло"?
Если вопрос ко мне, то нам не помогло. Пришлось переходить на балансировку между нодами на уровне приложения. Со дня на день вроде фикс должен в репах появиться.

Alexey
26.06.2017
07:25:36
ну выже вроде как про обновление была речь
я и подумал, что оно вышло
но одному помогло, другому "тоже не"

Google

Alexey
26.06.2017
07:26:15
Может выше обновились из testing?
как я понял в stable переходит только после установки и обкатке в yandex?

Александр
26.06.2017
07:32:40
Да, я ручками собрал с последнего тега testing сервер и проблема больше не наблюдалась

zigmund
26.06.2017
07:50:11
Печалька
Broken pipe только на одну ноду, а раком встает весь кластер.

Andrey
26.06.2017
07:57:18

Roman
26.06.2017
09:05:15

Александр
26.06.2017
09:51:37
Ребят, limit же выдирает в любом случае данные из конечного результата. Почему бы не реализовать в мета-данных ответа общее кол-во строк в результате работа запроса? Т.е. например делается запрос с использованием лимита, а в statistic добавляется total_rows - 100 например?

r
26.06.2017
09:53:47

Александр
26.06.2017
09:54:33
Ну например запрос вида select * from table order by column limit 10, 10 как отработает? Я не думаю, что там какая то хитрая логика с лимитами

r
26.06.2017
09:55:11

Александр
26.06.2017
09:56:03
Я так полагаю, что и select * from table limit 10, 10 тоже по конечному результату отработает

r
26.06.2017
09:56:59

Александр
26.06.2017
09:57:51
Но CH же читаем данные блоками, а не строками? Или при наличии лимита размер блока меняется? )

r
26.06.2017
10:01:34
В общем вот реальный запрос, на нем видна разница
SELECT COUNT(*)
FROM rt_interaction_log
┌───COUNT()─┐
│ 666939651 │
└───────────┘
SELECT *
FROM rt_interaction_log
WHERE command = 1
LIMIT 10
...
10 rows in set. Elapsed: 4.120 sec. Processed 65.54 thousand rows, 8.73 MB (15.91 thousand rows/s., 2.12 MB/s.)
SELECT *
FROM rt_interaction_log
WHERE command = 1
ORDER BY sequence DESC
LIMIT 10
...
10 rows in set. Elapsed: 22.984 sec. Processed 487.16 million rows, 70.63 GB (21.20 million rows/s., 3.07 GB/s.)

Александр
26.06.2017
10:10:05
Да, судя по всему логика тут хитрая (

Andrey
26.06.2017
10:16:43
Парни, никто не сталкивался с проблемой - Illegal columns ColumnString and ColumnConst<UInt16> of arguments of function greaterOrEquals

Google

Andrey
26.06.2017
10:16:45
?
Делаю выборку string поля после результирующего join

Tima
26.06.2017
10:20:28
http://joxi.ru/V2VEkayt0K5Egm

papa
26.06.2017
10:32:14

Александр
26.06.2017
10:37:06
Да
Не знал что такое уже есть! )

Andrey
26.06.2017
10:40:58

Bulat
26.06.2017
10:40:58
еще один go-шный коннектор для кликхаус. https://github.com/mailru/go-clickhouse

Andrey
26.06.2017
10:47:41

Bulat
26.06.2017
10:49:20
он не совмести с query билдером (mailru/dbr), потому что поддерживает только statements

Roman
26.06.2017
10:55:52
tabseparated медленный, что его все тащат в "коннекторы". рядом же есть прекрасный rowbinary

Bulat
26.06.2017
10:56:39
в rowbinary нету информации о типах и именах колонок
если будет rowbinarywithNamesAndTypes добавлю его

Maksim
26.06.2017
11:10:05
как же нет?
insert a,b,c,d format rowbinary и поехали
мы на него перевели вставку у нас и из top вообще аккумулирующий демон пропал

Bulat
26.06.2017
11:14:48
а когда читаешь ?
в спецификации нету ничего про то что там приходят информация о типах и именах колонок
и как ее парсить ?

Google

Bulat
26.06.2017
11:18:06
при вставке сервер может сам понять как парсить данные, поскольку может получить имена колонок из запроса а потом по именам уже получить типы.

Maksim
26.06.2017
11:29:23
а когда читаешь ?
У меня хорошего ответа нет, но наверное поможет хороший запросопостроитель, который знает типы данных
По именам колоной или по явной спецификации типов

Bulat
26.06.2017
11:29:50
а если добавить формат RowBinaryWithNamesAndTypes ?
это могло бы помощь решить данную проблему?

Roman
26.06.2017
11:30:22
Можно даже формат не менять. Добавить дополнительный http-заголовок в ответе

Kirill
26.06.2017
11:36:19
Там слишком много данных для заголовков, для начала можно писать и читать в разных форматах т.к. для чтения особо не важен формат, а вот на запись лучше использовать нативный

Bulat
26.06.2017
11:39:56
а в документации написанно что нативный лучше не использовать самостоятельно :)

Kirill
26.06.2017
11:41:32
это уже не так
в английском чатике проскакивала идея о поддержке MySQL протокола, но тут тоже есть ряд сложностей, например помимо протокола желательно бы добавить ряд комманд для совместимости (например begin/commit/rollback) чтоб работали существующие драйвера, вкрутить туда поддержку prepare/execute чтоб на стороне CH (по mysql протоколу) собирать батч и писать все одним блоком и т.д.

Tima
26.06.2017
12:26:41
А нет какой-нибудь голосовалки, типа какую фичу ждут больше всего? Мне например больше всего "мешает" ограниченый синтаксис JOIN-ов и "плохой" проброс условий WHERE в JOIN

Евгений
26.06.2017
12:36:36
Привет!
Возник вопрос про недерминированность groupArray. В документации сказано "Значения в массив могут быть добавлены в любом (недетерминированном)", но если у меня будет 2 groupArray в одном селекте, относительно друг друга они порядок сохраняют или тоже не гарантированно? Здравый смысл говорит, что будут соответствовать, но параноя не дремлет. :)
Пример:
SELECT
Date,
groupArray(one) AS ones,
groupArray(two) AS twos,
GROUP BY Date

Roman
26.06.2017
12:37:02
Подскажите, каким параметром можно ограничить потребление памяти при фоновых мерджах?
после увеличения max_bytes_to_merge_at_max_space_in_pool стало потреблятся слишком много памяти

Artem
26.06.2017
13:13:10

Denys
26.06.2017
13:17:47
В последнюю версию DBeaver добавили встроенный обновляемый jdbc драйвер КХ

Nikolai
26.06.2017
14:27:22

Евгений
26.06.2017
14:32:01

yuyu
26.06.2017
14:49:24
А можно ли как-нибудь select-ом получить все key-value entry из словаря (или подмножество по условию)? Или только через дублирование содержимого словаря в таблице?

Google

papa
26.06.2017
14:51:51
будет движок таблиц на эту тему, не помню степень его готовности, пока можно если вы можете перебрать множество ключей или перелить словарь в таблицу.

Vladimir
26.06.2017
15:00:39
Круто

Alexander
26.06.2017
15:03:03
Уравниваю опять производительность с диска:
КХ: 1700мс, кдб: 72мс (с диска). Запрос аналогичный. Выше был.
Причем такое ощущение, что 99% времени занимает пересчет константы в правой части in

papa
26.06.2017
15:08:06
вроде не пересчитывается
SELECT number IN
(
SELECT toUInt64(sleep(1))
) AS x
FROM system.numbers
LIMIT 10
┌─x─┐
│ 1 │
│ 0 │
│ 0 │
│ 0 │
│ 0 │
│ 0 │
│ 0 │
│ 0 │
│ 0 │
│ 0 │
└───┘
10 rows in set. Elapsed: 1.002 sec.

Alexander
26.06.2017
15:08:51