
Vladimir
24.04.2017
16:56:31
Но это тоже небыстро

Alexey
24.04.2017
17:03:34
Вопрос снимается... Нашел в гуглгрупс

Andrey
24.04.2017
17:29:08

Maksim
24.04.2017
18:34:25
а кто-нибудь для умных домов уже приделывал clickhouse?

Google

Виктор
24.04.2017
18:41:33
Но зачем
Дом умнее от этого не станет, мне кажется
Или для сенсоров?

Vyacheslav
24.04.2017
18:49:54
Господа, а кто-нибудь заморачивался написанием output плагина к telegraf в кликхаус? Графхауз это реально круто, но лишняя прослойка не очень греет, плюс сам графитовский формат мне не нравится, я бы предпочел разворачивать его поколоночно.

Maksim
24.04.2017
18:50:23
для сенсоров конечно

Alexey
24.04.2017
18:50:34

Константин
24.04.2017
19:29:51
Добрый вечер!
Скажите, что за ошибка? https://yadi.sk/i/uzwRmaJH3HJrB2

Alexey
24.04.2017
19:42:04
у меня было ощущение, что где-то описывался функционал "дедубликации батчей/кусков при в ставке". Сейчас найти не могу (неужели это мне приснилось?).
Идея была такая: при в ставке батча может произойти сбой на клиенете или в сети, и клиент еще раз повторит вставку батча. И вот такое поведение вроде как-то невилировалось в MergeTree. или это только мои фантазии?

Dmitry
24.04.2017
19:42:45
Для реплицированных таблиц через zk работает

Vladimir
24.04.2017
19:42:46

Dmitry
24.04.2017
19:43:23

Google

Alexey
24.04.2017
19:46:10
т.е. работает только при механизме репликации?
а для клиентских инсертов такого нет?

Alex
24.04.2017
19:47:36
работает для ReplicatedMergeTree, для обычных MergeTree - нет

Alexey
24.04.2017
19:49:59
но я правильно пониманию, что попытку вставки надо делать на тот же сервер?
чтоб механизм сработал

Dmitry
24.04.2017
19:50:10
В любой

Alexey
24.04.2017
19:50:25
на любую из реплик?

Dmitry
24.04.2017
19:50:34

Alexey
24.04.2017
19:50:43
ок
мудрененько придется мутить конфигурацию и загрузку

Dmitry
24.04.2017
19:51:57
Блоки данных дедуплицируются. При многократной записи одного и того же блока данных (блоков данных одинакового размера, содержащих одни и те же строчки в одном и том же порядке), блок будет записан только один раз
Ну и далее по доке

Alexey
24.04.2017
19:52:15
да нашел, спасибо

Vladimir
24.04.2017
20:09:20

Pavel
24.04.2017
20:51:51
Его формат оч простой же

Vladimir
24.04.2017
20:57:34
Его формат оч простой же
у них есть библиотека родная для парсинга их формата, не факт что очень эффективная, но для Proof of concept сойдет

Vyacheslav
24.04.2017
21:20:56
telegraf просто хорош тем что умеет брать большого количества разных источников, и понимает самые распространенные форматы (инфлюкс, графит, json). Короче я понял, пойду книженцию по go читать ))

Vladimir
24.04.2017
21:22:27

Google

Vladimir
24.04.2017
21:22:41
и еще пару недель добиваться адекватной производительности и внешнего вида

Andrey
24.04.2017
21:23:55
a small matter of programming :-D

Vyacheslav
24.04.2017
21:28:40
А сравнительные тесты ифлюкса против кликхауза никто не делал? Я то интуитивно догадываюсь что кликхауз инфлюкс рвёт, но хотелось бы доказательств...

Pavel
24.04.2017
21:28:57
рвет...... еще как рвет :)
у меня запись батчами
CH - 10% проц
InfluxDB - 270%
на том же потоке
influxDB вообще неадекватная штука, имхо. удобно когда данных мало, если много - это кошмар и неадекват.

Vyacheslav
24.04.2017
21:34:10
Ок, спасибо, значит будем плавно мигрировать в сторону КХ

Pavel
24.04.2017
21:35:04
но у CH с визулизацией не так хорошо, пока что
драйвер для инфлакса довольно старый и отполированый, а для CH надо пока тягать из репо) но если проект для себя - ваще класс)

Andrew
25.04.2017
06:32:16
я сейчас тестирую кх для переезда своего проекта и возник такой вопрос - а какой подход есть для такой задачи - подсчет статистики за большой период (несколько месяцев\год)? Количество записей - несколько миллиардов, в память не помещается. Сейчас в текущем сторадже мы делаем предъагрегацию, но я так понял это не clickhouse-way?

Andrew
25.04.2017
06:35:34
Мы итерируемся по дням/неделям/месяцам, делая несколько запросов, и на клиенте финализируем тренд и график.
Или у вас неаддитивные показатели?
Это если данные совсем большие. Еще надо обязательно порекомендовать свежий рассказ Алексея про "как избежать memory limit при groupby", на ютубе

Andrew
25.04.2017
06:37:24
спасибо, пошел смотреть
показатели аддитивные

Vladislav
25.04.2017
06:38:58

Andrey
25.04.2017
06:58:56

Andrew
25.04.2017
07:18:49

Google

Andrey
25.04.2017
07:23:01

Andrew
25.04.2017
07:23:26

Denis
25.04.2017
07:40:51
а как лучше настроить обмен данными между postgres и clickhouse?
и есть ли какие-нибудь решения по переносу данных из biqguery в clickhouse?

Andrey
25.04.2017
07:44:54
Очень популярный вопрос по переносу. Самый простой вариант это дамп в TSV и загрузка с клиента.
Ну или кастом решения в виде потоковой загрузки напрямую, хотя не уверен что будет быстрее

Alexey
25.04.2017
07:45:28
по postgres - сильно зависит от вашей ситуации
* тут может быть и классический ETL, где CH в качестве DWH;
* а можно попробовать и на logical decoding с репликацией посмотреть (возможно с промежуточным приземлением в kafka). Типа такого https://github.com/confluentinc/bottledwater-pg
и главное не понятно, вам нужно одноразово перенести/мигрировать или нужно из OLTP БД данные подтягивать
в общем очень абстрактные постановки задачи

Denis
25.04.2017
07:58:54
Надо перенести данные разово и потом периодически дополнять. При этом регулярность обновления данных пока необязательна, то есть наверно вариант с дампом может подойти.

Artem
25.04.2017
10:16:04
А зачем, если не секрет?
и есть ли какие-нибудь решения по переносу данных из biqguery в clickhouse?


Andrey
25.04.2017
10:31:45
Ребят, вот такая ошибка, это ок или все же что-то поломалось?
2017.04.25 13:29:21.203722 [ 20 ] <Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 84, e.displayText() = DB::Exception: Directory /var/lib/clickhouse/data/default/data/19700101_19700131_153290_156523_9 already exists, e.what() = DB::Exception, Stack trace:
0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x1e293b6]
1. clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x1f) [0x106bcdf]
2. clickhouse-server(DB::MergeTreeDataMerger::mergePartsToTemporaryPart(std::vector<std::shared_ptr<DB::MergeTreeDataPart const>, std::allocator<std::shared_ptr<DB::MergeTreeDataPart const> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DB::MergeListEntry&, unsigned long, long, DB::DiskSpaceMonitor::Reservation*)+0x40b4) [0x1ff7c54]
3. clickhouse-server(DB::StorageMergeTree::merge(unsigned long, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)+0x47e) [0x1f43bbe]
4. clickhouse-server(DB::StorageMergeTree::mergeTask()+0x197) [0x1f44ba7]
5. clickhouse-server(DB::BackgroundProcessingPool::threadFunction()+0x3dc) [0x1fdb85c]
6. clickhouse-server() [0x35bc8ef]
7. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7faac48ab6ba]
8. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7faac3ecc82d]


Mike
25.04.2017
12:26:24
А зачем, если не секрет?
У нас тоже ожидается такая задача :) Зачем нам — вытащить сырые данные из Google Analytics Premium.

Artem
25.04.2017
12:27:20
а, вам ретроспектива нужна, хит дубликатор давно уже написали?

Denis
25.04.2017
12:28:37
А зачем, если не секрет?
Изначально историю браузинга собирали в bigquery (с заполнением userid), в Я.М начали передавать позже.
вот теперь думаем перенести и объединить/сопоставить.

Artem
25.04.2017
12:29:34
ясненько, мы с вами в одной лодке по таким задачкам

Andrey
25.04.2017
12:38:21
Интересное поведение. Если делать drop table то в processlist поле memory_usage отрицательное.
Но как говорится, на скорость не влияет))

Alexey
25.04.2017
13:01:11
чет я затупил. есть у кого пример файлов в conf.d/ ?
там должны быть xml с той же структурой? /yandex/* ? или как?
и вот эта часть немного сбивает с толку:
<remote_servers incl="clickhouse_remote_servers" />
<!-- If element has 'incl' attribute, then for it's value will be used corresponding substitution from another file.
By default, path to file with substitutions is /etc/metrika.xml. It could be changed in config in 'include_from' element.
Values for substitutions are specified in /yandex/name_of_substitution elements in that file.
-->

Google

Alexey
25.04.2017
13:04:41
либо я чего-то не вижу в документации, либо реально туплю, либо остальные это проходили через метод тыка?
во всех туториалах идет отсыл к документации, но мне ее походу недостаточно...

papa
25.04.2017
13:06:07
в целом у incl логика такая:
<yandex><b incl="c"><default/></b></yandex> +
<yandex><c><custom/></c></yandex> =
<yandex><b><custom/><default/></b></yandex>

Alexey
25.04.2017
13:08:57
извините, не могу сказать, что помогло
файлы в подкаталогке conf.d/ работают? Можно минимальный пример такого файла?
можно минимальный пример файла /etc/metrika.xml ?
когда правильней/удобней использовать подстановку, а когда conf.d/* ?

Felixoid
25.04.2017
14:54:47
просто кусок конфига, который будет вмерджен в /etc/clickhouse-server/config-preprocessed.xml

Alex
25.04.2017
14:59:08
*Оффтоп*
Вроде бы не пятница, а захотелось извращений
SELECT
MAX(if(Channel = 'native_cpm', Bid * 1000, Bid)) AS Maxbid,
MIN(if(Channel = 'native_cpm', Bid * 1000, Bid)) AS MinBid,
AVG(if(Channel = 'native_cpm', Bid * 1000, Bid)) AS avgBid
FROM impressions
WHERE EventDate = '2017-04-25'
И ведь что характерно - не тормозит!)

Dennis
25.04.2017
15:02:50
А, кстати, когда КХ по двум колонкам бежит, то как он не убивает диск по иопсам? Колонки же разного размера из-за сжатия и смещения конкретных строк внутри колонок разгын. Буферизирует одну колонку в памяти, пока не найдет в ней соответствующую строку нужную во второй колонке?