@clickhouse_ru

Страница 600 из 723
Абрамов
25.07.2018
16:52:05
В таблице все колонки String и только одна DateTime materialized с этой функцией

Сразу назад откатили... Если только на тесте попробовать повторить

А что не так с parseDateTimeBestEffortOrZero - что поменялось?
2018.07.24 14:54:37.659733 [ 1 ] <Error> Application: DB::Exception: Cannot create table from metadata file /var/lib/clickhouse/metadata/...., error: DB::Exception: Cannot parse datetime: Cannot parse DateTime from String, 

Alexander
25.07.2018
16:56:43
а гдето можно почитать что такое движок таблиц URL?
Это очень похожий на file движок, работает с данными в разных форматах. Если формат позволяет, можно делать и select и insert, иначе только select. Данные берутся не из файла, а из url. Умеет забирать по HTTP и HTTPS. Скоро будет описание в документации.

Google
Serge
25.07.2018
16:57:00
спасибо!

Абрамов
25.07.2018
16:59:57
А что не так с parseDateTimeBestEffortOrZero - что поменялось?
Странно, что и при детаченных данных ругалась на метаданные

Tatiana
25.07.2018
17:36:28
можно проще <attribute> <name>updated_date</name> <type>DateTime</type> <null_value>0</null_value> </attribute>
Из-за этого у меня 18.1.0 не запускается, говорит: error: DB::Exception: Cannot parse datetime: error parsing null_value <attribute> <name>updated_date</name> <type>DateTime</type> <null_value>0</null_value> </attribute>

Абрамов
25.07.2018
18:18:00
Да, так не работает: SELECT toDateTime('0')
Такая же заглушка на пустое значение стоит! Значит из-за нее

А в предыдущих верисиях toDateTime('0') работает... и toDateTime(0) кажется тоже

Dmitry
25.07.2018
18:30:03
а нормально ли с точки зрения производительности писать в таблицу большие объемы данных а выборку делать через вьюху ?

Alexey
25.07.2018
18:37:24
а нормально ли с точки зрения производительности писать в таблицу большие объемы данных а выборку делать через вьюху ?
С выборкой через view есть недостатки - условия не прокидываются во внутренний запрос и не работает индекс. Поэтому так не рекомендуется.

Из-за этого у меня 18.1.0 не запускается, говорит: error: DB::Exception: Cannot parse datetime: error parsing null_value <attribute> <name>updated_date</name> <type>DateTime</type> <null_value>0</null_value> </attribute>
Проверил - оказывается возможность парсинга строки '0' как DateTime работала только за счёт implementation specific behaviour и то не всегда. Такой пример не работал и в старой версии тоже: CREATE TEMPORARY TABLE test (d DateTime, x UInt8, s String) INSERT INTO test FORMAT CSV 0, 1, hello world h Поэтому вернуть такое поведение не получится.

Tatiana
25.07.2018
18:46:20
Большое спасибо, будем менять ?

Dmitry
25.07.2018
18:55:34
С выборкой через view есть недостатки - условия не прокидываются во внутренний запрос и не работает индекс. Поэтому так не рекомендуется.
Допустим есть N таблиц ReplacingMergeTree из которых просто делается выборка определенных данных с указанием FINAL, все они содержат timestamp метку и из вьюхи уже выбираем с фильтром по этой метке ?

Alexey
25.07.2018
18:58:59
Допустим есть N таблиц ReplacingMergeTree из которых просто делается выборка определенных данных с указанием FINAL, все они содержат timestamp метку и из вьюхи уже выбираем с фильтром по этой метке ?
Если timestamp не в индексе, то в этом случае существенной разницы в производительности не должно быть. Тем не менее, всё-равно может быть менее эффективно выбирать через view, из-за того, что в этом случае не производятся некоторые оптимизации (например, prewhere).

Google
Alexey
25.07.2018
19:17:01
Кто-то коннектил Clickhouse к TeamSQL?
Я попробовал только что. Но не вижу в списке поддерживаемых баз ClickHouse или generic. Может быть можно подключить через ProxySQL.

Sergey
25.07.2018
19:44:38
Быстрый глупый вопрос: а КХ как-то кеширует / оптимизирует результаты запросов по мере их накопления? У нас серия обстрелов показывает на одних и тех же данных уменьшение времени ответа чуть ли не вдвое, что хорошо, но настораживает. :)

Ну ок. Спокойной ночи.

Александр
25.07.2018
20:34:00
Vladislav
25.07.2018
20:54:34
Всем привет. Ищу разработчика, который сможет реализовать и запулить(и что бы приняли) функцию аналогичную функции lag в oracle. Мы когда-то делали на основе RunningDifferent, но не получилось реализовать для string, там как-то сложно получалось. По денежке договоримся

Sergey
26.07.2018
05:59:26
Илья, Александр, спасибо.

Vladimir
26.07.2018
06:00:28
Кто может подсказать почему не восстанавливаеться таблица?

2018.07.26 05:59:17.719593 [ 1 ] <Error> Application: DB::Exception: Cannot create table from metadata file /mnt/local/clickhouse/metadata/default//%2Einner%2EMetricsDistributedRecentView.sql, error: DB::Exception: MergeTree data format version on disk doesn't support custom partitioning, stack trace: 0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x15) [0x84eb125] 1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x21) [0x2ccbf01] 2. /usr/bin/clickhouse-server(DB::MergeTreeData::MergeTreeData(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DB::ColumnsDescription const&, DB::Context&, std::shared_ptr<DB::IAST> const&, std::shared_ptr<DB::IAST> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<DB::IAST> const&, std::shared_ptr<DB::IAST> const&, DB::MergeTreeData::MergingParams const&, DB::MergeTreeSettings const&, bool, bool, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)+0x14dd) [0x7ea6b5d] 3. /usr/bin/clickhouse-server(DB::StorageReplicatedMergeTree::StorageReplicatedMergeTree(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DB::ColumnsDescription const&, DB::Context&, std::shared_ptr<DB::IAST> const&, std::shared_ptr<DB::IAST> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<DB::IAST> const&, std::shared_ptr<DB::IAST> const&, DB::MergeTreeData::MergingParams const&, DB::MergeTreeSettings const&, bool)+0x4e6) [0x7e56806]

притом что ubuntu@tsf-data24:~$ sudo -u clickhouse ls -l /var/lib/clickhouse/flags/force_restore_data -rw-r--r-- 1 clickhouse clickhouse 2 Jul 26 05:58 /var/lib/clickhouse/flags/force_restore_data

нашел https://github.com/yandex/ClickHouse/issues/1569

пофикшено в нофой версии

Sergey
26.07.2018
06:25:27
Он кеширует разжатые блоки.
Пардон, тоже спасибо. :)

Aleksandr
26.07.2018
07:45:47
Здравствуйте. Подскажите пожалуйста, что будет если упадет зукипер и позже восстановится?

или лучше делать кластер из зукипера сразу?

Aleksandr
26.07.2018
07:47:26
понял, спасибо

Diomid
26.07.2018
07:50:04
Здравствуйте. Подскажите пожалуйста, что будет если упадет зукипер и позже восстановится?
Как минимум данные у вас не отреплицируются сразу. А если у вас при трех КХ в реплике стоит опция <insert_quorum>2</insert_quorum>, то будет вообще ошибка при записи.

Google
Aleksandr
26.07.2018
07:50:22
понял, спасибо

еще вопрос, данные в зукипере удаляются как то автоматом или руками как то нужно?

Wolf
26.07.2018
07:54:01
Какие данные, если о реплике то удаляются автоматом когда удаляешь таблицу в кх

Если просто выключить сервер кх то надо руками удалять в зк

Aleksandr
26.07.2018
07:55:35
уже вижу что в зукипере постоянно делаются снепшоты а данные с зукипера удаляются которые не нужны

правильно ли я понимаю что снепшоты зукипера можно чистить и оставлять например снепшоты за последние 3 дня например?

Alexey
26.07.2018
07:57:26
правильно ли я понимаю что снепшоты зукипера можно чистить и оставлять например снепшоты за последние 3 дня например?
С настройками по умолчанию, ZooKeeper является бомбой замедленного действия: Сервер ZooKeeper не будет удалять файлы со старыми снепшоты и логами при использовании конфигурации по умолчанию (см. autopurge), это является ответственностью оператора. Эту бомбу нужно обезвредить.

из доки

про zookeeper

https://clickhouse.yandex/docs/ru/operations/tips/#zookeeper

Aleksandr
26.07.2018
07:59:20
хорошее описание, спасибо ?

Alex
26.07.2018
08:30:40
привет всем! а есть у кого нибудь вот такой ман только на русском? https://media.readthedocs.org/pdf/clickhouse-docs-en/latest/clickhouse-docs-en.pdf

Stanislav
26.07.2018
08:34:58
Не в пдф - на гитхабе или на https://clickhouse.yandex/docs/ru/

Сразу сюда: https://clickhouse.yandex/docs/ru/single/ - будет одностраничная версия.

Alex
26.07.2018
08:37:43
спасибо! хотел в читалку загрузить, там интернета нет

Alexander Nairashvili
26.07.2018
08:57:08
https://clickhouse.yandex/docs/ru/operations/tips/#zookeeper
3.4.8 - уже не подходит? когда я сетапил клик в рекомендованых вроде >=3.4.6 стоял (интересно с какими проблемами я могу столкнуться)

Alexey
26.07.2018
08:57:31
хз, лучше свежее

Stanislav
26.07.2018
09:00:52
точно работает: zookeeper: Installed: 3.4.9-3 Candidate: 3.4.9-3 Version table: *** 3.4.9-3 500 500 http://ftp.de.debian.org/debian stretch/main amd64 Packages 100 /var/lib/dpkg/status

Wolf
26.07.2018
09:06:11
у нас 3.4.8-1 из стандартного репо убунты

Admin
ERROR: S client not available

Google
Wolf
26.07.2018
09:06:14
проблем никаких нет

зукипер просто обновляется нынче очень не часто

Diomid
26.07.2018
09:07:20
у нас 3.4.8-1 из стандартного репо убунты
Это ж от февраля 2016 года версия. И как долгий у вас полет на нем?

Wolf
26.07.2018
09:07:38
по моему с конца прошлого года

я думаю все кто на убунту 1604 запускался его юзают

Wolf
26.07.2018
09:37:12
ну это видимо не дефолтный пакет

есть у них репо со свежим зукипером ?

я по моему с ходу не нашел и на тестах отлично работал зукипер из коробки

Diomid
26.07.2018
09:37:48
Да, это не из репозитория. Простите, забыл указать.

Wolf
26.07.2018
09:38:14
сами собираете ?

Diomid
26.07.2018
09:39:24
сами собираете ?
Не собираем. Просто скачиваем архив, все по официальному мануалу.

Vladimir
26.07.2018
09:57:56
Используем Батч инсерты в КХ Пару раз уже было что КХ возвращал исключение, например из-за медленных мержей Что делать с батчем? Повторять вставку? Выкидывать? Получается частичная вставка или повторы в таком случае

Как быть?

Может КХ возвращает список того что вставил или не вставил?

Используем JDBC

Saprow
26.07.2018
10:07:27
Здравствуйте, имеется таблица с полем для целых чисел Clients, полем для строки (по ней ведётся поиск) и полем DateTime, каким образом можно найти максимальное значение и узнать в какое время DateTime оно было ? Запрос получается такого вида SELECT DateTime,max(Clients) as Maximum FROM statistics.servers WHERE Date=today() AND Uid='WbZn8NI3AmLnKlc5PwaLzfvN2po=' Но ругается на GROUP BY, пробовал сделать с GROUP BY, но тогда идёт расчёт максимального значения в определенный момент времени

Alex
26.07.2018
10:10:53
SELECT argMax(DateTime, Clients), max(Clients) as Maximum FROM statistics.servers WHERE Date=today() AND Uid='WbZn8NI3AmLnKlc5PwaLzfvN2po=

Saprow
26.07.2018
10:13:01
SELECT argMax(DateTime, Clients), max(Clients) as Maximum FROM statistics.servers WHERE Date=today() AND Uid='WbZn8NI3AmLnKlc5PwaLzfvN2po=
Кайф, спасибо, предыдущий вариант тоже пробовал, но этот кажется более эстетичен

Google
Saprow
26.07.2018
10:30:39
Единственное что заметил, если несколько одинаковых максимальных значений, то DateTime выбирается самое первое. Возможно ли сделать чтобы показывало последнюю (самое позднюю) DateTime отметку ?

на самом деле не критично, ведь свою задачу выполняет

Egor
26.07.2018
11:20:29
имеется база данных с веб логами - кликами пользователей. Подавляющее большинство запросов на чтение будут искать данные по урлу, притом на вхождение подстроки в строку, иногда с учетом положения подстроки (т.е. захешировать и сравнивать соответствие хешей не получится). Вопрос, наверное, немного глупый - имеет ли смысл включать УРЛ в индекс MergeTree для ускорения обработки таких запросов?

или выгода от этого будет несоразмерна затратам по памяти? (в сжатом .xz виде логи занимают около 3,5 ТБ)

Alex
26.07.2018
11:27:17
Индекс поможет для запросов с условием на префикс урла. Для условий на вхождение подстроки в произвольном месте индекс бесполезен.

Используем Батч инсерты в КХ Пару раз уже было что КХ возвращал исключение, например из-за медленных мержей Что делать с батчем? Повторять вставку? Выкидывать? Получается частичная вставка или повторы в таком случае
Если у вас батч меньше значения настройки max_insert_block_size (1048576 по умолчанию), то инсерт атомарный - если произошла ошибка, значит он целиком не вставился. В случае ошибки про медленные мержи нужно уменьшить частоту вставок или продиагностировать проблему, которая мешает мержам идти.

Grigoriy
26.07.2018
12:43:19
Привет! А кто-то смог научить grafana работать с graphite-clickhouse и тегами в нем?

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