Size: a a a

ClickHouse не тормозит

2021 January 12

SP

Sergey Platonov in ClickHouse не тормозит
хм, в других местах его NULL устраивает
источник

SP

Sergey Platonov in ClickHouse не тормозит
попробую от них избавиться
источник

SP

Sergey Platonov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
ну КХ ожидает \N или ,,
можно через input function перекодировать, я бы sed-м заменил
да, с ,, и Nullable(DateTime) все ОК, Спасибо!
источник

R

Roman in ClickHouse не тормозит
Sergey Platonov
в CSV в поле с DateTime есть NULL-ы. Как сделать чтобы они не приводили к ошибке?
Вставит значение по умолчанию, начало эпохи, например
источник

SP

Sergey Platonov in ClickHouse не тормозит
нет NULL не вставлял
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
в CSV нету такого: Null. Как для строки отличить, там Null или строка "Null" ? Поэтому в CSV используется \N
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
в последних КХ можно задать что пустая ячейка ,, воспринимается как default
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
--input_format_defaults_for_omitted_fields arg                   For input data calculate default expressions for omitted fields (it works for JSONEachRow, CSV and TSV formats).
источник

SC

Sarcastic Cat in ClickHouse не тормозит
Господа, есть вопрос (возможно даже два):
Основная задача: посчитать количество событий в определенном промежутке с группировкой по дням/часам/etc. и с заполнением нулями промежутков, в которые событий нет.
Я делаю вот так для периодов в день (и это первый вопрос, возможно это неправильно?):
SELECT 
   count(*) AS cnt,
   toStartOfInterval(time, toIntervalDay(1)) AS period
FROM metrics
WHERE (toDate(time) >= '2021-01-11') AND (toDate(time) <= '2021-01-12')
GROUP BY period
ORDER BY period ASC
UNION ALL
SELECT
   0 AS cnt,
   arrayJoin(timeSlots(toDateTime(toDate('2021-01-11'), 'UTC'), toUInt32(dateDiff('second', toDateTime(toDate('2021-01-11')), toDateTime(toDate('2021-01-12')))), toUInt32(86400))) AS period
GROUP BY period
ORDER BY period ASC

проблема в том, что в ответ я получаю
┌────cnt─┬──────────────period─┐
│ 391722 │ 2021-01-11 00:00:00 │
│ 468620 │ 2021-01-12 00:00:00 │
└────────┴─────────────────────┘
┌─cnt─┬──────────────period─┐
│   0 │ 2021-01-11 03:00:00 │
│   0 │ 2021-01-12 03:00:00 │
└─────┴─────────────────────┘

т.е. нулевые почему-то в московской таймзоне
в то же время, если сделать этот подзапрос отдельно то все хорошо:
SELECT timeSlots(toDateTime(toDate('2021-01-11'), 'UTC'), toUInt32(dateDiff('second', toDateTime(toDate('2021-01-11')), toDateTime(toDate('2021-01-12')))), toUInt32(86400)) AS slots

┌─slots─────────────────────────────────────────┐
│ ['2021-01-11 00:00:00','2021-01-12 00:00:00'] │
└───────────────────────────────────────────────┘

wtf?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Sarcastic Cat
Господа, есть вопрос (возможно даже два):
Основная задача: посчитать количество событий в определенном промежутке с группировкой по дням/часам/etc. и с заполнением нулями промежутков, в которые событий нет.
Я делаю вот так для периодов в день (и это первый вопрос, возможно это неправильно?):
SELECT 
   count(*) AS cnt,
   toStartOfInterval(time, toIntervalDay(1)) AS period
FROM metrics
WHERE (toDate(time) >= '2021-01-11') AND (toDate(time) <= '2021-01-12')
GROUP BY period
ORDER BY period ASC
UNION ALL
SELECT
   0 AS cnt,
   arrayJoin(timeSlots(toDateTime(toDate('2021-01-11'), 'UTC'), toUInt32(dateDiff('second', toDateTime(toDate('2021-01-11')), toDateTime(toDate('2021-01-12')))), toUInt32(86400))) AS period
GROUP BY period
ORDER BY period ASC

проблема в том, что в ответ я получаю
┌────cnt─┬──────────────period─┐
│ 391722 │ 2021-01-11 00:00:00 │
│ 468620 │ 2021-01-12 00:00:00 │
└────────┴─────────────────────┘
┌─cnt─┬──────────────period─┐
│   0 │ 2021-01-11 03:00:00 │
│   0 │ 2021-01-12 03:00:00 │
└─────┴─────────────────────┘

т.е. нулевые почему-то в московской таймзоне
в то же время, если сделать этот подзапрос отдельно то все хорошо:
SELECT timeSlots(toDateTime(toDate('2021-01-11'), 'UTC'), toUInt32(dateDiff('second', toDateTime(toDate('2021-01-11')), toDateTime(toDate('2021-01-12')))), toUInt32(86400)) AS slots

┌─slots─────────────────────────────────────────┐
│ ['2021-01-11 00:00:00','2021-01-12 00:00:00'] │
└───────────────────────────────────────────────┘

wtf?
TZ свойство типа (свой-во колонки), а не значения. В metrics TZ Moscow
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
order by with fill наверное в этом случае сам заполнит
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
SELECT t
FROM
(
   SELECT toDateTime('2016-06-15 23:00:00', 'Asia/Yekaterinburg') AS t
   UNION ALL
   SELECT toDateTime('2016-06-15 23:00:00', 'UTC') AS t
)

┌───────────────────t─┐
│ 2016-06-15 23:00:00 │
└─────────────────────┘
┌───────────────────t─┐
│ 2016-06-16 04:00:00 │
└─────────────────────┘


SELECT t
FROM
(
   SELECT toDateTime('2016-06-15 23:00:00', 'UTC') AS t
   UNION ALL
   SELECT toDateTime('2016-06-15 23:00:00', 'Asia/Yekaterinburg') AS t
)

┌───────────────────t─┐
│ 2016-06-15 23:00:00 │
└─────────────────────┘
┌───────────────────t─┐
│ 2016-06-15 18:00:00 │
└─────────────────────┘
источник

SC

Sarcastic Cat in ClickHouse не тормозит
вспомнить бы, почему я не стал использовать fill
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
SELECT
   t,
   toTypeName(t)
FROM
(
   SELECT toDateTime('2016-06-15 23:00:00', 'UTC') AS t
   UNION ALL
   SELECT toDateTime('2016-06-15 23:00:00', 'Asia/Yekaterinburg') AS t
)

┌───────────────────t─┬─toTypeName(t)───┐
│ 2016-06-15 18:00:00 │ DateTime('UTC') │
└─────────────────────┴─────────────────┘
┌───────────────────t─┬─toTypeName(t)───┐
│ 2016-06-15 23:00:00 │ DateTime('UTC') │
└─────────────────────┴─────────────────┘
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
SELECT
   t,
   toTypeName(t)
FROM
(
   SELECT toDateTime('2016-06-15 23:00:00', 'Asia/Yekaterinburg') AS t
   UNION ALL
   SELECT toDateTime('2016-06-15 23:00:00', 'UTC') AS t
)

┌───────────────────t─┬─toTypeName(t)──────────────────┐
│ 2016-06-15 23:00:00 │ DateTime('Asia/Yekaterinburg') │
└─────────────────────┴────────────────────────────────┘
┌───────────────────t─┬─toTypeName(t)──────────────────┐
│ 2016-06-16 04:00:00 │ DateTime('Asia/Yekaterinburg') │
└─────────────────────┴────────────────────────────────┘
источник

SC

Sarcastic Cat in ClickHouse не тормозит
ага. кто первый встал, того и тапки
источник

SC

Sarcastic Cat in ClickHouse не тормозит
ладно, вроде как FILL меня должен спасти. наверное я его как-то не так готовил, когда пробовал
источник
2021 January 13

SC

Sarcastic Cat in ClickHouse не тормозит
м. я вспомнил, в чем была моя проблема с FILL. если за весь период вообще ничего нет - FILL ничего и не заполнит
источник

PL

Piotr Liakhavets in ClickHouse не тормозит
Ребята, подскажите пожалуйста куда смотреть:
обновили КХ 20.4.3 > 20.12.4, стартанули
ЦПУ выжран (ниже 34% не опускается)
причем на этой машине не вижу ни процессов ни мержей ни мутаций
что я пропускаю?
может там какие-нибудь дефолтные компресии сменились и рул ттл и он в БГ мне сча пытается историю отлопатить?
источник

SC

Sarcastic Cat in ClickHouse не тормозит
Sarcastic Cat
м. я вспомнил, в чем была моя проблема с FILL. если за весь период вообще ничего нет - FILL ничего и не заполнит
и в будущее он тоже не заглянет, хех
источник