
Andrey
29.06.2017
17:48:17
А что в лог ClickHouse приходит при запросе с одной версии и с другой? Одинаковые ?

Tatiana
29.06.2017
17:49:42
что одинаковые? запросы одинаковые? select today() ?

Andrey
29.06.2017
17:53:42

Sergey
29.06.2017
17:54:07
какой объект берете из resultSet? Если java.sql.Date, то в нем все равно хранится время. Считаем что это YYYY-MM-DD 00:00:00 по таймзоне сервера. Если таймзона приложения отличается, то милисекунды будут те же, но дата по таймзоне приложения может быть другая.

Google

Tatiana
29.06.2017
17:56:40
а с 0.1.14 select today() = 2017-06-29
в том же приложении
с того же сервера

Sergey
29.06.2017
17:58:03
учет таймзоны сервера добавлен в 0.1.18

Tatiana
29.06.2017
18:06:48
время в таймзоне сервера на 3 часа больше, чем в таймзоне приложения. Везде 29 июня

Sergey
29.06.2017
18:10:51
Допустим приложение в UTC, сервер в UTC+3.
today() в сервере - 2017-06-29, т.е. 2016-06-29 00:00:00 UTC+3 = 2016-06-28 21:00:00 UTC, соответственно в приложении дата будет выглядеть как 2016-06-28.

Tatiana
29.06.2017
18:11:59
спасибо

Alexander
29.06.2017
18:19:45
Вопрос очередной.
У КХ свой кеш приложения (не дисковый)?
=> как понять по какому алгоритму там содержатся данные.
+ может можно в нём держать придудительного последние данные ну или типа того?
+ вопрос: в нём данные запакованные хранятся или нет? => Так как от этого зависит 100гб или 10гб памяти надо например.

Alexey
29.06.2017
20:42:54
ClickHouse, в основном, использует кэш файловой системы (не свой). В нём - сжатые данные.
Отдельно есть возможность включить кэш разжатых блоков внутри ClickHouse. По-умолчанию, выключено. См. use_uncomressed_cache: https://clickhouse.yandex/docs/en/operations/settings/settings.html#use-uncompressed-cache

Google

Alexander
29.06.2017
20:46:47
Если я поставлю use_uncompressed в 0 и дисковые кеше сброшу - я могу быть уверен что это холодные тест?

Dmitry
29.06.2017
20:47:32
ну, тогда уж для дисков и read ahead отключать нужно

Alexey
29.06.2017
20:47:32
Да.

Alexander
29.06.2017
20:48:09
+ вопрос как use_uncompressed выкидывает данные => задача - очень быстрый доступ к последним данным. => т.е. как-то бы зафиксировать их в кеше.
На сервере, например, 1тб рам - чего простаивать.

Alexey
29.06.2017
20:49:09
Ещё есть вариант для теста такой:
SET min_bytes_to_use_direct_io = 1, merge_tree_uniform_read_distribution = 0;
Тогда данные будут читаться с O_DIRECT (без кэша).
Это стоит использовать только для теста.

Alexander
29.06.2017
20:49:36

Alexey
29.06.2017
20:50:43
> + вопрос как use_uncompressed выкидывает данные
LRU
> - очень быстрый доступ к последним данным. => т.е. как-то бы зафиксировать их в кеше.
Тут не уверен, как лучше. Вообще, недавно вставляемые данные находятся в page cache. Но при чтении будет тратиться время на разжатие. Если включить uncompressed_cache, то будет тратиться при первом запросе, а затем использоваться готовые, пока кэш не вымоется.

Alexander
29.06.2017
20:53:28
Ага, получается немного длинноватая цепочка. Видимо параллельная запись в memory только это решило бы. Но тут я опять к индексам скатываюсь. Тогда получается на данный момент лучший вариант по этой длинной цепочке - запись => чтение в кеш

Alexey
29.06.2017
20:55:39
MergeTree с хранением части данных в оперативке без сжатия - разумная идея. От реализации ограничивает несколько вещей: - низкая потребность в этой функциональности; - трудность указания табличных настроек (опций для таблиц); сложности при репликации.

Alexander
29.06.2017
20:56:57
А может кто-то из Яндекса попросил бы лицензию на kx .com для внесения в бенчмарк? Думаю это было бы огромным мотиватором :)
... посмотреть возможно на основного ?серьёзного? конкурента.

Alexey
29.06.2017
21:01:41
Вроде бы у них с сайта можно скачать kdb+ для тестирования. По крайней мере я скачивал из любопытства, но не дошёл до создания таблиц.

Alexander
29.06.2017
21:02:43
Я думаю все и так знают что за сайт.

Alexey
29.06.2017
21:05:02
Ага. Как раз там хороший пример по загрузке данных. Предлагал коллегам попробовать. Пока цели такой нет, но если будет энтузиазм, то сделаем.

Александр
29.06.2017
21:36:10
А кто подскажет, выкладывали презентацию с митапа в Минске или нет?

Alexey
29.06.2017
21:36:37
Как раз сейчас собираюсь загрузить.

Google

Александр
29.06.2017
21:36:49
Супер! Спасибо большое!

f1yegor
29.06.2017
21:36:53
?

Alexey
29.06.2017
21:37:44
Но там три штуки. Сейчас выложу свою, а остальные завтра.
https://github.com/yandex/clickhouse-presentations/tree/master/meetup7
На сайт ещё не выложили.
Хотя я понял, что у меня есть все презентации и я их сейчас выложу тоже :)

Александр
29.06.2017
21:42:52
Спасибо! Сейчас сяду смотреть :)

Alexey
29.06.2017
21:44:41
https://github.com/yandex/clickhouse-presentations/raw/master/meetup7/netmon.pdf
https://github.com/yandex/clickhouse-presentations/raw/master/meetup7/internals.pdf

Maksim
29.06.2017
23:25:57
Доброй ночи кто не спит) Скажите плиз как быть когда количество данных переваливает за 50 гигабайт и это дело мы архивируем и заливаем на s3. что делают в ситуациях когда есть продакшен сервер и надо его зеркальную копию, с условием если потеряется кусок данных на проде то можно быстро восстановить?

Andrey
30.06.2017
00:04:57

Maksim
30.06.2017
00:05:33

Igor
30.06.2017
00:06:06
в смысле - отвалился? как отвалился?

Maksim
30.06.2017
00:06:24
ну зашел джун на сервер и случайно удалил партицию
(как пример)
или диск сдох

Andrey
30.06.2017
00:06:49
На сколько помню на реплике оно останется
Особенно если случай со сдохшим диском.

Maksim
30.06.2017
00:07:06
он зеркалит на основе прямых запросов?

Andrey
30.06.2017
00:07:32
Он зеркалит данные

Maksim
30.06.2017
00:08:05
вот я и боюсь что он прозеркалит удаленные данные

Igor
30.06.2017
00:08:11
https://clickhouse.yandex/docs/en/query_language/queries.html#manipulations-with-partitions-and-parts
> DETACH PARTITION
> DROP PARTITION
> The query is replicated

Google

Andrey
30.06.2017
00:10:22

Maksim
30.06.2017
00:11:01

Andrey
30.06.2017
00:11:56
Мне кажется это будет не штатная операция для CH. Если rm

Igor
30.06.2017
00:12:04
https://clickhouse.yandex/docs/ru/table_engines/replication.html
https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_(%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0)
у кликхауса асинхронная мастер-мастер репликация емнип
т.е. слейвов нет как таковых

Maksim
30.06.2017
00:12:49
то есть получится две копии

Igor
30.06.2017
00:13:14
две. три. сколько угодно.

Maksim
30.06.2017
00:13:21
это больше для распределенной нагрузки подойдет а не для варианта резервного бэкап сервера

Igor
30.06.2017
00:13:57
лучше нечетное количество серваков. кажется, в таком случае зукипер, если увидит на одном из них фигню, то двое оставшихся забьют. но я не шарю, могу ошибаться.

Andrey
30.06.2017
00:14:20


Igor
30.06.2017
00:15:58
ну в зукипере-то какая-то информация ж должна храниться
зря он что ли для репликации используется
но я опять же не претендую на знание. просто это кажется логичным
правда, один фиг это все будет актуально только в случае использования Replicated*MergeTree
> Количество реплик одних и тех же данных может быть произвольным. В Яндекс.Метрике в продакшене используется двухкратная репликация. На каждом сервере используется RAID-5 или RAID-6, в некоторых случаях RAID-10. Это является сравнительно надёжным и удобным для эксплуатации решением.
> Система следит за синхронностью данных на репликах и умеет восстанавливаться после сбоя. Восстановление после сбоя автоматическое (в случае небольших различий в данных) или полуавтоматическое (когда данные отличаются слишком сильно, что может свидетельствовать об ошибке конфигурации).
вот еще из документации

Maksim
30.06.2017
00:19:33

Igor
30.06.2017
00:20:56
если репликация есть - будет докачивать файлы с реплик
там раздел есть, "восстановление после сбоя"

Andrey
30.06.2017
00:21:03

Igor
30.06.2017
00:21:40
это если DROP PARTITION не делали
если делали - руки оторвать джуну и уволить, ну очевидно же!

Maksim
30.06.2017
00:21:48

Google

Andrey
30.06.2017
00:21:57

Igor
30.06.2017
00:22:24
а readonly и допуск только опытным админам от человеческого фактора не спасет?)

Maksim
30.06.2017
00:22:43

Andrey
30.06.2017
00:23:24
И я вот что-то не вспомню кейса когда бы мне пришлось шариться по data директории с rm в зубах

Igor
30.06.2017
00:23:30
ну тем более, раз цена так высока
судя по документации, rm на партицию скорее всего пройдет безболезненно - в зукипере партиция на обоих серваках есть, по факту на одном из них нету. чо надо сделать? долить партицию со второго сервака, где она есть

Maksim
30.06.2017
00:23:52
а там она не удалится тоже?
или удалится только запросом?

Igor
30.06.2017
00:24:14
там это где? в зукипере? нет, не удалится, если rm делали. удалится только запросом
опять же, я может не прав, я просто почитал щас документацию и сложилось именно такое впечатление

Maksim
30.06.2017
00:24:57
не совсем понимаю про зоокипер. ты имеешь ввиду 2 сервера мастер мастер?

Andrey
30.06.2017
00:25:02
Запросом удалится. Но вот ща вспомнил ещё про ограничение в сколько то гигов, после которых кликхаус будет просить особого ключика для разрешения удалять

Igor
30.06.2017
00:25:10
дадада, 50 гигов кажется, офигел когда недавно увидел

Maksim
30.06.2017
00:25:15
на одном удалили физически, на втором данные останутся т.к. реплицируются только запросы

Igor
30.06.2017
00:25:50

Maksim
30.06.2017
00:26:20
надо настроить второй сервак и поиграться
поудалять ))

Andrey
30.06.2017
00:27:07
Как по мне так самое правильное решение. Дока + тестовый стенд

Igor
30.06.2017
00:27:24
дадада
чего гадать
можно хоть в виртуалках/докере поднять на одной машине всё

Maksim
30.06.2017
00:28:03
ну просто очевидно что яндекс не создает архивы по 100 петабайт ))
или сколько там

Andrey
30.06.2017
00:30:35