@clickhouse_ru

Страница 12 из 723
Виктор
18.11.2016
12:34:26
There is 'replication queue'

Roman
18.11.2016
12:35:04
There is 'replication queue'
is it current or futur feature?

Виктор
18.11.2016
12:35:12
Current

Give me a sec

Google
Roman
18.11.2016
12:35:53
do you use it in yandex?

Виктор
18.11.2016
12:35:59
i'm in CERN currently and internet is really bad here =)

Roman
18.11.2016
12:36:49
do you use it in yandex?
i mean if any client app tracks YCH replication queue and what it performs if data is lost?

who caches hot data before it will be replicated by YCH?

Виктор
18.11.2016
12:38:27
we track it but not in terms of each chunk of data

we monitor that this queue is not too large in terms of time

And if replication lag is more than let's say 5 minutes than we investigate

Roman
18.11.2016
12:38:51
i see

but it is not for money data, yep? :)

Виктор
18.11.2016
12:40:21
Looks like that

select table, new_part_name, type from system.replication_queue;

┌─table─┬─new_part_name──────────────────────┬─type────────┐ │ hits │ 20161113_20161118_131116_158637_19 │ MERGE_PARTS │ └───────┴────────────────────────────────────┴─────────────┘

and there is different columns you can check

Google
Виктор
18.11.2016
12:40:54
We use the same process for money data actually

But we have 'golden source' for that

And for that 'golden source' (also in ClickHouse) we use synchronious replication

It is possible but it's not documented for now

Roman
18.11.2016
12:43:55
golden source or persistent cache for hot data + blocked inserts + replication queue = great durability for highload analytics

even for money data :)

Виктор
18.11.2016
12:44:18
yep

Roman
18.11.2016
12:46:16
Виктор
18.11.2016
12:47:04
you have to wait while your data is transferred to at least one more node

i have no numbers for our case now

Fike
18.11.2016
12:47:20
are there any plans to add 'x replicas replied ok' requests/responses, like persistent storages?

Виктор
18.11.2016
12:47:23
Should be like x2

We'll have 'guarantee that at least n/2 + 1 replicas replied ok'

I believe it should be enougn

And that's just a settings parameter so easy to use

Fike
18.11.2016
12:50:05
that would be cool to satisfy those who want guarantees about stored data

Виктор
18.11.2016
12:55:28
Yeah

We already have that actually

Not documented and few minor bugs there

Valeriy
18.11.2016
15:58:02
А как вы вставляете Enum поля? Я хочу вставлять поле как число, чтобы вставляющий скрипт не думал над тем, как преобразовать число из логов в строку. Нашел единственную ссылку, как это можно сделать, предлагается CAST со страшным выражением "x AS Enum8('hello' = 1, 'world' = 2)", и то здесь x изначально должен быть строкой, по-моему (https://groups.google.com/forum/#!topic/clickhouse/sBxSJL3vZQ8). Кажется странным, что при записи в бинарном виде можно передать поле числом, а при записи в текстовом такой возможности нет.

Google
Alexey
18.11.2016
18:49:02
А как вы вставляете Enum поля? Я хочу вставлять поле как число, чтобы вставляющий скрипт не думал над тем, как преобразовать число из логов в строку. Нашел единственную ссылку, как это можно сделать, предлагается CAST со страшным выражением "x AS Enum8('hello' = 1, 'world' = 2)", и то здесь x изначально должен быть строкой, по-моему (https://groups.google.com/forum/#!topic/clickhouse/sBxSJL3vZQ8). Кажется странным, что при записи в бинарном виде можно передать поле числом, а при записи в текстовом такой возможности нет.
Люди вставляют Enum-ы прямо строками. (В том числе, заказывали Enum-ы специально для того, чтобы писать в базу строки, и они там эффективнее обрабатывались). Возможности вставлять числами в текстовом формате нет. Теоретически возможна неоднозначность, если какой-то элемент Enum-а представлен строкой, содержащей число. Хотя возможность полезная.

Valeriy
18.11.2016
19:07:12
Спасибо.

Slach
19.11.2016
08:24:48
всем привет пытаюсь понять как переопределить через conf.d секцию remote_servers ? в config.xml стоит <remote_servers incl="clickhouse_remote_servers" /> что значит clickhouse_remote_servers? это ссылка на файл? на какой? /etc/clickhouse/conf.d/click_house_remote_servers.xml ??

Igor
19.11.2016
08:31:04
нет, достаточно создать в conf.d файл с любым названием (и расширением xml). внутри него - переопределить xml-дерево <remote_servers>

хотя блин, я перечитал документацию и теперь уже не уверен :(

а, если incl="clickhouse_remote_servers", то в conf.d должен быть файлик с такой структурой: <yandex> <clickhouse_remote_servers> ... </clickhouse_remote_servers> </yandex>

> Также в конфиге могут быть указаны "подстановки". Если у элемента присутствует атрибут incl, то в качестве значения будет использована соответствующая подстановка из файла. По умолчанию, путь к файлу с подстановками - /etc/metrika.xml. Он может быть изменён в конфиге в элементе include_from. Значения подстановок указываются в элементах /yandex/имя_подстановки этого файла.

вот здесь подробнее/с примерами есть https://clickhouse.yandex/reference_ru.html#Права+доступа https://clickhouse.yandex/reference_ru.html#Конфигурационные+файлы но согласен, выглядит запутанно

Slach
19.11.2016
08:45:11
я это как раз читал и эту как раз фразу НЕ ПОНИМАЮ =) что такое в качестве значения?? значения чего??? атрибута? значения всего тега remote_servers?

Igor
19.11.2016
08:56:16
смотри, у тебя есть /etc/clickhouse-server/config.xml. в нем есть: <remote_servers incl="clickhouse_remote_servers" /> config.xml мы переписывать не будем, т.к. он может перезаписаться при апдейте пакета. кликхаус импортирует все *.xml и *.conf файлы в /etc/clickhouse-server/conf.d/ и /etc/clickhouse-server/config.d/. поэтому создаем абсолютно любой файлик внутри этой директории, пусть, /etc/clickhouse-server/conf.d/foobar.xml. внутри него остается 100% такая же структура, как в основном config.xml - корнем является <yandex>, внутри него уже всякое всякое. теперь магия: основной конфиг (config.xml) ссылается с помощью атрибута incl на тег с названием "clickhouse_remote_servers". при запуске сервера все конфиги из conf.d/* вносятся в конец основного конфига. и в итоге сервер будет искать тег <clickhouse_remote_servers> и иметь его содержимое в виду как настройки <remote_servers>

ой, а вот Алексей собственно на этот же вопрос на SO отвечал с примером: http://stackoverflow.com/a/39130980/974317

Slach
19.11.2016
08:59:22
Спасибо дорогой камрад =)

Igor
19.11.2016
08:59:24
короче, incl задает название другого тега, по которому будет происходить поиск и подмена настроек для первоначального тега

не за что )

Виктор
19.11.2016
09:31:13
Игорь, может пуллреквестнишь изменение доки? :)

Чтобы понятней было

А то там и правда не разберёшь

Igor
19.11.2016
09:31:49
я очень хочу помочь с документацией, но не уверен, что у меня хорошо получится ) меня еще давно парит отстутствие описания конструкций CASE и BETWEEN

но да, отправлю, когда дойдут руки

Виктор
19.11.2016
09:32:48
Спасибо, будем ждать

Google
Slach
19.11.2016
14:42:30
А где есть спецификация на http протокол?? интересует что clickhouse будет возвращать в HTTP Status code если на INSERT пришла ошибка? Или все надо читать через HTTP Response body и смотреть там Code: ?

Igor
19.11.2016
14:43:00
500 вернет

https://clickhouse.yandex/reference_ru.html#HTTP+интерфейс > В случае успеха, вам вернётся код ответа 200 и результат обработки запроса в теле ответа. > В случае ошибки, вам вернётся код ответа 500 и текст с описанием ошибки в теле ответа.

Slach
19.11.2016
14:52:01
вот cпасибо =( я чтото в шары долблюсь

Igor
19.11.2016
14:52:21
ниче-ниче, с кем не бывает, обращайся

Slach
19.11.2016
14:52:45
а, я искал просто HTTP протокол, а у вас там HTTP Interface ;)

Igor
19.11.2016
14:54:18
ну да, имхо, логично назвали. HTTP ведь сам по себе тоже протокол, зачем его описывать, это в RFC 2616 уже сделали)) а сервер кликхауса предоставляет интерфейс в виде хттп-сервера с одной ручкой

Slach
19.11.2016
15:06:35
а для Yandex Metrica Compressor нету случайно никаких биндингов на golang ?

или уже прикрутили в текущий master zstd ?

Igor
19.11.2016
15:46:19
насчет метриковского компрессора не подскажу, но если че, можно gzip или deflate паковать данные что входящие, что исходящие (по хттп)

в документации нету, см. https://github.com/yandex/ClickHouse/blob/1d836b2bf8fef378d47258957ff74ed3a4aff136/dbms/tests/queries/0_stateless/00302_http_compression.sh

Slach
19.11.2016
17:28:36
ой, спасибо

Igor
20.11.2016
13:52:24
> HTTP интерфейс (...) не позволяет (вернее, позволяет лишь в некоторых случаях) прервать выполнение запроса А можно уточнить (примеры), в каких случаях запрос прерывается, а в каких это невозможно? Речь ведь о replace_running_query тут, да?

Evgeniy
20.11.2016
14:04:31
https://github.com/yandex/ClickHouse/blob/master/doc/build.md »This library is needed only for 'external dictionaries' with MongoDB source. »This is rarely used but enabled by default. А можно сделать наоборот ? , что бы по умолчанию конфигурация подходила для 80% случаев ?

Evgeniy
20.11.2016
14:15:21
зачем отламывать работающее? :)
а какой профит от поддержки mongo ? - читать из него ?

Darafei
20.11.2016
14:16:32
какой профит от неподдержки mongo? :)

Fike
20.11.2016
14:16:44
нельзя убирать существующие фичи после релиза, потому что у 10% пользователей обязательно все сломается после обновления

потому что они ожидают, что фичи никуда не денутся, и будут удивлены в тот момент, когда их там не обнаружится

Igor
20.11.2016
14:17:14
погодите, но мы говорим про сборку из исходников

Google
Fike
20.11.2016
14:18:15
Да это неважно. Инсталляцию и сборку тоже может атоматизировать какой-то австралиец, который не будет ожидать каких-либо breaking changes.

Evgeniy
20.11.2016
14:18:21
какой профит от неподдержки mongo? :)
этот вопрос звучит так - что там с Монго , может я захочу его )

Igor
20.11.2016
14:19:56
вообще это, наверное, вкусовщина. потому что взять, например, brew install postgresql - там будут флажки --with-python (собрать с поддержкой питона) и --without-perl (собрать без поддержки перла)

раз уж сделали по умолчанию сборку монги - правильнее так и оставить, в конце концов, ниче не мешает правда прокинуть еще одну переменную окружения

Evgeniy
20.11.2016
14:22:41
раз уж сделали по умолчанию сборку монги - правильнее так и оставить, в конце концов, ниче не мешает правда прокинуть еще одну переменную окружения
блин. читая заголовок - (Install mongoclient (optional)) я пропустил , что его нужно отключить . Так что если optional , то по умолчанию disable

Igor
20.11.2016
14:23:31
¯\_(ツ)_/¯ это уже к build.md вопрос скорее, сейчас придет Виктор и попросит сделать пулл реквест с уточнением ))

Вообще, конечно, можно поспрашивать пользователей, узнать, как много людей пользуются mongodb как внешним словарем и, пока проект не разросся окончательно, поменять Makefile, указать в документации, что для внешних словарей вам надо пересобрать кликхаус (и 10% пользователей, которые до этого счастливо скачивали пакет clickhouse-server из PPA-репозитория, останутся ни с чем), исправить внутренние сборщики всякие во всех корпоративных проектах..

Evgeniy
20.11.2016
14:28:49
эх

можно просто поправить доку

Igor
20.11.2016
14:29:04
ну да, я о том же )

это ж гитхаб, ничего не мешает

даже клонировать репу не надо

Evgeniy
20.11.2016
16:06:42
я так понимаю это бонус ? ) compressor-metrika-yandex_1.1.54070_amd64.deb config-processor-metrika-yandex_1.1.54070_amd64.deb

Igor
20.11.2016
16:07:41
а разве раньше не было пакетов для убунты?

Evgeniy
20.11.2016
16:10:40
в доке нет ничего про *metrika*

Igor
20.11.2016
16:31:24
как это нету

Вы можете использовать сжатие при передаче данных. Формат сжатых данных нестандартный, и вам придётся использовать для работы с ним специальную программу compressor (sudo apt-get install compressor-metrika-yandex).

Evgeniy
20.11.2016
16:32:01
при передаче в обе стороны ?

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