
kamish
03.01.2018
15:41:28
в смысле, файлов whisper? я как-то глядел его исходники, если вы знаете python, то не составит труда написать инструмент для его библиотек и чтения файлов
а там уже можно запустить find /opt/graphite/storage/ -type f -exec script.py {} \;
https://github.com/graphite-project/whisper/blob/b082f4875e2a0ec5452db823dbc8adf9403cda95/whisper.py#L874
вот, кажется, функция

Google

Aliaksei
03.01.2018
15:55:01
знаю в каком-то приближении, буду писать. Думал возможно есть уже готовая утилита

Felixoid
03.01.2018
16:35:46
Есть такое в заначке: https://github.com/bzed/whisper-to-graphite/
Работает не очень быстро на одном потоке, но на proc*2 выдаёт нормально

Aliaksei
03.01.2018
16:37:43
Отлично, почти то что надо. Спасибо!


Nikita
03.01.2018
21:21:03
Всем привет работающим в праздники :) Есть вопрос — если хочется поменять настройку compression как описано тут https://clickhouse.yandex/docs/ru/operations/server_settings/settings.html#compression — что произойдёт с существующими кусками?
И можно ли как-то существующие разжать/сжать назад?
Поставили ради интереса NVM-e диск, удивлённо не увидели никакого прироста в производительности относительно SSD, задумались, и с учётом не очень быстрого процессора пришли к выводу, что проблема может быть в этом.
Да, в общем так работает всё — можно поменять настройку и сделать create table as select * — новая таблица создаётся с новым алгоритмом сжатия, старая целая невредимая остаётся
Другой вопрос, что всё равно получилась загадка —
была таблица lz4
сделал none (без компрессии вообще) — на диске без компрессии таблица занимает в ~4 раза больше
А загадка заключается в том, что скорость исполнения запросов что в старую таблицу, что в новую одинаковая. В чём может быть причина?
Вряд ли прям 1:1 сэкономленное время на распаковку уходит на чтение с диска ?


Ilya
03.01.2018
23:34:08

Nikita
03.01.2018
23:34:22
С холодного запуска тестировал

Google

Nikita
03.01.2018
23:35:04
Т.е. условно говоря
— рестарт сервера
— create table2 AS select * from table1
— select … from table1
— select … from table2
Ну и несколько прогонов — потом на горячем тоже одинаковые чиселки

Ilya
03.01.2018
23:36:04
А размер таблицы какой,
?

Nikita
03.01.2018
23:36:24
32G t1
135G t2

Ilya
03.01.2018
23:36:44
На каких запросах тестировали?

Nikita
03.01.2018
23:37:31
Полнотекстовый поиск по текстовому полю (в котором хранится рандом) + сложить какие-нибудь колонки
Чувствую, что всё-таки я что-то делаю не так
Ну сложить — в смысле просто select sum(…) from t;
Без условий по датам и ключам всё

Mangol
03.01.2018
23:54:03
https://geektimes.ru/post/297003/
чует моя жопа просадку кх
Самый сок что акции просели интела.
А только собрал 8700(

Maksim
04.01.2018
00:38:46
а, кстати, хороший вопрос: насколько эта проблема существенна, если вы владелец железки и ставите туда один единственный собственный кликхаус
что может пойти не так?

Aliaksandr
04.01.2018
00:47:38

rus
04.01.2018
02:11:54
Вот по постгре есть, может интересно кому интересно
https://www.postgresql.org/message-id/20180102222354.qikjmf7dvnjgbkxe%40alap3.anarazel.de

Egor
04.01.2018
02:13:37

?
04.01.2018
15:02:12
а в match можно как-то указать чтобы case insensitive был?

Maxim
04.01.2018
15:31:35
а как сделать чтобы не вставлялись дубликаты строк?

Google

?
04.01.2018
15:37:35
насколько я понимаю, только предварительно фильтруя их

Maxim
04.01.2018
15:38:10
жесть
а для чего тогда конструкция order by при создании таблицы? просто для поиска? т е это не pk?

?
04.01.2018
15:40:31
я что-то даже и не встречал order by при создании, только при селекте

Felixoid
04.01.2018
15:40:55

Maxim
04.01.2018
15:42:32
плёхо, т е нет возможности не вставлять дубли, ладно, спасибо

Андрей
04.01.2018
15:43:18
Посмотрите в документации ReplacedMergeTree.

Maxim
04.01.2018
15:45:16

?
04.01.2018
15:45:40
а где есть свежая дока? а то в текущей нету даже такого ничего

Андрей
04.01.2018
15:46:10
ReplacingMergeTree

?
04.01.2018
15:46:30
ага, вижу, спасибо

Maxim
04.01.2018
15:47:18
только вот оно не гарантирует избавления от дублей, если в старой партиции будут дубли то так и останутся

Name
04.01.2018
15:47:24
https://clickhouse.yandex/docs/ru/table_engines/collapsingmergetree.html этот движек не устроит?

?
04.01.2018
15:47:24
Таким образом, ReplacingMergeTree подходит для фоновой чистки дублирующихся данных в целях экономии места, но не даёт гарантий отсутствия дубликатов.

Felixoid
04.01.2018
15:51:58

?
04.01.2018
15:52:11
ну да )

Maxim
04.01.2018
15:52:40
походу это все не то, прийдется руками делать проверку перед вставкой...

Vladimir
04.01.2018
15:52:59

Maxim
04.01.2018
15:53:03
я здесь этот синтаксис увидел https://github.com/yandex/ClickHouse/blob/master/dbms/tests/queries/0_stateless/00502_custom_partitioning_local.sql

Google

Felixoid
04.01.2018
15:56:50

Maxim
04.01.2018
16:11:52

Felixoid
04.01.2018
16:12:25
дубли будут схлопываться движком ReplacingMT

Maxim
04.01.2018
16:14:23
дубли будут схлопываться движком ReplacingMT
ок, есть где-нить описание, когда происходит компактификация, и когда она завершается? я хочу партиционирование не по дате (есть такое) но нужно понимать, до каких пор будет происходить компактификация партиций? всю жизнь? или в какой-то момент сабпартиции перестанут обрабатываться...

Felixoid
04.01.2018
16:16:41
во время мерджей, которые всегда относятся только к одной партиции
я почти уверен, что было видео на эту тему, но даже не помню примерно, на каком митапе или конфе рассказывалось про это =\
можно попробовать тут поискать по хештегу faq

antuan
04.01.2018
16:41:30

Maxim
04.01.2018
16:43:56
есть связка key->value,ts данные лежат в памяти, но переодически чистятся, и пожтому могут приходить старые связки. в данный момент я просто вставляю такие данные в кассандру с ключем in not exists
value могут меняться, и тогда должна появиться вторая запись в таблице
1 -> 2, 10:00
2 -> 3, 11:00
потом может прийти 1 -> 3, 11:00 и она должна появиться в базе
партиции собирался делсть по части ключа

antuan
04.01.2018
16:46:04
Аналитические запросы ведь будут, да?)

Maxim
04.01.2018
16:46:39
нет, это просто хранилище для поиска связок, но пополняемое

antuan
04.01.2018
16:49:21
Тогда кх - это не ваш выбор :)

Maxim
04.01.2018
16:50:20
эта таблица нужна для работы с другими данными, которые уже льются
просто использовать кучу разных баз мне не нравится

antuan
04.01.2018
16:50:56
Используйте словари, как вариант
Пишите в файл состояние, прдклбчайте файл как словарь. В бд делайте create table table... Engine dictionary
И читайте как из обычной sql-таблицы
Джоины, вот это всё
https://youtu.be/TAiCXHgZn50

Google

antuan
04.01.2018
16:56:04
36я минута

kamish
04.01.2018
17:21:28
CH -- это не про key/value

Andrew
04.01.2018
18:55:31
Ещё если у вас мускуль то можно подключить словарь оттуда

Serge
04.01.2018
19:49:52
всем привет, кто использует CH совместо с go?
заюзал https://github.com/mailru/go-clickhouse/ но возникает проблема "clickhouse: wrong placeholder count", по всей видимости данные не эскейпятся

Slach
04.01.2018
19:50:20
код скинь на play.golang.com
ну и еще два нативных драйвера есть
у тебя какая задача? данные грузить ? или SQL запросы фетчить?

Serge
04.01.2018
19:52:11
у меня анализатор сайтов, типа парсер, гружу данные - title, meta desc, h1 и все такое, все работало, но тут начал с одним сайтом тестить и периодически вылетает

?
04.01.2018
19:52:29
без кода ничего не сказать

Serge
04.01.2018
19:52:35
буду пытаться найти конкретную строку с которой валится, т.к. все вставляется пачками большими

Slach
04.01.2018
19:53:39
ну вообще там обычно отлично отдается ответ полный
со строкой в которой ошибка и т.п.
можешь вообще какой нибудь tcpdump запустить на 8123 порт и в wireshark потом в pcap поковыряться
вставляешь то пачками по 100k записей да?

Serge
04.01.2018
19:55:36
пачки от 10 до 50 тыс получаются

Slach
04.01.2018
19:55:51
норм
короче ошибка которая от clickhouse прилетает там полностью трейс обычно идет на какой строке
в каком формате вставляешь? TSV? CSV? JSON ?

Serge
04.01.2018
19:57:30
sql, используя мейлрушный клиент

Slach
04.01.2018
20:21:26
ай блин, я почему то подумал что клиент от roistat ;)
я с майлрушным не работал