
Rudenko
20.12.2017
11:20:27
Ребят а в докере у вас какая версия латест ?
Трабла КХ сожрал 31ГБ ОЗУ и после перегрузки докер контейнера он все отдал. И сейчас жрет копейки.


Michal
20.12.2017
11:47:17
Добрый день , есть забавная задача.
Вот сама таблица
CREATE TABLE IF NOT EXISTS trade_history (
EventDate Date,
Timestamp UInt64,
Exchange String,
Pair1 String,
Pair2 String,
Price Float64,
Amount Float64,
Time DateTime
) ENGINE = MergeTree(EventDate, (Exchange, Timestamp, Pair1, Pair2, Price, Amount, Time), 8192);
К ней есть запрос типа
SELECT
MAX(Price), MIN(Price), SUM(Amount), Pair1, Pair2
FROM
trade_history
WHERE
(EventDate >= '2017-11-23' AND EventDate <= '2017-11-30')
AND
(Timestamp >= 1511447283790628020 AND Timestamp <= 1512052083790628020)
GROUP BY toStartOfHour(Time), Pair1, Pair2
Вопрос как получить первый Price и последний Price к каждой группе toStartOfHour(Time), Pair1, Pair2
Надо построить график OHLCV(Японские свечи).
Для этого надо 5 параметров
O - Open(Первый Price в временном промежутке)
H - High(Самый высокий Price за весь промежуток)
L - Low (Самый низкий Price за временной промежуток)
C - Close (Последний Price за временной промежуток)
V - Volume (Сума всех Amount)
Хотелось бы сделать все в один запрос чтоб не гонять дата сет в 1.5 ккк записей.
argMin(Price, Timestamp) и argMax(Price, Timestamp)

Google

Сергей
20.12.2017
12:39:48
Коллеги, привет!
Есть колонка watchIDs которая имеет тип String, данные там лежат в виде массива ([1,2,3,4]), но тем не менее это строка. Если ли возможность строку преобразовать в массив для дальнейшего использования, например в arrayJoin или все же надо перезаписать колонку с типом Array(Int32)?

Mariya
20.12.2017
12:42:05
Коллеги, привет!
Есть колонка watchIDs которая имеет тип String, данные там лежат в виде массива ([1,2,3,4]), но тем не менее это строка. Если ли возможность строку преобразовать в массив для дальнейшего использования, например в arrayJoin или все же надо перезаписать колонку с типом Array(Int32)?
Привет, можно привести строку к массиву как-то так
SELECT
CAST('[1, 2, 3]' AS Array(Int)) AS arr,
arraySum(arr) AS arr_sum
┌─arr─────┬─arr_sum─┐
│ [1,2,3] │ 6 │
└─────────┴─────────┘

Сергей
20.12.2017
12:51:23

Rudenko
20.12.2017
13:03:16
Ребят обновите в докере версию до более стабильной , утечка памяти

Kirill
20.12.2017
13:11:08

pavel
20.12.2017
13:13:19

Alex
20.12.2017
13:14:03
эм...насчет совершенства зукипера я не уверен )))
https://coreos.com/blog/performance-of-etcd.html
вот кстати небольшой бенч

Kirill
20.12.2017
13:16:13
Вот реально нафиг сейчас Консул не нужен, других проблем навалом, не до этой хипстоты )

Атата
20.12.2017
13:19:19
о, олдфаг в чате ?

Alex
20.12.2017
13:22:18
я думаю в плане хипстерства кликхаус переплюнет консул и etcd =)))

Google

Michal
20.12.2017
13:27:42
Вот-вот, за сегодня уже второй раз разные люди ругают разные технологие за "хипстерво" :) Что они делают на телеграм канале про кликхаус? :) Неужели BBS comp.lang.fortran закрылся? :)

Атата
20.12.2017
13:28:07
это синдром олдфага

Vahram
20.12.2017
13:40:55
Подскажите пожалуйста как скопировать данные из одной таблицы в другую? INSERT INTO table2 select * FROM table1 выдает ошибку про максимум 500 строк.

Атата
20.12.2017
13:41:35

Vahram
20.12.2017
13:44:51

Alex
20.12.2017
14:07:48
Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 9.43 GiB (attempt to allocate chunk of 134217728 bytes), maximum: 9.31 GiB, e.what() = DB::Exception подскажите как лечить такие ошибки?

Kirill
20.12.2017
14:09:12

Cargeh
20.12.2017
14:09:37

Alex
20.12.2017
14:09:45
спасибо

Kirill
20.12.2017
14:11:33

Anton
20.12.2017
14:39:25
вот кстати небольшой бенч
Я такой же бенчмарк от разрабов консула видел ? Каждый кулик своё болото хвалит, но по опыту работы с ZK - это очёнь надёжное хранилище

kamish
20.12.2017
15:36:38
бенчмарки не о надёжности =)

Andrey
20.12.2017
16:34:37
Вопрос новичка: есть CH в локальной сети. Есть CH удалённо. С локальной сети есть доступ к удалённому ZK и CH, а с удалённых в локальный доступа нет. Реплику с локального в удалённый реально сделать? :) Или нужно взаимодействие в обе стороны?

Anton
20.12.2017
17:18:48

Evgeny
20.12.2017
17:33:07
Можно же не меняя протокол zookeeper на etcd переехать с помощью zetcd - там правда пара ошибок не исправленных из за которых clickhouse не хочет с etcd работать...


Artem
20.12.2017
17:35:24
привет. подскажите пожалуйста как можно создать агрегирующую вьюху с nested-полем
для примера такая таблица:
CREATE TABLE my_table (
date Date MATERIALIZED timestamp,
timestamp DateTime,
key UInt64,
value1 UInt64,
value2 UInt64,
myMap Nested (
id UInt64,
a UInt64,
b UInt64
)
) ENGINE = ReplicatedMergeTree('/clickhouse/tables/my_table/{shard}', '{host}', date, (date, key), 8192);
и пытаюсь сделать вьюху так (не работает):
CREATE MATERIALIZED VIEW my_view (
date Date,
timestamp DateTime,
value1 UInt64,
value2 UInt64,
myMap Nested (
id UInt64,
a UInt64,
b UInt64
)
) ENGINE = ReplicatedSummingMergeTree('/clickhouse/tables/my_view/{shard}', '{host}', date, (timestamp), 8192)
AS SELECT toStartOfMonth(timestamp) AS date, toDateTime(toStartOfMonth(timestamp)) AS timestamp,
toUInt64(sum(value1)) AS value1, toUInt64(sum(value2)) AS value2,
myMap.id, myMap.a, myMap.b
FROM my_table
GROUP BY date, timestamp;
т.е. хочу просуммировать мапу. такое можно сделать?


Атата
20.12.2017
17:38:16

Evgeny
20.12.2017
17:39:17

Атата
20.12.2017
17:39:43

Andrey
20.12.2017
17:40:20

Google

Anton
20.12.2017
17:43:26
Реально, но репликация тут не причём. Просто один сервер не видит другой по конкретному адресу и порту

Evgeny
20.12.2017
17:45:26
Подробнее о проблемах)
Да все тоже, все устанавливается настраивается но при вставке данных - минут через 5 вставка данных встаёт, clickhouse не видит zookeeper, проверял с месяц назад

Alex
20.12.2017
17:48:47

Andrey
20.12.2017
18:03:23
Ребята, а кто нибудь делал ReplicatedSummingMergeTree с репликацией по дням? Не нашёл как настроить поля для суммирования

Andrey
20.12.2017
18:19:17

Max
20.12.2017
18:32:11
Тикет про другое, но смысл понятен должен быть

Andrey
20.12.2017
19:02:39
Но как задать поля для суммирования не ясно

Max
20.12.2017
19:04:50
Поля для суммирования это аргументы движка
Параметры партицирования это отдельное выражение
ENGINE = Replicated*MergeTree(настройка движка) настройка партиций
@komex стало понятнее?

Andrey
20.12.2017
19:10:15

Max
20.12.2017
19:19:23
Сейчас перед глазами нет документации, но в таком формате вроде нельзя задать партиции по дням - только по месяцам. Позже гляну ещё раз
кмк, так а
CREATE TABLE shard_3.replicated_summing_merge_tree_with_list_of_columns_to_sum( d Date, a String, b UInt8, x String,y Int8,z UInt32) ENGINE = ReplicatedSummingMergeTree('/clickhouse/tables/3/replicated_summing_merge_tree_with_list_of_columns_to_sum/','clickhouse003',d,(a, b),111,(y,z)) PARTITION BY (toMonday(d));
не работает?
Просто имхо вопрос такой же как и 'как настроить грануляцию для движка х'. Она единообразно настраивается.
Хорошо бы пример что именно не выходит сделать.


Andrey
20.12.2017
19:25:14
кмк, так а
CREATE TABLE shard_3.replicated_summing_merge_tree_with_list_of_columns_to_sum( d Date, a String, b UInt8, x String,y Int8,z UInt32) ENGINE = ReplicatedSummingMergeTree('/clickhouse/tables/3/replicated_summing_merge_tree_with_list_of_columns_to_sum/','clickhouse003',d,(a, b),111,(y,z)) PARTITION BY (toMonday(d));
не работает?
Завтра проверю. Но вроде так не должно работать

Max
20.12.2017
19:25:25
Потому что?

Alex
20.12.2017
19:31:10
Просто убираете из определения движка параметры столбца с датой (переезжает в PARTITION BY), первичного ключа (переезжает в ORDER BY), ключа семплирования (переезжает в SAMPLE BY) и гранулярности (переезжает в SETTINGS, или можно не указывать).
То есть получается ENGINE ReplicatedSummingMergeTree('/zk_path', 'replica_id', (y,z)) PARTITION BY toMonday(d) ORDER BY (a, b)

Google

Max
20.12.2017
19:58:08
@ztlpn и правда ?

Andrey
20.12.2017
20:01:31

Alex
20.12.2017
20:55:37
ю, вопрос, можно с типом FixedString(N) использовать операции > < = ?
нужен тип UInt256 операции только логические

Andrey
20.12.2017
21:25:56
Вот интересно. toDate('2010-01-01') возвращает 2010-01-01, а toDate('2410-01-01') возвращает 0000-00-00

Anton
20.12.2017
21:29:54

Andrey
20.12.2017
21:31:54
Жаль )) а то массоны календарь заказали. ID в дату пытаюсь засунуть )

Anton
20.12.2017
21:32:23
))))

Andrey
20.12.2017
21:35:16
Четыре поля в таблице являются идентификатором записи ( 750 │ 31488 │ 65535 │ 2147483647 ) для ускорения поиска хочу запихнуть в дату по которой сделать ключ для ускорения поиска. Есть может быть идеи?

kamish
20.12.2017
21:48:23
зачем запихивать в дату? это не ускорит поиск, а даже наоборот, сделает ваши селекты немного хуже
вы можете перечислить эти поля в первичном ключе и не заморачиваться, но делать из даты что-то невразумительное не стоит
поскольку дата по умолчанию в mergetree используется как ключ партиционирования и, соответственно, для слияний
После создания такой таблицы слияние кусков будет работать только для кусков с одинаковым значением выражения партиционирования. Замечание: это означает, что нежелательно делать слишком гранулированное партиционирование (более порядка тысячи партиций), иначе производительность SELECT будет неудовлетворительной.

Timur
20.12.2017
22:10:19
Всем привет, только начал смотреть на clickhouse, никак не могу найти в доках как из строки формата Column 3, name: type: String, parsed text: "<DOUBLE QUOTE>2016-10-03T08:23:13 UTC<DOUBLE QUOTE> конавертнуть в native datetime

Anton
20.12.2017
22:53:39

Timur
20.12.2017
22:54:35
Так там же формат строки опеределен
Как %Yyyy-mm-dd hh:mm:as
У меня же строка с таймзонлй и разделителем

Anton
20.12.2017
22:55:55
UTC тож зареплейсить

Google

Timur
20.12.2017
22:56:32
А если тз всегда разная?

Anton
20.12.2017
22:57:10
Приводить к нужной ТЗ перед конвертацией :) Это же очевидно :)

Timur
20.12.2017
22:57:34
Ок, мне это и нужно узнать, все делать на этапе etl
Thx

Anton
20.12.2017
22:57:50
Сейчас уже появилась поддержка интервалов, если я правильно помню последний митап. С таймзоной вроде еще есть траблы

Timur
20.12.2017
23:11:56
про интервалы читал, это отделная тема которая мне тоже инетерсна

Alexey
21.12.2017
05:23:36
Если в день 170-180 млн строк, колонок 40-50, есть жирные строковые, посоветуете по дням сделать партиции? Перезаливать было бы оч удобно, но не просядет ли производительность в селектах и в слияниях?

Alexey
21.12.2017
08:26:37
после optimize смерженные куски не удаляются, лежат второй день, хотя обычно через несколько минут удалялись
39G ./20171001_20171026_7496709_8188150_1840
39G ./20171001_20171031_7496709_8204298_1841
245M ./20171026_20171031_8188151_8204297_722
60K ./20171031_20171031_8204298_8204298_0
в чем может быть проблема? как бороться?

Ilya
21.12.2017
09:33:55