
Alexey
22.03.2018
09:58:37
вы понимаете, что в дампе только данные? и что его нужно заливать в какую-то таблицу?

Kirill
22.03.2018
09:59:14

Kirill
22.03.2018
09:59:59
я его strings file.dump, и там есть названия столбцов и типы переменных, вот только вот как это вытащить в полном объеме

Kirill
22.03.2018
10:01:15

Google

Kirill
22.03.2018
10:01:49

Дмитрий
22.03.2018
10:02:57
Дамп может быть жатый и не жатый. От этого будет зависеть порядок действий. Если жатый - сначала нужно разжать блок, и потом вычитать заголовок. В нем будет хэш сумма, и длинна нежатого блока. Дальше будет другой заголовок, в котором есть информация о блоке, но его можно пропустить. И уже из следующего заголовка можно полностью вытащить структуру таблицы, названия и типы колонок. Можете вот тут посмотреть пример, если знакомы с Java: https://github.com/Mangelion/achord/blob/master/src/main/java/com/github/mangelion/ClickHousePacketDecoder.java#L86

Kirill
22.03.2018
10:02:58
Для простых типов сегодня вечером может сделаю и сюда закину https://github.com/ClickHouse-Ninja/clickhouse-metadata-extractor

Kirill
22.03.2018
10:05:10
большое спасибо, было бы круто

Nik
22.03.2018
10:14:25

Daniel
22.03.2018
10:14:36
Добавил реплику, пытаюсь писать в одну из distributed таблиц на ранее существовавшем в числе кластера сервере, возвращает ошибку Bad path syntax
Bad path syntax: /var/lib/clickhouse/data/distributedbd/ppitest_datagate... и дальше перечисляются все сервера шарда, в который была добавлена реплика. адрес и аутентификационная информация нового сервера присутствует в пути.
при этом в папке /var/lib/clickhouse/data/distributedbd/ppitest_datagate/ видно, что такого пути действительно нет, есть старый, в котором путь шарда ещё без добавленной реплики.
подскажите, папку надо вручную переименовывать, или что-то пошло не так? справедливости ради - реплика добавленная стянула себе все данные шарда и успешно работает на чтение.
это ж что получается, количество реплик, с которыми может работать Distibuted таблица, ограничено длиной имени файла в Linux ? ?


Андрей
22.03.2018
10:41:33
Всем привет! Возможно ли запрос SHOW CREATE TABLE заставить отдавать отформатированный (с переносами строк и отступами) запрос на создание таблицы?

Гаврилов
22.03.2018
10:42:42
а LIMIT N BY COLUMNS в последних версиях быстрее не стал?
у меня 1.1.54342

Daniel
22.03.2018
11:22:17

Vyacheslav
22.03.2018
11:31:49

Андрей
22.03.2018
11:36:06

Google

Vyacheslav
22.03.2018
11:39:39
с кого там счетчики снимают? вот он

Nata
22.03.2018
11:45:25
Привет! Попробовала подключить внешний словарь монго, но не вышло. В логах никаких ошибок нет, в system.dictionaries показывает element.count 1 (это не так) а в last exception MongoDB: dictionaries.curr, user@ip:port. User правильный, коннект до монго есть, подскажите, что это за странный last_exception и как его отдебажить?
v1.1.54343

Anton
22.03.2018
11:51:36
Авторизация через ту же бд куда и подключение?

Tima
22.03.2018
11:52:38

Nata
22.03.2018
11:53:05
нет, авторизация через admin
<mongodb>
<host>host</host>
<port>27017</port>
<user>dict</user>
<password>pass</password>
<db>dictionaries</db>
<collection>curr</collection>
</mongodb>

Michal
22.03.2018
11:55:09
Добрый день. ОПсы спрашивают про фразу в документации. "Лучше использовать программный RAID в Linux (mdadm)." Настолько ли лучше использовать программный, чтоб при наличии на сервере аппаратного RAID-контроллера, переключать его в режим passthrough, и управлять дисками средствами ОС? Какие конкретно преимущества есть в программном RAID?

Wolf
22.03.2018
11:56:09
переносимость, адекватная скорость, независимость от железа.

Stanislav
22.03.2018
11:56:19
зависит от рейда, насколько я понимаю. Как минимум, для HP Smart Array - справедливо однозначно.
В смысле, проверено лично - в случае железного рейда скорость записи меньше.

Tima
22.03.2018
11:57:01

Kirill
22.03.2018
12:24:49
большое спасибо, было бы круто
Для простых типов (String, UInt(x), Int(x), DateTime, Date, FixedString) https://gist.github.com/kshvakov/4773d71d8735c4c5bc69ebf7ff9d9eba
Остальное как руки дойдут

Egor
22.03.2018
12:25:11
А кто нибудь решал задачу извлечения границ сессий из потока событий? Вариант который здесь https://groups.google.com/forum/#!topic/clickhouse/ZCZaMFEvoWw работает только если у девайсов не пересекаются сессии во времени. Если они пересекаются, тогда сквозной runningDifference становится отрицательным

Nata
22.03.2018
13:06:18
а можно как-нибудь auth db прописать в конфиге словаря? в примерах не нашла

Tima
22.03.2018
13:18:21

molo4ko
22.03.2018
13:26:34
@DockerContainer(image = "yandex/clickhouse-client", net = "host", arguments = {
"--multiquery",
"--query=CREATE TABLE IF NOT EXISTS default.connection_test_uint64_3(date Date DEFAULT toDate(datetime), id UInt64, datetime UInt32, value UInt64) ENGINE = MergeTree(date, (datetime), 8192)"})
ничего себе! круто

Nata
22.03.2018
13:27:12
конечно есть реальный :) нормально, уже работает, сделала аутентификацию через db словаря, но вообще хотелось бы на будущее, чтоб ее можно было указывать

Tima
22.03.2018
13:43:36

Google

Артемий
22.03.2018
13:58:50
Как-нибудь можно соединить в один запрос 2 команды?
Например:
>OPTIMIZE TABLE log PARTITION 201803 FINAL; OPTIMIZE TABLE log PARTITION 201802 FINAL;

Tima
22.03.2018
14:04:01

Артемий
22.03.2018
14:13:50

Ph
22.03.2018
14:34:03
есть вопрос, есть в ch аналог функции группировки по времени как в influxbd, group by time(1h)
или какой есть воркэраунд чтобы это сделать?

Konstantin
22.03.2018
14:35:12

Ph
22.03.2018
14:37:47
хм.. это вы про округление дат, у меня был вопрос про группировку временным окном

Kirill
22.03.2018
14:39:45

Stanislav
22.03.2018
14:41:13
Можно подсмотреть, как плугин графаны делает


Konstantin
22.03.2018
14:45:18
SELECT toStartOfXX(action_time) AS t, COUNT(*) FROM T1 group by t
SELECT
toStartOfHour(timestamp) AS t,
count()
FROM table
WHERE date = '2018-03-21'
GROUP BY t
┌───────────────────t─┬─count()─┐
│ 2018-03-21 13:00:00 │ 17245 │
│ 2018-03-21 11:00:00 │ 16856 │
│ 2018-03-21 17:00:00 │ 20655 │
│ 2018-03-21 00:00:00 │ 5441 │
│ 2018-03-21 05:00:00 │ 2704 │
│ 2018-03-21 08:00:00 │ 10114 │
│ 2018-03-21 01:00:00 │ 3083 │
│ 2018-03-21 09:00:00 │ 12841 │
│ 2018-03-21 04:00:00 │ 1697 │
│ 2018-03-21 19:00:00 │ 24195 │
│ 2018-03-21 18:00:00 │ 23479 │
│ 2018-03-21 23:00:00 │ 11812 │
│ 2018-03-21 14:00:00 │ 17512 │
│ 2018-03-21 02:00:00 │ 2451 │
│ 2018-03-21 22:00:00 │ 15645 │
│ 2018-03-21 21:00:00 │ 22852 │
│ 2018-03-21 10:00:00 │ 15587 │
│ 2018-03-21 07:00:00 │ 6851 │
│ 2018-03-21 03:00:00 │ 1565 │
│ 2018-03-21 20:00:00 │ 26494 │
│ 2018-03-21 12:00:00 │ 16328 │
│ 2018-03-21 15:00:00 │ 17739 │
│ 2018-03-21 16:00:00 │ 19764 │
│ 2018-03-21 06:00:00 │ 4349 │
└─────────────────────┴─────────┘
не так?


Дмитрий
22.03.2018
15:13:49
Добрый вечер!
А как-то можно привести UUID к строке? К FixedString(16)? Хоть к чему-нибудь?

Kirill
22.03.2018
15:16:38

Ph
22.03.2018
15:20:39

Konstantin
22.03.2018
15:21:43

Дмитрий
22.03.2018
15:25:32

Kirill
22.03.2018
15:27:14
А, я понял, как я уже говорил: "Тип UUID в ClickHouse поломан и местами работает некоректно, вот это одно из мест :)"
https://github.com/yandex/ClickHouse/issues/1393
https://github.com/yandex/ClickHouse/issues/1770

Дмитрий
22.03.2018
15:29:38
Да я так и понял ) Пишу в надежде на то что разработчики сего счастья знают тайные тропы

Kirill
22.03.2018
15:35:35
UUID пришел от стороннего контрибутора, он его местами недоделал. Я как-то делал попытку понять как добавить/поправить тип в КХ, но там нужно прописать все в кучу мест. Есть надежда на митап для разработчиков, о котором говорил @milovidov_an , может после этого для многих станет проще понимать что там внутри и таких недоделок будет меньше. Кстати Алексей (@milovidov_an ) нет ли какой-нибудь информации по данному мероприятию: примерный план/формат, месяц проведения?

Google

Alexey
22.03.2018
15:43:05

Kirill
22.03.2018
15:45:01

Alexey
22.03.2018
15:45:02
План такой: наши доклады + обсуждение тем на выбор аудитории. Скорее всего, обсуждение около половины времени или больше. Наши доклады про внутреннее устройство системы и детали про некоторые части. Сейчас интересно узнать пожелания.

Kirill
22.03.2018
15:45:46

Alexey
22.03.2018
15:48:38
Да, плюс в форме регистрации можно будет указать интересующие вопросы. Анонсирование, скорее всего, за 1.5 месяца, то есть где-то через пару недель.
Для UUID в первую очередь надо доделать все FieldVisitors. См. по коду "StaticVisitor". Где нет UInt128 - надо добавить.

Alexander
22.03.2018
15:55:28

Alexey
22.03.2018
15:58:10

Roman
22.03.2018
16:08:13
Подскажите, пожалуйста, суть проблемы:В MSSQL Server настроен linked server к КХ через ODBC-драйвер, при выполнении запроса и выборе столбцов типа String получаю такую ошибку: OLE_DB provider "STREAM" for linked server "(null)" returned message "Требуемое преобразование не поддерживается". Однако столбцы типа int, date, получаю без проблем!

Tima
22.03.2018
16:41:08

Aliaksei
22.03.2018
18:53:26
<Error> Application: Access to file denied: format_schemas после апгрэйда, в чом проблема?
кажется понял, надо полный путь сейчас

Alexey
22.03.2018
19:29:29
Коллеги, чет не могу сообразить, где размещать настройку вида connect_timeout_with_failover_ms ?
на каком уровне?

Alexey
22.03.2018
19:31:01
@neiwick
Привет. Я в кликхаусном чате сообщение про ошибку не нашел.
Там тест некорректный - в цикле только одна строчка из 3х. Поэтому вместо 3N значений пишется N + 2, при том еще и размер у них не совпадает.
stmt.sendRowBinaryStream("INSERT INTO default.connection_test_uint64_?id, datetime, value)",
stream -> {
for (int i = 0; i < NUMBERS_COUNT; i++)
stream.writeUInt64(1);
stream.writeUInt32(1);
stream.writeUInt64(1);
});
Не знаю куда отвечать, зафорварди пожалуйста куда надо.

Alex
22.03.2018
19:32:16
на каком уровне?
Это пользовательская настройка, то есть можно на уровне запроса, на уровне сессии, на уровне профиля пользователя.

Alexey
22.03.2018
19:32:40
у меня не работает обращение черещ дистрибютед
это в профиле пользователя через которого устанавливается кластерное соединение?

Alex
22.03.2018
19:33:01
Какая версия?

Google

Alexey
22.03.2018
19:33:12
ну я не думаю, что дело в этом
в других регионах работает
а тут регион через пол страны

Alex
22.03.2018
19:35:57
Хотя действительно, нужно для дефолтного профиля указывать

Alexey
22.03.2018
19:38:13
т.е. вот на этом уровне?
<yandex>
<!-- Profiles of settings. -->
<profiles>
<!-- Default settings. -->
<default>
<connect_timeout_with_failover_ms>250</connect_timeout_with_failover_ms>

Alex
22.03.2018
19:39:41
ага

Дмитрий
22.03.2018
19:47:30
А чисто теоретически, через одно соединение можно налить столько данных, что начнет выскакивать too much partitions, merges are significantly slower than inserts?

Wolf
22.03.2018
19:50:52
не очень понятно при чем тут соединение , если вставлять мелкими пачками тысячу раз в секунду то можно

Alexey
22.03.2018
19:51:47

Alexey
22.03.2018
19:52:05
ага
У меня было ощущение, что users.xml файл и его изменения подхватываются без перезагрузки CH. Это так? Или мне показалось?

Wolf
22.03.2018
19:52:31
ДА подхватываются

Alex
22.03.2018
19:52:54
Но это работает не со всеми настройками :)
Например для этой придётся ещё перезагрузить конфиг кластеров. Например, сделать touch config.xml или отправить запрос SYSTEМ DROP DNS CACHE

Alexey
22.03.2018
19:55:26
фух
в моей версии походу нет такого про DNS

Дмитрий
22.03.2018
19:58:41
INSERT SELECT же как понимаю будет выполняться целиком на сервере без сетевой активности? А есть возможность на стороне сервера приоретезировать треды сетевых соединений над тредами мержа?


Alexey
22.03.2018
20:04:31