@clickhouse_ru

Страница 25 из 723
f1yegor
01.12.2016
18:57:40
insert into temp select * from typed_events where date > '2016-11-20'

хотя если считаются разжатые данные, то может столько и будет, т.е. сжатие ~7-8 раз

papa
01.12.2016
19:04:06
а count() сколько, с фильтром и без фильтра?

f1yegor
01.12.2016
19:05:15
с фильтром ~200млн, всего ~900млн

Google
papa
01.12.2016
19:05:43
значит читает с использованием фильтра, а байты китайские.

f1yegor
01.12.2016
19:07:15
я верю что все данные - asci

Юрий
01.12.2016
21:14:51
при большой нагрузке CPU usage 300% максимум. как заюзать больше ядер?

Виктор
01.12.2016
21:18:49
В диск упирается наверное

Maksim
02.12.2016
04:54:49
при большой нагрузке CPU usage 300% максимум. как заюзать больше ядер?
Доброе утро! Я продолжу тему - больше 300% не ест, ио по нулям - файлы на ссд. Во что может упираться? Или ему нагрузки не приходит больше?

Виктор
02.12.2016
07:05:23
max_threads можно увеличить

Какой движок таблицы?

Maksim
02.12.2016
07:05:41
MergedTree

Виктор
02.12.2016
07:05:59
io по нулям по данным чего?

Ну и что за запрос

Maksim
02.12.2016
07:06:07
top, htop

куча запросов в большей массе - select

Виктор
02.12.2016
07:07:34
Ну это понятно. Какой паттерн запроса

Google
Виктор
02.12.2016
07:07:58
И io лучше по iotop, я вообще не припомню чтобы top давал in

Io

Maksim
02.12.2016
07:10:42
iotop тоже нули показывает, write на уровне 100-200K/s

Вася
02.12.2016
08:18:02
Привет. Подскажите пожалуйста, умеет ли кликхаус делать cumulative sum? То есть допустим есть табличка со строками (1,2,3) а хочется получить (1, 3, 6). На каком-нибудь MS SQL я бы сделал джойн таблички с самой собой по t1.id >= t2.id и просуммировал. Но CH так не умеет.

Darafei
02.12.2016
08:27:34
window functions!

Виктор
02.12.2016
08:31:11
Не умеет пока что

Vladislav
02.12.2016
08:31:27
но оконные функции это не отменяет...

Вася
02.12.2016
08:35:34
Понял. Спасибо. Жаль.

Виктор
02.12.2016
08:38:39
Найдите таск на гитхабе и поставьте лайк, например

Mariya
02.12.2016
08:43:56
В принципе, в CH тоже можно посчитать cumulative sum - не очень красиво, но вроде работает CREATE TABLE test ENGINE = Log AS SELECT arrayJoin([1, 2, 3]) as value SELECT value1 as value, sum(value2) as cumsum FROM (SELECT value as value1, 1 as fake FROM test ) ALL INNER JOIN (SELECT value as value2, 1 as fake FROM test ) USING fake WHERE value1 >= value2 GROUP BY value1

Vladimir
02.12.2016
10:07:24
а есть какой-нибудь способ ускорить чтение данных? Тестирую опять же на графитной нагрузке

делаю запрос типа: SELECT Path, Time, Value, Timestamp FROM graphite WHERE (Path IN ({74 метрики})) AND ((Date >='2016-12-02' AND Date <= '2016-12-02' AND Time >= 1480650830 AND Time <= 1480672430)) FORMAT RowBinary

и аналогичный в графит

графит отвечает за 70мс

кликхаус за 120

Igor
02.12.2016
10:09:42
а че если фильтр по Date в WHERE перенести в самое начало? Какие индексы стоят?

Vladimir
02.12.2016
10:10:08
CREATE TABLE default.graphite ( Path String, Value Float64, Time UInt32, Date Date, Timestamp UInt32) ENGINE = Distributed(graphite, 'default', 'graphite_local', sipHash64(Path))

CREATE TABLE default.graphite_local ( Path String, Value Float64, Time UInt32, Date Date, Timestamp UInt32) ENGINE = GraphiteMergeTree(Date, (Path, Time), 8192, 'graphite_rollup')

Igor
02.12.2016
10:10:21
или Path IN в PREWHERE запихнуть (но здесь я не уверен, могу фигню сказать, до сих пор не знаю, как он работает, блин)

Dmitry
02.12.2016
10:11:06
Лучше всё условие в prewere

Google
Vladimir
02.12.2016
10:11:10
в смысле становится вместо 120 - 110

Лучше всё условие в prewere
а это как именно?

можно пример?

Igor
02.12.2016
10:11:32
да вместо WHERE пишешь PREWHERE и все

Vladimir
02.12.2016
10:11:51
хм, да, так веселее

да, теперь одинаково стало )

интересно, а можно еще лучше?

Igor
02.12.2016
10:12:53
date = '2016-12-02'?

Vladislav
02.12.2016
10:13:34
а почему в Time прописан Timestamp и для чего тогда date?

Igor
02.12.2016
10:13:50
Date для индекса, ибо это MergeTree все-таки

Vladislav
02.12.2016
10:14:12
ппц кастыли

Igor
02.12.2016
10:15:00
а timestamp видимо еще какое-то время из себя представляет

Vladimir
02.12.2016
10:15:02
date = '2016-12-02'?
ну в примере запроса да

я за сегодня спрашивал

там нет разницы <= AND >=

или просто =

Igor
02.12.2016
10:15:28
ок(

Vladimir
02.12.2016
10:15:41
Time - свойство данных

Google
Dmitry
02.12.2016
10:16:02
А date, надо думать, оно вообще не хранит

Vladimir
02.12.2016
10:16:07
@SLASH_CyberPunk потому что в графите нужно их уметь обновлять в прошлое, есть еще версия.

Dmitry
02.12.2016
10:16:12
ибо это - метаданные

Vladimir
02.12.2016
10:16:21
а Time это таймстамп который пришел вместе с чиселкой

Vladislav
02.12.2016
10:17:53
я все равно не понял

по условию вижу, что они равнозначны, только типом данных отличаются...

то что дата нужна для индекса - это я понял

получается, если гоняешь данные со временем, то извращайся такой схемой, хотя более логично было бы что-то подобие trunc делать

Dmitry
02.12.2016
10:19:50
Не для индекса. Для партиционирования

Vladislav
02.12.2016
10:20:10
в данном контексте не суть важно

Konstantin
02.12.2016
13:45:43
Привет. Подскажите как можно импортировать данные таблицу с движком MergeTree если отсутствует столбец с датой? (есть только DateTime)

Vladislav
02.12.2016
13:48:00
Сделать еще столбец с датой

Konstantin
02.12.2016
13:49:51
мм.... пробовал сделать поле date DEFAULT toDate(timestamp), а как тогда вставить в таблицу CSV с меньшим количеством столбцов?

Vladislav
02.12.2016
13:50:51
Сделать свой ETL наверно

Либо лепить через временные

Igor
02.12.2016
13:58:39
мм.... пробовал сделать поле date DEFAULT toDate(timestamp), а как тогда вставить в таблицу CSV с меньшим количеством столбцов?
перечислить колонки в запросе insert которые есть csv , на которые не указаны сработает default

Konstantin
02.12.2016
14:00:28
перечислить колонки в запросе insert которые есть csv , на которые не указаны сработает default
а какой в данном случае будет синтаксис? сейчас импортирую просто: cat tes2.csv | clickhouse-client —query="INSERT INTO test FORMAT CSV";

Google
Igor
02.12.2016
14:00:58
В статье описывал https://habrahabr.ru/company/smi2/blog/314558/

Konstantin
02.12.2016
14:01:35
понял, сейчас перечитаю внимательней, спасибо =)

Igor
02.12.2016
14:02:04
А для консоли INSERT INTO test (col,col2) FORMAT

Vladislav
02.12.2016
14:21:16
Так если при импорте запрос, прям в запросе и сделайте колонку

INSERT INTO test (col,trunk(col2),col2) FORMAT

Или транк в кх не завезли? ?

Виктор
02.12.2016
14:33:57
trunc это функция из oracle, с чего бы ей быть в clickhouse

Для этого есть toDate

Konstantin
02.12.2016
14:45:32
Vladislav
02.12.2016
14:55:11
Slach
04.12.2016
08:28:19
а имена типов а-ля String, Int (строго с большой буквы) это специально так задумано? или случайно получилось? ;)

Alexey
04.12.2016
17:29:54
Так изначально задумано. Скорее всего, мы сделаем также алиасы для типов из SQL (типа varchar), имена которых будут не регистрозависимыми. Но при этом придётся сохранить некоторые технические отличия в реализации (пример: отсутствие проверки на переполнение для int-ов).

nikoinlove
04.12.2016
17:33:58
хорошо не Stroka

Виктор
04.12.2016
18:09:23
Трололо :)

В коде кликхауса нет Stroka

Igor
04.12.2016
18:10:01
и мата нету :(

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