@clickhouse_ru

Страница 468 из 723
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
Дмитрий
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
Андрей
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
Авторизация через ту же бд куда и подключение?

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
<mongodb> <host>host</host> <port>27017</port> <user>dict</user> <password>pass</password> <db>dictionaries</db> <collection>curr</collection> </mongodb>
Попробуйте с сервера где стоит КХ через mongo клиент подключится с параметрами как в конфиге. Что-то типа такого mongo -d dictionaries --use dict --password pass

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
а можно как-нибудь auth db прописать в конфиге словаря? в примерах не нашла
Не видел такой возможности. А вы уверены что это <host>host</host> правильно? Или там на самом деле есть реальный урл?

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 словаря, но вообще хотелось бы на будущее, чтоб ее можно было указывать

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

Артемий
22.03.2018
14:13:50
Никак
Ясно, спасибо!

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

или какой есть воркэраунд чтобы это сделать?

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

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)? Хоть к чему-нибудь?

Ph
22.03.2018
15:20:39
не так?
все работает, много спс

Konstantin
22.03.2018
15:21:43
Дмитрий
22.03.2018
15:25:32
https://clickhouse.yandex/docs/en/single/#uuidstringtonumstr
нет, это я нашел уже. DB::Exception: Illegal type UUID of argument of function UUIDStringToNum, expected FixedString(36).

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
Kirill
22.03.2018
15:45:01
Alexey
22.03.2018
15:45:02
План такой: наши доклады + обсуждение тем на выбор аудитории. Скорее всего, обсуждение около половины времени или больше. Наши доклады про внутреннее устройство системы и детали про некоторые части. Сейчас интересно узнать пожелания.

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

Для UUID в первую очередь надо доделать все FieldVisitors. См. по коду "StaticVisitor". Где нет UInt128 - надо добавить.

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, получаю без проблем!

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
ага

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

Alexey
22.03.2018
19:51:47
А чисто теоретически, через одно соединение можно налить столько данных, что начнет выскакивать too much partitions, merges are significantly slower than inserts?
На обычных INSERT SELECT (которые делают то же самое - пишут данные с такой скоростью, с какой они записываются в один поток) такого не возникает, а на большом количестве параллельных INSERT SELECT в одну таблицу уже иногда возникает. Но ещё зависит от других факторов - может как-то влиять схема партиционирования, а также скорость работы и загруженность ZK кластера.

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 (которые делают то же самое - пишут данные с такой скоростью, с какой они записываются в один поток) такого не возникает, а на большом количестве параллельных INSERT SELECT в одну таблицу уже иногда возникает. Но ещё зависит от других факторов - может как-то влиять схема партиционирования, а также скорость работы и загруженность ZK кластера.
Я вчера столкнулся с этим на скорости примерно около 35 млн строк/сек. Пробовал играть с размером блока в пределах 5-10кк строк вместо 1024 * 1024, но прямой связи между ошибкой, схемой и размером блока пока не нашел. Судя по коду сервера, размер блока сильно повлиять на ошибку не может. А вот порядок данных в колонках первичного ключа действительно помогает, и даже незначительно ускоряет вставку. Но видимо это сайд эффект того что пул потоков на мерж тратит меньше цпу времени.

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

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