
Dmitriy
28.02.2017
13:44:52
скорее всего да. вчера когда была проблема с конектом между репликами шардов. я лил в распределенную таблицу и данные складывались вот в такие папочки
2017.02.27 11:37:00.930614 [ 4 ] <Trace> events_tv11.Distributed.DirectoryMonitor: Started processing `/opt/clickhouse/data/admanic/events_tv11/default@192%2E168%2E1%2E149:9000,default@192%2E168%2E0%2E83:9090,default@192%2E168%2E0%2E85:9090/1.bin
и были там *.bin файлы

Константин
28.02.2017
13:47:40
это приятно, а как быть если я туда ливанул кусок тех же данных?
сработает защита дедубликации?

Google

Alex
28.02.2017
13:51:05
Если те же данные в том же порядке, то сработает. Для последних 100 кусков.

Константин
28.02.2017
13:59:46
ок, посмотрю, как данные встанут на место
кстати, вопрос по clickhouse-client, я в думонстрациях от smi2 на хабре - я видел, что при запросе в distributed таблицу показывается прогресс выполнения на всех нодах
а у меня такого не видно при запросе в distributed табблицу
это вырезали или просто при count() не успевает отобразится?

Alex
28.02.2017
14:09:06
Прогрессбар не показывается, если запрос выполняется меньше, чем за 0.5 секунды

Константин
28.02.2017
14:09:18
ок, понятно
еще такой вопрос
делаю запрос с группировкой
на данные, которые уже прилетели
через раз выдает 0 rows
и как-то странно на разных шардах запрос в distributed таблицу - возвращает разные данные

Dmitriy
28.02.2017
14:18:00
а на одно шарде всегда одинаковые данные? показывает или тоже скачут?

Google

Константин
28.02.2017
14:18:38
даже в пределах одного шарда - на репликах разные данные
при чем как-то странно, они скачут
то в большую, то в меньшую сторону
https://drive.google.com/file/d/0B3kh1B0hBMbubDc1THNyWHloNEU/view
первый запрос, с группировкой по дате реплика - 2
https://drive.google.com/file/d/0B3kh1B0hBMbuQUJ5eWJPYUREVDQ/view
тот-же запрос, минутой позже
та же реплика

Dmitriy
28.02.2017
14:22:41
Вы когда создавали реплецируемые таблици сделали ошибку вот они и скачут. вчера я это уже прошел.
вот пример, где была допущена ошибка
CREATE TABLE app_1.events_local_tv11 ( $DB ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/shard01/app_1.events_local_tv11', 'clickhouse-hw-03.app.com',ch_date, (traffic_source_id, ch_date), 8192);"
Скорее всего с параметром для зукипера и шардой напутали

Константин
28.02.2017
14:25:11
так, а в чем ошибка?
я не замечаю
ENGINE = ReplicatedMergeTree(\'/clickhouse/tables/{shard}/vast_tracking_local\', \'{replica}\', date, (hour, date, key, creative_id, uuid, sky_uuid), 8192)

Dmitriy
28.02.2017
14:26:10
тут ошибки нет. просто в этой части конмады была у вас ошибка

Константин
28.02.2017
14:26:22
у меня используются макросы
из конфига
перепроверил, в макросах на всех нодах все правильно

Dmitriy
28.02.2017
14:28:43
откройте все логи через tail -f всех реплик
и посмотрите что оно делает.
у меня реплики содержали разное количесвто строк в таблице. вот и получалось что результат прыгал по тому что оно каждый раз ходит на разные реплики
tail -f clickhouse-server.log

Константин
28.02.2017
14:30:54
<Error> DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found: CH-1-2, e.what() = Host not found
откуда он выцепил CH-1-2?

Google

Константин
28.02.2017
14:31:24
это хостнейм ноды
и эти сообщения валятся на ноде CH-1-1
понял...
<!-- Hostname that is used by other replicas to request this server.
If not specified, than it is determined analoguous to 'hostname -f' command.
This setting could be used to switch replication to another network interface.
-->

Alex
28.02.2017
14:37:16
Кусок пришел на ноду CH-1-2, она положила информацию о том, что у неё есть новый кусок, в zookeeper, нода CH-1-1 пытается скачать этот кусок с ноды CH-1-2, и у неё не получается.

Константин
28.02.2017
14:37:57
теперь понял, сейчас в конфигах всем пропишу валидные хосты
вот только вопрос, как теперь остановить все то, что вливается?

Alex
28.02.2017
14:47:24
По идее и не надо останавливать - после того, как всё правильно будет сконфигурировано, реплики должны сами синхронизироваться
Правда, если много синхронизировать, может потребоваться снять предохранитель: https://clickhouse.yandex/reference_ru.html#%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D1%81%D0%B1%D0%BE%D1%8F

Nataliya
28.02.2017
15:27:29
Напоминаем, что буквально через полчаса мы начинаем трансляцию ClickHouse митапа из Санкт-Петербурга.
https://www.facebook.com/Yandex.Events/posts/1453883304631786
https://vk.com/wall-17796776_5172
https://twitter.com/ya_events/status/836593476879941632

Igor
28.02.2017
16:19:53
Спасибо за прогресс в http ?

hamper ?
28.02.2017
16:33:53
А можно как то переименовывать поля в таблице не удаляя данные?

Vladimir
28.02.2017
16:37:02
@milovidov_an А появился такой вопрос, связанный с масштабированием архитектуры ClickHouse. А не подскажете, какое соотношение должно быть между размером данных на диске, которые кликхаус "тянет", по отношению к размеру памяти и производительности, ядрам CPU?
Есть какие-то примеры удачных конфигураций, например в Метрике? Если, конечно, не раскрывать секретных данных

Igor
28.02.2017
16:37:42
https://github.com/yandex/ClickHouse/blob/master/doc/administration/tips.txt

Vladimir
28.02.2017
16:37:44
Ну то есть, размер дисков я могу предсказать, который понадобится, да и напихать побольше, а, вот, с памятью и cpu — тут большой вопрос

Pavel
28.02.2017
16:39:54
всем привет)
дублирую вопрос с чата митапа
"А про функции работы с сетями в формате CIDR можете спросить? Хочется функции проверки на принадлежность заданной сети/списку сетей, чтобы делать аггрегацию на уровне CH без обработки на клиенте."

Google

Igor
28.02.2017
16:40:23
я открывал issue по этому поводу
можете плюсануть/исправить/дополнить
https://github.com/yandex/ClickHouse/issues/247

Sergei
28.02.2017
16:42:41
@iamigor ок посмотрим спасибо

Timur
28.02.2017
16:49:55
Joinы по любому условию планируется добавить, не только по равенству?

Vladimir
28.02.2017
16:50:13
ну вроде так))
все-таки хотелось бы правильных джойнов.

Timur
28.02.2017
16:51:05
Наконец-то, это будет ?

Roman
28.02.2017
16:51:42
Подскажите, а словари уже видны в виде таблиц? К ним обычный SELECT можно сделать?

Alexander
28.02.2017
17:00:36
без дополнительной таблицы -- "источника ключей" -- нельзя

Vladimir
28.02.2017
17:06:41
Ребята, вопрос - правильно ли я понимаю, что единственный способ получить update-able данные - это только использование словарей. Например есть словарь весов - которые могут изменяться. Словарь из внешних источников. Например постгрес. Соответственно если я изменю содержимое таблицы (update T .... set ....) то по lifetime произойдет перезагрузка словаря. Или не произойдет?

Alexander
28.02.2017
17:15:58
Это не единственный способ. Есть еще ReplacingMergeTree, который позволяет "eventually" делать апдейты. Но словари по многим причинам лучше. Апдейт может быть и по lifetime, и другими способами. Я надеюсь, что Яндекс сделает возможность апдейта словаря по его изменению (например, по изменению таймстампа в одной из колонок). Сейчас это работает только для MySQL MyISAM

Vladimir
28.02.2017
17:18:11
Слияние происходят в фоне, в неизвестный момент времени, на который вы не можете ориентироваться. Некоторая часть данных может так и остаться необработанной. Хотя вы можете вызвать внеочередное слияние с помощью запроса OPTIMIZE, на это не стоит рассчитывать, так как запрос OPTIMIZE приводит к чтению и записи большого объёма данных.
)) ну то есть RT не получится.
если большой дистрибьют объем данных

Nataliya
28.02.2017
17:19:14
А вы смотрите прямо сейчас трансляцию митапа ClickHоuse? http://bit.ly/ClickHouseMeetup

hamper ?
28.02.2017
17:21:47
Посмотреть хотелось но как то не до этого

Игорь
28.02.2017
17:22:35
select *
from (select arrayJoin([[1126],[1]]) as x) lpc
Сталкивались?)

Alex
28.02.2017
17:38:46
select *
from (select arrayJoin([[1126],[1]]) as x) lpc
Запрос не работает потому, что clickhouse не смог привести два массива к одному типу: :) select toTypeName([1126]), toTypeName([1])
SELECT
toTypeName([1126]),
toTypeName([1])
┌─toTypeName([1126])─┬─toTypeName([1])─┐
│ Array(UInt16) │ Array(UInt8) │
└────────────────────┴─────────────────┘

Google

Alex
28.02.2017
17:39:23
вот так например работает: :) select * from (select arrayJoin([[toUInt32(1126)],[toUInt32(1)]]) as x)
SELECT *
FROM
(
SELECT arrayJoin([[toUInt32(1126)], [toUInt32(1)]]) AS x
)
┌─x──────┐
│ [1126] │
│ [1] │
└────────┘
:) select * from (select arrayJoin([[toUInt32(1126)],[toUInt32(1)]]) as x)
SELECT *
FROM
(
SELECT arrayJoin([[toUInt32(1126)], [toUInt32(1)]]) AS x
)
┌─x──────┐
│ [1126] │
│ [1] │
└────────┘

Игорь
28.02.2017
17:42:40
select toUInt32(arrayElement(x,1))
from (select arrayJoin([['1126'],['1']]) as x) lpc
Борьба за длину запроса, в данном случае
(

Andrey
28.02.2017
17:59:25
Вопрос про то как класть логи в CH - в реалтайме или лучше через Кафку например?

Vladimir
28.02.2017
18:01:42
Вроде надо пачками
Так как логика работы кх