@clickhouse_ru

Страница 130 из 723
Alex
25.04.2017
15:06:55
Как предположение

Combot
25.04.2017
15:08:29
combot.org/chat/-1001080295593

Dennis
25.04.2017
15:11:13
Алекс, по идее, нет

В этом его сила, что он все хранит на диске и при этом быстрый

Google
Fike
25.04.2017
15:12:43
тогда бы не было ограничения по оперативке на размер результата (стримил бы результаты с диска)

https://github.com/yandex/ClickHouse/blob/master/dbms/src/Interpreters/InterpreterSelectQuery.cpp вообще похоже, что ответы здесь, но я сломался :3

Dennis
25.04.2017
15:31:41
Так ограничение на размер РЕЗУЛЬТАТА, а не ИСХОДНЫХ ДАННЫХ. Т.е. они стримят по диску и в памяти по тихоньку накапливают результат, потом его сортируют, обрезают и выдают

Alexey
25.04.2017
16:56:10
пример из боя cat /etc/clickhouse-server/config.d/graphite.xml <yandex> <use_graphite>true</use_graphite> <graphite> <host>127.0.0.1</host> <use_fqdn>true</use_fqdn> <port>42000</port> <root_path>one_min</root_path> <timeout>0.1</timeout> </graphite> </yandex>
Спасибо! Но я так и не понял, в чем отличия этих механизмов формирования конфига: incl и conf.d/ Когда какой правильней использовать? Или это просто исторически так сложилось?

Felixoid
25.04.2017
17:02:54
у нас include не используется, всё в config.d/*.xml /etc/clickhouse-server/config.d$ grep incl * /etc/clickhouse-server/config.d$ echo $? 1

оно удобнее управляется, кмк

ну и основной конфиг мы в принципе не трогаем, он всегда из пакета дефолтный

Alex
25.04.2017
17:12:44
Include для случаев, когда хочется явно указать "точки расширения" в общем конфиге. А с помощью файлов в config.d удобно немного подкручивать отдельные настройки. Вообще да, функциональность пересекается.

Andrey
25.04.2017
17:20:20
Ребят, а INTERVAL есть в CH?

Ну типо: date - INTERVAL '1 days'

Igor
25.04.2017
17:21:09
нет

но можно просто дату вычитать-складывать с интом

Google
Igor
25.04.2017
17:21:32
today() - 1 == yesterday(), грубо говоря

Andrey
25.04.2017
17:21:40
Ага, понял, спасибо

Виктор
25.04.2017
17:34:36


Рассказываем про ClickHouse в Кремниевой Долине

Dennis
25.04.2017
17:35:42
Это 5иминутка кейноут?

Dmitry
25.04.2017
17:35:52
Да

Dennis
25.04.2017
17:36:03
Отстрелялся уже??

Dmitry
25.04.2017
17:36:28
На сегодня - да

Dennis
25.04.2017
17:37:00
У вас там еще будут доклады?

Dmitry
25.04.2017
17:37:07
две секции.

Сегодня у Вити и Лёше в общем про кх. И я завтра про графит на кх

Andrey
25.04.2017
17:38:13
а есть трансляция или может записи будут?

Виктор
25.04.2017
17:41:04
Я не очень помню какая у них политика, кажется, только для участников

Но наша будет вводная, примерно как на Highload

А Димина будет про Graphite over ClickHouse

Alexey
25.04.2017
17:42:37
Ну и чтоб закрыть тему с config.xml и иже с ними

как выглядят элементы типа replace или remove?

xml допускает просто указывать типа <zookeeper replace> ?

как-то выглядит не очень

или я вообще не так понял эту затею?

Google
Alex
25.04.2017
17:53:01
XML так не позволяет - у атрибута должно быть значение. Можно указать например "true". Пример: хочу убрать из дефолтного конфига тег graphite_rollup_example. Для этого нужно создать в config.d/ файл

<yandex> <graphite_rollup_example remove="true"/> </yandex>

Проверить себя можно по файлу config-preprocessed.xml - там содержится результат всех подстановок.

papa
25.04.2017
17:56:31
у нас обычно было replace="replace" remove="remove", xhtml-style.

Alexey
25.04.2017
18:13:12
ага, еще раз спасибо

Andrew
26.04.2017
05:43:37


Кто есть в википедии, можете поправить?

Igor
26.04.2017
05:45:23
ты про "результат должен помещаться в оперативке"?

Andrew
26.04.2017
05:45:29
Ага

Igor
26.04.2017
05:45:36
а как это лучше переформулировать?

Slach
26.04.2017
05:46:17
Аггрегацию заменить на join?

И добавить "в некоторых случаях"

Andrew
26.04.2017
05:47:44
+референс на последний Лёшин доклад про group by

Andrey
26.04.2017
05:51:52
Поддерживаю. Как то изначально не совсем верно это подавали. Это же не обязательное условие для работы CH. Просто так будет работать быстрее всего.

Иван
26.04.2017
06:42:14
А скиньте пожалуйста ссылку на последний митап

Kirill
26.04.2017
06:45:55
про group by https://www.youtube.com/watch?v=F-o-a00R4fc

Иван
26.04.2017
06:57:13
Спасибо

Andrey
26.04.2017
10:54:47
Всем привет. Запускаю достаточно сложный запрос, с множеством подзапросов. CH падает, в ERR логе такие сообщения: 2017.04.26 13:52:39.817847 [ 81 ] <Error> BaseDaemon: ######################################## 2017.04.26 13:52:39.817897 [ 81 ] <Error> BaseDaemon: (from thread 16) Received signal Segmentation fault (11). 2017.04.26 13:52:39.817912 [ 81 ] <Error> BaseDaemon: Address: NULL pointer. 2017.04.26 13:52:39.820478 [ 81 ] <Error> BaseDaemon: 1. clickhouse-server(DB::FunctionMultiIf::performTrivialCase(DB::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, DB::Conditional::NullMapBuilder&)+0x499) [0x25f2a69] 2017.04.26 13:52:39.820498 [ 81 ] <Error> BaseDaemon: 2. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0xa5) [0x33fb245] 2017.04.26 13:52:39.820514 [ 81 ] <Error> BaseDaemon: 3. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f08474ea6ba] 2017.04.26 13:52:39.820529 [ 81 ] <Error> BaseDaemon: 4. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f0846b0b82d]

Konstantin
26.04.2017
10:56:14
беда

Andrey
26.04.2017
10:56:28
В какую сторону смотреть? Последние данные из PROCESSLIST: memory_usage: 1.29 GiB из доступных 80 гб

Google
Ilya
26.04.2017
11:12:27
вопрос - можно как-нибудь в КХ объединить 2 массива в один? так чтобы в результирующем массиве были не два исходных массива, а все значения из исходных массивов? в доке не нашел

Andrey
26.04.2017
11:24:54
Скорей всего это из-за еще неполноценной поддержки null'ов. Можете попробовать составвить минимальный пример, воспроизводящий проблему?
Да, сейчас попробую операции с null убрать из запроса. Если не выйдет, буду пробовать составлять пример для воспроизведения. Спасибо.

Vladimir
26.04.2017
11:30:19
вопрос - можно как-нибудь в КХ объединить 2 массива в один? так чтобы в результирующем массиве были не два исходных массива, а все значения из исходных массивов? в доке не нашел
Я по документации побродил и получилось что-то такое: select groupArray(arr) from arrays_test ARRAY JOIN arr это оно? (данные брал из примера про arrays_test и ARRAY JOIN

Vladimir
26.04.2017
11:32:12
Очень просто. SELECT groupArrayArrayArray([a, b]) FROM ( SELECT [1, 2, 3] AS a, [10, 20, 30] AS b ) ┌─groupArrayArrayArray(array(a, b))─┐ │ [1,2,3,10,20,30] │ └───────────────────────────────────┘

Ilya
26.04.2017
11:51:16
это агрегатная функция, да; а если нужно просто объединить два столбца в выборке без агрегации?

Я по документации побродил и получилось что-то такое: select groupArray(arr) from arrays_test ARRAY JOIN arr это оно? (данные брал из примера про arrays_test и ARRAY JOIN
к сожаления нет :( нужно без агрегации, просто объединить два столбца - что-то типа select [a, b] from some_table

Ilya
26.04.2017
11:57:54
а вот там выше без array join'а сказали
groupArrayArrayArray - агрегатная функция :(

Ilya
26.04.2017
11:58:37
тем что результатом будет массив массивов, а не массив значений

нужна либо "распаковка" массивов, либо "склейка" массивов

Vladimir
26.04.2017
11:59:55
Ещё можно вот так: SELECT arrayReduce('groupArrayArray', [[1, 2, 3], [10, 20, 30]]).

Ilya
26.04.2017
12:00:58
спасибо!

проверил на своих данных - похоже делает ровно то что нужно

Vladimir
26.04.2017
12:02:23
про group by https://www.youtube.com/watch?v=F-o-a00R4fc
Спасибо большое за доклад! Примененные подходы просто крутые! Много почерпнул для себя

Главное нужно четко понимать, как тот или иной способ работает, и его ограничения; это может быть не для всех доступно)

Иногда сам просто не додумаешься до таких способов, которые приведены в докладе

Особенно порадовала черная и белая "магия" и самодельное "взешенное сэмплирование")

Google
Ilya
26.04.2017
12:05:34
по поводу arrayReduce - что-то он никак не представлен в доке по кликхаусу, одно вхождение и то мельком в рамках arrayUniq не удивительно что я не нашел :(

Vladimir
26.04.2017
13:01:05
А вот вопрос, связанный с этим докладом, кстати. Про "волшебные" опции для груп бай всё, вроде, понятно, да и дока есть. Но мне непонятно, почему Memory limit exceeded получается при INSERT-SELECT-е (со *)? Таблицы примерно одинаковые, только ключи разные

Просто, насколько я понимаю, инсерт как работает — собирает блоки со всех distributed-машин, потом они пересортировываются и разбрасываются на все машины (уже по новому ключу). В какой здесь момент вообще может произойти переполнение по памяти, если мы идём линейно по таблице?

Неужели сортировка одного блока может столько занять? Или там сначала собирается вся колонка, и сортируется она?

Да там, в принципе, даже и ключи могут быть одинаковыми, это ни на что не влияет: всё равно валится по памяти. Странно

Maksim
26.04.2017
15:47:29
Добрый день, понимаю вопрос может не по теме. может просто у кого-то получилось Graphite и Grafan скрестить

Maksim
26.04.2017
15:51:47
Graphite?
именно он)

Vladimir
26.04.2017
15:52:39
именно он)
С этим наверное лучше в https://t.me/metrics_ru но в этом ничего сложного нет )

Maksim
26.04.2017
15:53:00
главное на входе помалится чтобы помогли)) аха

спасибо)

Roman
26.04.2017
15:53:09
или http://docs.grafana.org/features/datasources/graphite/

может я неправильно понял, но графит поддерживается по дефолту в графана

Pavel
26.04.2017
15:54:17
да, так и есть

Vladimir
26.04.2017
15:54:38
Да кэп)

Maksim
26.04.2017
15:55:51
может я неправильно понял, но графит поддерживается по дефолту в графана
не понял)) графит вшит в графан ? их не надо скрещивать ?

Roman
26.04.2017
15:56:01
да

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