
Геннадий
08.08.2017
08:52:11
вернул взад ноду /clickhouse/tables/{SHARD}/billy_securitylog/block_numbers/201708/
КХ стал писать что нода /clickhouse/tables/{SHARD}/billy_securitylog/block_numbers/201708/block- существует
грохнул все ноды /clickhouse/tables/{SHARD}/billy_securitylog/block_numbers/201708/block*
запись пошла

Google

Igor
08.08.2017
09:33:20
DB::Exception: Size of filter doesn't match size of column..
Кто то знает как побороть такую ошибку
Такой запрос проходит
SELECT * FROM sm.views WHERE create_date=today() and url_domain ='smi2.ru' LIMIT 1
А вот такой падает с ошибкой
SELECT * FROM sm.views WHERE create_date=today() and url_domain ='smi2.net' LIMIT 1
Отличие только в url_domain

Александр
08.08.2017
09:34:39
А там не fixed string?
Просто такое только в одном месте есть в КХ
https://github.com/yandex/ClickHouse/blob/master/dbms/src/Columns/ColumnFixedString.cpp
Хотя нет, есть и в других колонках
А в логах КХ посмотрите трейс, там должно быть написано откуда именно такое валится
И будет более понятно

Nikolai
08.08.2017
09:39:29

Igor
08.08.2017
09:48:28
Формат колонки String
Разобрался - у нас в таблице FixedString - и в них hex данные - если их не извлекать ошибки нет
Буду разбираться в сырцах и что мы напихали в CH
Спасибо за наводку

Google

Nikolai
08.08.2017
09:53:46
и все-таки какая версия CH?

Igor
08.08.2017
09:55:07
ClickHouse 1.1.54262 testing

Vladislav
08.08.2017
10:07:44
а можно как-нибудь сконвертить строку в массив символов? типа splitByChar, только без первого аргумента

Nikolai
08.08.2017
10:12:22

Igor
08.08.2017
10:40:38

Roman
08.08.2017
12:48:15
а как выглядит рекомендованный способ размазывания данных по кластеру с т.з. clickhouse? Вот, к примеру, у меня есть 4 ноды. Как я понял из документации, по-хорошему, я делаю 2 шарда, у каждого 2 реплики. Но тогда, в общем случае, если я запускаю тажелый запрос, то только 2 из 4х нод будут его процессить, остальные будут стоять и ничего не делать.
возможно ли для таких случаев сделать 4 шарда по 2 реплики, но намазать это на кластер из 4х нод?

Евгений
08.08.2017
12:51:36
А будут только единичные запросы или какой-то поток?

Roman
08.08.2017
12:52:48
я намек про throughtput понял. запросов будет поток, но весьма жиденький. поэтому между latency/throughtput хотелось бы выбрать latency.
а то как я понял из активного гуглежа, такой сетап возможен, но через попу: https://github.com/yandex/ClickHouse/issues/508

Sergey
08.08.2017
14:13:34
Добрый день! Подскажите, можно как-то в КХ добиться функционала FIRTST/LAST агрегаций?

Roman
08.08.2017
14:23:00
мне всегда казалось, что first/last агрегации недетерминированы, так как данные хз в какой последовательности будут читаться. а какой use-case для этого?

Вася
08.08.2017
14:25:10

Sergey
08.08.2017
14:28:49
спасибо!

Vladimir
08.08.2017
17:28:07
Кто нибудь поставил новую версию? Если да - то каким способом?

Alexander
08.08.2017
17:46:20
А mark указывает на строку сжатых данных или разжатых?

Dmitry
08.08.2017
17:47:23
Andrey расскажет, он ставил :)

Andrey
08.08.2017
17:55:33

Alexey
08.08.2017
18:18:56

Google

Vladimir
08.08.2017
18:33:46

Fike
08.08.2017
18:35:40
http://repo.yandex.ru/clickhouse/xenial/pool/main/c/clickhouse/ вроде там версии более свежие, чем указанная 244

Vladimir
08.08.2017
18:50:43
Спасибо!!
:) select timezone();
SELECT timezone()
┌─timezone()─┐
│ Zulu │
└────────────┘
Ребят а где выставить? пробовал в config.xml timezone

Alexey
08.08.2017
20:00:34
Разве в конфиге не работает?

Vladimir
08.08.2017
20:01:39
<?xml version="1.0"?>
<yandex>
<logger>
<level>trace</level>
<log>/var/log/clickhouse-server/clickhouse-server.log</log>
<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>
<size>1000M</size>
<count>10</count>
</logger>
<timezone>UTC</timezone>

Alexey
08.08.2017
20:02:50
Но UTC - это и есть Zulu.
Сервер выводит некое каноническое имя, которое для UTC равно Zulu.

Vladimir
08.08.2017
20:03:43
Ребят подскажите а где можно про Dictionary table посмотреть?

Alexey
08.08.2017
20:27:59
Самое простое:
CREATE DATABASE dictionaries ENGINE = Dictionary

Alexander
08.08.2017
20:30:17
Признаться тоже не очень понятно что это за энджин. Это просто по сути виртуальный слепок куска dictionaries из конфига?

Vladimir
08.08.2017
20:34:20

Alexey
08.08.2017
20:36:35
Это пример, как создать базу данных, в которой автоматически содержатся таблицы для словарей.
Также таблицы для словарей можно создавать и по отдельности.

Алексей
08.08.2017
20:51:04
Господа, а есть какойто формат TabSeparatedGziped.
хочу вытащить одну табличку, 18 гигов в кх, а в TabSeparated уже 340 гигов. и судя по бегунку это только 70%.

Mike
08.08.2017
21:13:48
Можно стримить в гзип, вероятно.

Алексей
08.08.2017
21:14:58
ну если формата нету то так и придется делать

Mike
08.08.2017
21:16:30
Не за компом, чтобы проверить, но типа «кх-клиент -ку “селект * фром интернет формат табсепарэйтед“ | gzip > результат.tsv.gz» должно сработать в какой-то вариации

Google

Mike
08.08.2017
21:17:56
Если вы понимаете, о чем я

Alexey
08.08.2017
22:15:20

Алексей
08.08.2017
22:15:56
да. сотворил уже гадость на базе btrfs с онлайн сжатием.
спасибо

Stas
09.08.2017
05:43:27
@milovidov_an спам опять :(

Admin
ERROR: S client not available

Mike
09.08.2017
06:49:23

Вася
09.08.2017
06:53:56
Есть же clickhouse-compressor.
Проверил, вот так работает:
$ clickhouse-client --query 'SELECT * FROM test FORMAT Native' | clickhouse-compressor > test.compressed
$ cat test.compressed | clickhouse-compressor -d | clickhouse-client --query 'INSERT INTO test FORMAT Native'

Roman
09.08.2017
07:22:55
а что мешает вместо clickhouse-compressor использовать любой другой сжимальщик? Я даже не знал о таких проблемах, жил себе с "... | pv | zstd > table.csv.zstd" и "cat table.zstd | pv | zstd -d | clickhouse-client --query ..."

Вася
09.08.2017
08:08:23
Да в принципе ничего. Разве что сжатие должно получиться ровно такое же как внутри кх. Удобнее ориентироваться какой размер в итоге получится.

Алексей
09.08.2017
08:28:53
Кх клиент в докер-компоузе не удобно туда пайпы фигачить.

Dmitry
09.08.2017
08:32:59
Для ENGINE = Distributed() ZK нужен вообще?

Старый
09.08.2017
08:39:46

Andrey
09.08.2017
08:44:16

Dmitry
09.08.2017
08:45:29
то есть если мы буферизуем, шардируем и реплицируем внешним процессом, можно использовать CH без ZK?

Алексей
09.08.2017
08:48:09
DDL же еще

Roman
09.08.2017
08:48:37
как я понял, если ваш собственный репликатор умеет обрабатывать падения нод (к примеру, если реплика легла, а потом поднялась через час, то залить в нее пропущенные данные), то зк и не нужен.
в противном случае будет рассинхронизация реплик, тлен и тоска.

Google

Dmitry
09.08.2017
08:52:42
ну да, если реплика легла и запись остановилась, в очереди сохранит

Alex
09.08.2017
08:54:16
А посоветуйте, пожалуйста, оптимизации для компрессии.
Импортирую данные в CH из ORC. В ORC данные лежат в одной таблице, занимают 10G.
В CH данные лежат в 450 таблицах, занимают 30Gb. Что следует покрутить? Уже очень обидно за такую сильную разницу.

Tima
09.08.2017
08:54:54

Alex
09.08.2017
08:59:07
Эвенты различаются аттрибутивков
*аттрибутивкой
в ORC это Map<String,String>
в CH - отдельные таблицы и колонки для эвентов

Tima
09.08.2017
09:00:42
В CH есть Nested-колонки
https://clickhouse.yandex/docs/ru/data_types/nested_data_structures/nested.html
По сути это вложеная таблица

Alex
09.08.2017
09:02:56
Т.е. вы предлагаете под каждый тип эвента завести вложенную структуру?
Меня вот это смущает:
Работоспособность запроса ALTER для элементов вложенных структур данных, является сильно ограниченной.
Т.к. у эвентов иногда происходит добавление/удаление полей

Tima
09.08.2017
09:04:19
А как в ORC это происходит? Разве можно менять колонки в файле?

Alex
09.08.2017
09:13:21

Tima
09.08.2017
09:39:43