Size: a a a

ClickHouse не тормозит

2020 September 09

v

valentinmk in ClickHouse не тормозит
Привет, вопрос простой - есть ли возможность определить с долями секунд выполнение запроса?
Проще говоря получить epoch с точностью большей чем секунда
SELECT toFloat64(now()) as stored_at
источник

SC

Smoked Cheese in ClickHouse не тормозит
valentinmk
Привет, вопрос простой - есть ли возможность определить с долями секунд выполнение запроса?
Проще говоря получить epoch с точностью большей чем секунда
SELECT toFloat64(now()) as stored_at
now64()
источник

v

valentinmk in ClickHouse не тормозит
Спасибо! В документации ни слова
источник

SC

Smoked Cheese in ClickHouse не тормозит
valentinmk
Спасибо! В документации ни слова
можно параметром указать сколько надо цифер после запятой, например now64(6) - c микросекундами, now64(9) - наносекундами. на выходе тип будет DateTime64(n)
источник

v

valentinmk in ClickHouse не тормозит
Smoked Cheese
можно параметром указать сколько надо цифер после запятой, например now64(6) - c микросекундами, now64(9) - наносекундами. на выходе тип будет DateTime64(n)
Еще раз спасибо, хотел уже спрашивать есть ли функция now128() ))
источник

SC

Smoked Cheese in ClickHouse не тормозит
ну а сам DateTime64 это обёртка над Decimal64
источник

MK

Max Kolesnikov in ClickHouse не тормозит
Добрый день.

Подскажите, пожалуйста, как удалить партиции за определенный период времени из конкретной таблицы.
Что-то вроде такого where date <= toDate(2018-01-01) and table_name = ‘table1’

И возможно ли в подобном виде удалять партиции в clickhouse?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Max Kolesnikov
Добрый день.

Подскажите, пожалуйста, как удалить партиции за определенный период времени из конкретной таблицы.
Что-то вроде такого where date <= toDate(2018-01-01) and table_name = ‘table1’

И возможно ли в подобном виде удалять партиции в clickhouse?
только скриптами

select concat('alter table ',table, ' drop partition ',partition, ';')
from system.parts
where active = 1 and table like 'table1'  and partition like 2018
group by database,table,partition
order by database,table,partition
источник

MK

Max Kolesnikov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
только скриптами

select concat('alter table ',table, ' drop partition ',partition, ';')
from system.parts
where active = 1 and table like 'table1'  and partition like 2018
group by database,table,partition
order by database,table,partition
Спасибо большое!
источник

A

Andrew in ClickHouse не тормозит
Добрый вечер, а может кто-то подсказать, как в CH можно вставлять nested объекты с json не оборачивая value в [], а то сейчас так получается

INSERT INTO gradle_build_stat FORMAT JSONEachRow { "durations_profile": { "total":[23880], "compile":[8455]….
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Andrew
Добрый вечер, а может кто-то подсказать, как в CH можно вставлять nested объекты с json не оборачивая value в [], а то сейчас так получается

INSERT INTO gradle_build_stat FORMAT JSONEachRow { "durations_profile": { "total":[23880], "compile":[8455]….
JSONEachRow -- подразумевается что это EACH ROW -- один {} json - одна строка
ну полгода назад добавили [{}, {}]
источник

A

Andrew in ClickHouse не тормозит
С типом JSON нельзя делать INSERT
источник

A

Andrew in ClickHouse не тормозит
Он вроде для select и подобных вещей
источник

A

Andrew in ClickHouse не тормозит
Да, это я понимаю, просто вопрос немного в другом(
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
ааа nested
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Andrew
Добрый вечер, а может кто-то подсказать, как в CH можно вставлять nested объекты с json не оборачивая value в [], а то сейчас так получается

INSERT INTO gradle_build_stat FORMAT JSONEachRow { "durations_profile": { "total":[23880], "compile":[8455]….
источник

AZ

Anton Zhuravsky in ClickHouse не тормозит
всем привет! подскажите, лечится ли как-то ошибка: пытаемся через s3 функцию почитать бакет, вываливается через полминуты без конкретики, логи утверждают, что AWS отдает 302 редирект на попытке почитать бакет. Регион указан, ключи рабочие
версия CH 20.5.4.40
источник

D

Dj in ClickHouse не тормозит
Oleg K
Здравствуйте - на вид тривиальная функция, так что добавил в мастер, посмотрите
день добрый, мы снова с вами дубль 3 =)
Спасибо вам за прекрасный драйвер )

можно получить вашу помощь по
https://github.com/DarkWanderer/ClickHouse.Client/issues/40

у нас кровь из носа проблема что любой запрос который возвращает много строк в логах выполняется "за доли секунды", а время фетча неясно, так как данные во время скана то приходят, то нет (например первые блоки быстро прилетели и потом ничего не летит). Когда запросы отваливаются с таймаутом - невозможно понять кто виноват - запрос, сшарп код, или драйвер T.T
источник

G

Grigory in ClickHouse не тормозит
Здравия!

Есть база данных, в которой такие таблицы

CREATE TABLE IF NOT EXISTS db1.table1_local ON CLUSTER '{cluster}' (
 transaction_id UUID,
 common_tenant String,
 common_device UUID,
 internal_datetime_utc DateTime64(3, 'UTC'),
) ENGINE = ReplicatedReplacingMergeTree(
 '/clickhouse/tables/{shard}/table1_local', '{replica}'
) ORDER BY (common_tenant, common_device, internal_datetime_utc, transaction_id)
 PRIMARY KEY (common_tenant, common_device)
 PARTITION BY toYYYYMM(internal_datetime_utc)
 
 
CREATE TABLE IF NOT EXISTS db1.table1 ON CLUSTER '{cluster}' (
 transaction_id UUID,
 common_tenant String,
 common_device UUID,
 internal_datetime_utc DateTime64(3, 'UTC'),
) ENGINE = Distributed(
 '{cluster}', db1, table1_local, rand()
)

Таблицы наполнили тестовыми данными и сейчас делаю селекты. И не могу понять, должно ли так быть
Вот такой селект не возвращает ничего
SELECT common_tenant, common_device FROM db1.table1_local WHERE (common_tenant, common_device) IN tuple(('23c38aa5-64a7-461b-a4a4-6cb3c01fa3b9', '4fb6b657-b4c7-4d47-a4fd-1eeda65a4d1d'), ('2e63a510-8aab-4255-ad44-c72e3ef0f6aa', 'cdfc6dc1-927f-447e-913c-4da33ef03f90')) AND isNull(customer) ORDER BY common_tenant, common_device
Вот такие селекты возвращают записанные ранее данные
В этом запросе я убрал tuple
SELECT common_tenant, common_device FROM db1.table1_local WHERE (common_tenant, common_device) IN (('23c38aa5-64a7-461b-a4a4-6cb3c01fa3b9', '4fb6b657-b4c7-4d47-a4fd-1eeda65a4d1d'), ('2e63a510-8aab-4255-ad44-c72e3ef0f6aa', 'cdfc6dc1-927f-447e-913c-4da33ef03f90')) AND isNull(customer) ORDER BY common_tenant, common_device


В этом запросе обратился к таблице table1:
SELECT common_tenant, common_device FROM db1.table1 WHERE (common_tenant, common_device) IN tuple(('23c38aa5-64a7-461b-a4a4-6cb3c01fa3b9', '4fb6b657-b4c7-4d47-a4fd-1eeda65a4d1d'), ('2e63a510-8aab-4255-ad44-c72e3ef0f6aa', 'cdfc6dc1-927f-447e-913c-4da33ef03f90')) AND isNull(customer) ORDER BY common_tenant, common_device

Так должно быть? В какую сторону смотреть, подскажите, плиз
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Grigory
Здравия!

Есть база данных, в которой такие таблицы

CREATE TABLE IF NOT EXISTS db1.table1_local ON CLUSTER '{cluster}' (
 transaction_id UUID,
 common_tenant String,
 common_device UUID,
 internal_datetime_utc DateTime64(3, 'UTC'),
) ENGINE = ReplicatedReplacingMergeTree(
 '/clickhouse/tables/{shard}/table1_local', '{replica}'
) ORDER BY (common_tenant, common_device, internal_datetime_utc, transaction_id)
 PRIMARY KEY (common_tenant, common_device)
 PARTITION BY toYYYYMM(internal_datetime_utc)
 
 
CREATE TABLE IF NOT EXISTS db1.table1 ON CLUSTER '{cluster}' (
 transaction_id UUID,
 common_tenant String,
 common_device UUID,
 internal_datetime_utc DateTime64(3, 'UTC'),
) ENGINE = Distributed(
 '{cluster}', db1, table1_local, rand()
)

Таблицы наполнили тестовыми данными и сейчас делаю селекты. И не могу понять, должно ли так быть
Вот такой селект не возвращает ничего
SELECT common_tenant, common_device FROM db1.table1_local WHERE (common_tenant, common_device) IN tuple(('23c38aa5-64a7-461b-a4a4-6cb3c01fa3b9', '4fb6b657-b4c7-4d47-a4fd-1eeda65a4d1d'), ('2e63a510-8aab-4255-ad44-c72e3ef0f6aa', 'cdfc6dc1-927f-447e-913c-4da33ef03f90')) AND isNull(customer) ORDER BY common_tenant, common_device
Вот такие селекты возвращают записанные ранее данные
В этом запросе я убрал tuple
SELECT common_tenant, common_device FROM db1.table1_local WHERE (common_tenant, common_device) IN (('23c38aa5-64a7-461b-a4a4-6cb3c01fa3b9', '4fb6b657-b4c7-4d47-a4fd-1eeda65a4d1d'), ('2e63a510-8aab-4255-ad44-c72e3ef0f6aa', 'cdfc6dc1-927f-447e-913c-4da33ef03f90')) AND isNull(customer) ORDER BY common_tenant, common_device


В этом запросе обратился к таблице table1:
SELECT common_tenant, common_device FROM db1.table1 WHERE (common_tenant, common_device) IN tuple(('23c38aa5-64a7-461b-a4a4-6cb3c01fa3b9', '4fb6b657-b4c7-4d47-a4fd-1eeda65a4d1d'), ('2e63a510-8aab-4255-ad44-c72e3ef0f6aa', 'cdfc6dc1-927f-447e-913c-4da33ef03f90')) AND isNull(customer) ORDER BY common_tenant, common_device

Так должно быть? В какую сторону смотреть, подскажите, плиз
select * from (select 1 a,2 b) where (a,b) in (tuple(1,2), tuple(2,3))
┌─a─┬─b─┐
│ 1 │ 2 │
└───┴───┘
источник