Size: a a a

ClickHouse не тормозит

2020 July 08

DC

Denny Crane (I don't... in ClickHouse не тормозит
Антон Куляшов
Всем привет! Подскажите пожалуйста, как в новом синтаксисе создания ReplicatedMergeTree таблиц указать поле date column для метадаты зукипера?
Если раньше мы создавали таблицу так
CREATE TABLE test.foo(`date` Date, `created` DateTime, `value` Int32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/foo', '{replica}', date, value, 8192);

И получали такую метадату в зк
[zk: localhost:2181(CONNECTED) 5] get /clickhouse/tables/1/foo/metadata
metadata format version: 1
date column: date
sampling expression:
index granularity: 8192
mode: 0
sign column:
primary key: value
granularity bytes: 10485760

То теперь создаем так
CREATE TABLE test.bar 
(
 `date` Date,
 `created` DateTime,
 `value` Int32
) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/bar', '{replica}')
PARTITION BY date
ORDER BY value
SETTINGS index_granularity = 8192

И получаем такую
[zk: localhost:2181(CONNECTED) 6] get /clickhouse/tables/1/bar/metadata
metadata format version: 1
date column:
sampling expression:
index granularity: 8192
mode: 0
sign column:
primary key: value
data format version: 1
partition key: date
granularity bytes: 10485760

Видим что поле date column пустое. Изначальный кейс - хотим явно задавать index_granularity_bytes, но в старом синтаксисе не можем.
ReplicatedMergeTree('/clickhouse/tables/{shard}/foo', '{replica}')
Partition by toYYYYMM(date)
Order by value
источник

PP

Piter Pen in ClickHouse не тормозит
Добрый день, подскажите пожалуйста можно ли создать материализованное представление поверх распределенной таблицы? Не удалось найти подобных примеров :(
источник

PP

Piter Pen in ClickHouse не тормозит
CREATE MATERIALIZED VIEW test.test_mv
           ( ... ) ENGINE = ReplacingMergeTree(key) PARTITION BY (year, month_number) ORDER BY (month_number, unp, type_code)
AS
SELECT *
FROM test.rn_declarations_distibuted; -- распределенная таблица
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Антон Куляшов
Всем привет! Подскажите пожалуйста, как в новом синтаксисе создания ReplicatedMergeTree таблиц указать поле date column для метадаты зукипера?
Если раньше мы создавали таблицу так
CREATE TABLE test.foo(`date` Date, `created` DateTime, `value` Int32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/foo', '{replica}', date, value, 8192);

И получали такую метадату в зк
[zk: localhost:2181(CONNECTED) 5] get /clickhouse/tables/1/foo/metadata
metadata format version: 1
date column: date
sampling expression:
index granularity: 8192
mode: 0
sign column:
primary key: value
granularity bytes: 10485760

То теперь создаем так
CREATE TABLE test.bar 
(
 `date` Date,
 `created` DateTime,
 `value` Int32
) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/bar', '{replica}')
PARTITION BY date
ORDER BY value
SETTINGS index_granularity = 8192

И получаем такую
[zk: localhost:2181(CONNECTED) 6] get /clickhouse/tables/1/bar/metadata
metadata format version: 1
date column:
sampling expression:
index granularity: 8192
mode: 0
sign column:
primary key: value
data format version: 1
partition key: date
granularity bytes: 10485760

Видим что поле date column пустое. Изначальный кейс - хотим явно задавать index_granularity_bytes, но в старом синтаксисе не можем.
date column не нужна в zk, другая znode теперь
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Alexey Er
Ну, синтаксис MySQL он в целом знает. Это же не JDBC какой, а "нативный" протокол, встроенный в Кликхаус.
шта? В том общем случае КХ даже не знает что там mysql
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Piter Pen
Добрый день, подскажите пожалуйста можно ли создать материализованное представление поверх распределенной таблицы? Не удалось найти подобных примеров :(
можно, но тогда вставка должна быть в distrbuted
такие MV очень редко нужны, например в случае когда шардирование MV таблицы отличается от основной, но это странно очень странно
источник

AE

Alexey Er in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
шта? В том общем случае КХ даже не знает что там mysql
Мой случай не такой общий:
CREATE DATABASE ENGINE=MySQL
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Alexey Er
Мой случай не такой общий:
CREATE DATABASE ENGINE=MySQL
смиритесь, не будет вам счастья.

В любом случае КХ не знает синстаксис mysql и не знает что mysql умеет limit
источник

В

Виталий in ClickHouse не тормозит
Добрый день! Подскажите, как можно записать время, приходящее в формате 'hh:mm:ss'? toTime такой аргумент не принимает
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Виталий
Добрый день! Подскажите, как можно записать время, приходящее в формате 'hh:mm:ss'? toTime такой аргумент не принимает
КХ не имеет типа Time, как число секунд в int?
источник

АК

Антон Куляшов... in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
date column не нужна в zk, другая znode теперь
Спасибо, а на что повлияет тогда Partition by toYYYYMM(date)?  Остальное вроде корректно у нас. И уточняюший вопрос - в старом синтаксисе же нельзя задать index_granularity_bytes? У нас из коробки создание таблиц не работает, потому что расходится дефолт в zk и ch.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Антон Куляшов
Спасибо, а на что повлияет тогда Partition by toYYYYMM(date)?  Остальное вроде корректно у нас. И уточняюший вопрос - в старом синтаксисе же нельзя задать index_granularity_bytes? У нас из коробки создание таблиц не работает, потому что расходится дефолт в zk и ch.
это аналогичная схема партиционирования, по месяцу, замена старому синтаксису

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

>У нас из коробки создание таблиц не работает, потому что расходится дефолт в zk и ch.
что вы имеете в виду?
источник

PP

Piter Pen in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
можно, но тогда вставка должна быть в distrbuted
такие MV очень редко нужны, например в случае когда шардирование MV таблицы отличается от основной, но это странно очень странно
В данном случае поверх распределенной таблицы используется каскад MV используемых для сложной агрегации и предпросчёта данных. (и шардирование отличается). Будет ли MV обновлять данные после вставки в в распределенную таблицу автоматом?
источник

AE

Alexey Er in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
смиритесь, не будет вам счастья.

В любом случае КХ не знает синстаксис mysql и не знает что mysql умеет limit
Шта? Да он даже про REPLACE INTO знает! :)

В общем, ситуация понятна, спасибо за пояснения.
источник

В

Виталий in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
КХ не имеет типа Time, как число секунд в int?
Через парсинг строки и домножение?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Виталий
Через парсинг строки и домножение?
в каком виде у вас приезжает время? как строка? типа 55667:38:24 (55667 часов)? Какой api ?
источник

В

Виталий in ClickHouse не тормозит
Приезжает из кафки в формате '12:34:45' (время события на сервере)
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Виталий
Приезжает из кафки в формате '12:34:45' (время события на сервере)
типа дата отдельно, время отдельно?
источник

В

Виталий in ClickHouse не тормозит
К сожалению да
источник

TG

Tagir Gumerov in ClickHouse не тормозит
Виталий
К сожалению да
а если сконкатенировать их и распарсить в DateTime?
источник