@clickhouse_ru

Страница 76 из 723
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
Вроде надо пачками

Так как логика работы кх

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