
Maksim
19.04.2018
15:39:10

Tatiana
19.04.2018
15:39:57
у меня вообще все плохо с такой датой
https://github.com/yandex/ClickHouse/issues/2246

Maksim
19.04.2018
15:43:24
я заметил проблемы только при сочетании in и and, откатился до 1.1.54343 проблема исчезла

?
19.04.2018
18:41:25
есть какой-нибудь способ выбрать из Array только элементы не входящие во второй Array?

Google

Egor
19.04.2018
18:43:03

?
19.04.2018
18:44:04
ну вот я пытаюсь
,arrayFilter(x -> x NOT IN ItemsToExclude ,FullList)
он ищет таблицу ItemsToExclude

papa
19.04.2018
18:48:32
has

?
19.04.2018
18:53:49
а как тип вычисляемого поля посмотреть?

papa
19.04.2018
18:55:51
toTypeName

?
19.04.2018
19:03:17
arrayFilter(x -> x NOT has(ItemsToExclude,x), FullList) работает, но похоже только по первому элементу ItemsToExclude

papa
19.04.2018
19:06:39
SELECT
arrayFilter(x -> NOT has(ItemsToExclude, x), FullList) AS f,
[1, 2, 3, 4] AS FullList,
[5, 3] AS ItemsToExclude
┌─f───────┬─FullList──┬─ItemsToExclude─┐
│ [1,2,4] │ [1,2,3,4] │ [5,3] │
└─────────┴───────────┴────────────────┘

?
19.04.2018
19:17:52
все, разобрался, у меня строковые элементы, пробелы не потримил.
спасибо большое.

Igor
19.04.2018
22:26:21

Артемий
19.04.2018
23:00:50

Ilya
20.04.2018
04:25:29
» timedatectl status | grep "Time zone"
Time zone: Etc/UTC (UTC, +0000)
В конфиге
<timezone>Zulu</timezone>
SELECT
toDateTime('2016-06-15 23:00:00', 'Asia/Yekaterinburg') AS time,
toDateTime(time) AS date_local,
toDateTime(time, 'Asia/Yekaterinburg') AS date_yekat,
toString(date_yekat, 'US/Samoa') AS time_samoa
time = 2016-06-15 23:00:00
date_local = 2016-06-15 23:00:00
date_yekat = 2016-06-15 23:00:00
time_samoa = 2016-06-15 07:00:00
В чем вопрос: сервер в зоне UTC, clickhouse-server тоже, но почему date_local такая же как и time, что и оригинал?

?
20.04.2018
07:53:48
а есть у нас возможность при группировке не цифры сложить, а массивы объединить?
что-то типа
SELECT ID, concatArray(myArr) as finalArr
и чтобы в finalArr содержимое myArr сгруппировалось?
или со строками что-то похожее (тогда можно массив в строку и обратно просто переконвертировать)

Dmitrii
20.04.2018
07:53:48
Подскажите плз
Есть табличка
CREATE TABLE states (
USER_ID Int32,
EVENT_DATE DateTime,
EVENT_DATE_INDEX Date,
....
) ENGINE = MergeTree(
EVENT_DATE_INDEX,
(USER_ID, EVENT_DATE),
8192
)
В поле EVENT_DATE по 10-20 раз повторяется один и тот же timestamp, а сжатие никакое
2 EVENT_DATE UInt32 240.7 MiB / 243.6 MiB 1.0
3 EVENT_DATE_INDEX Date 642.2 KiB / 121.8 MiB 194.2
Ожидал другой картины, может что-то подругому надо складывать?

Google

Ilya
20.04.2018
08:01:33

?
20.04.2018
08:02:08
оно, спасибо


Tomazov
20.04.2018
08:11:31
Добрый день,
иногда при отправке файла запросом
INSERT INTO table (...) FORMAT TabSeparated
получаю ошибку
"Unknown element '' for type Enum8"
перепроверил построчно все данные - ОК
и если делать обычные
INSERT INTO table (..) VALUES (...1000 строк...)
ошибок не получаю
куда копать?
ClickHouse 1.1.54362
библиотека smi2/phpClickHouse
<Error> HTTPHandler: Code: 49, e.displayText() = DB::Exception: Unknown element '' for type Enum8('no' = 0, 'air' = 1, 'bus' = 2, 'train' = 3, 'ship' = 4), e.what() = DB::Exception, Stack trace:
0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x15) [0x82b4655]
1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x21) [0x2cb4a01]
2. /usr/bin/clickhouse-server(DB::DataTypeEnum<signed char>::getValue(StringRef) const+0xef) [0x5ef8b7f]
3. /usr/bin/clickhouse-server(DB::DataTypeEnum<signed char>::deserializeTextEscaped(DB::IColumn&, DB::ReadBuffer&) const+0x54) [0x75f5254]
4. /usr/bin/clickhouse-server(DB::TabSeparatedRowInputStream::read(std::vector<COWPtr<DB::IColumn>::mutable_ptr<DB::IColumn>, std::allocator<COWPtr<DB::IColumn>::mutable_
ptr<DB::IColumn> > >&)+0xc7) [0x7fecf67]
5. /usr/bin/clickhouse-server(DB::BlockInputStreamFromRowInputStream::readImpl()+0xa3) [0x81a7d23]
6. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x269) [0x75bc589]
7. /usr/bin/clickhouse-server(DB::InputStreamFromASTInsertQuery::readImpl()+0x27) [0x7d3a187]
8. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x269) [0x75bc589]
9. /usr/bin/clickhouse-server(DB::copyData(DB::IBlockInputStream&, DB::IBlockOutputStream&, std::atomic<bool>*)+0x70) [0x75d23d0]
10. /usr/bin/clickhouse-server(DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, DB::Context&, std::function<void (std::__cxx11::basic_string<char, std::char_trai
ts<char>, std::allocator<char> > const&)>)+0x1a2) [0x7d397f2]
11. /usr/bin/clickhouse-server(DB::HTTPHandler::processQuery(Poco::Net::HTTPServerRequest&, HTMLForm&, Poco::Net::HTTPServerResponse&, DB::HTTPHandler::Output&)+0x2d76) [
0x2ccfbd6]
12. /usr/bin/clickhouse-server(DB::HTTPHandler::handleRequest(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&)+0x347) [0x2cd2087]
13. /usr/bin/clickhouse-server(Poco::Net::HTTPServerConnection::run()+0x331) [0x85a2f81]
14. /usr/bin/clickhouse-server(Poco::Net::TCPServerConnection::start()+0xe) [0x859b82e]
15. /usr/bin/clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x169) [0x859bc09]
16. /usr/bin/clickhouse-server(Poco::PooledThread::run()+0x76) [0x8bb2586]
17. /usr/bin/clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x37) [0x8bae797]
18. /usr/bin/clickhouse-server() [0x8d6705e]
19. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76b9) [0x7fdc081d76b9]
20. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6c) [0x7fdc07c0441c]


antuan
20.04.2018
08:15:58
я бы для начала попытался вычленить строчку,с которой ошибка возникает
и посмотрел бы, что в ней валяется

Tomazov
20.04.2018
08:24:37
в том то и дело, что нет такой строки ?
одиночные INSERT-ы проходят без ошибок

Egor
20.04.2018
08:28:10

Жека
20.04.2018
08:42:27
Подскажите пожалуйста, мне нужен rowNumber, который обнуляется при изменении значении в другом столбце

Konstantin
20.04.2018
09:03:13

Victor
20.04.2018
09:18:25
добрый день
подскажите по поводу клиента командной строки. я правильно понимаю, что он сам умеет батчить строчки при инсерте из stdin ?

Edya
20.04.2018
09:18:55
Коллеги, а подскажите, пожалуйста, почему такой запрос:
select
distinct ui_type
from
groot3.events
where name = 'page_impression';
возвращает ошибку:
SQL Error [171]: ClickHouse exception, code: 171, host: groot-clickhouse.vcp.digitalaccess.ru, port: 80; Code: 171, e.displayText() = DB::Exception: Block structure mismatch in UNION stream: different number of columns:
ui_type String String(size = 0)
name String String(size = 0), ui_type String String(size = 0), e.what() = DB::Exception
а вот такой завершается нормально и возращает результат:
select
distinct ui_type
from
groot3.events
where 1 = 1
and name = 'page_impression';
Таблица Distributed на ReplicatedReplacingMergeTree.
При этом если делать запрос к локальной таблице этой проблемы нет.
Есть какая-то магия в псевдоусорвиях (1 = 1)?

M
20.04.2018
09:20:47

Edya
20.04.2018
09:21:37
version() |
----------|
1.1.54370 |

M
20.04.2018
09:22:59
попробуйте где то поднять инстанс с 1.1.54378 и попробовать без 1=1. У меня похожая магия была. в 1.1.54378 ушла

Жека
20.04.2018
09:23:16
Konstantin Sevastianov, спасибо

Dmitrii
20.04.2018
09:35:17
Help please! :)
Подскажите плз
Есть табличка
CREATE TABLE states (
USER_ID Int32,
EVENT_DATE DateTime,
EVENT_DATE_INDEX Date,
....
) ENGINE = MergeTree(
EVENT_DATE_INDEX,
(USER_ID, EVENT_DATE),
8192
)
В поле EVENT_DATE по 10-20 раз повторяется один и тот же timestamp, а сжатие никакое
2 EVENT_DATE UInt32 240.7 MiB / 243.6 MiB 1.0
3 EVENT_DATE_INDEX Date 642.2 KiB / 121.8 MiB 194.2
Ожидал другой картины, может что-то подругому надо складывать?

M
20.04.2018
09:43:11
а USER_ID сжался хорошо?

Dmitrii
20.04.2018
09:43:46
USER_ID Int32 1.1 MiB / 243.6 MiB 222.1
я бы сказал прекрасно сжался

Google

M
20.04.2018
09:44:17
EVENT_DATE стоит на втором месте в индексе.. сжатие даты будет отдельно по каждому USER_ID
выходит что у вас высокая cardinality по USER_ID
так?

Dmitrii
20.04.2018
09:46:27
хорошая гипотеза, но вот табличка рядом где EVENT_DATE не в индексе
1 USER_ID Int32 745.8 MiB / 148.1 GiB 203.3
2 EVENT_DATE Int64 141.2 GiB / 296.1 GiB 2.1
CREATE TABLE data (
USER_ID Int32,
EVENT_DATE Int64,
EVENT_DATE_INDEX Date,
...
) ENGINE = MergeTree(
EVENT_DATE_INDEX,
(EVENT_DATE_INDEX, USER_ID),
8192
)
и тоже сжатие не ахти
и я думаю что 2х изза того что Int64

M
20.04.2018
09:48:31
тут EVENT_DATE это timestamp ? с часами / секундами?
или только timestamp по 00:00:00

Dmitrii
20.04.2018
09:49:02

M
20.04.2018
09:50:07
да, unixtime
а на сколько точный? если там секундый записаны то это и ответ. оч большее кол-во уникальных значений
если схлопываете timestamp до дня - то он по размеру должен быть такой же как EVENT_DATE_INDEX
чуть больше ... так как DATE кажись в клике это UInt32
плюс EVENT_DATE не в индексе, то есть не отсортирован... и тут сжатие будет как на диске лежит... относительно ключа

Гаврилов
20.04.2018
09:53:14
а как добавить индекс?

M
20.04.2018
09:54:03
ну я имею в виду первичный ключ (EVENT_DATE_INDEX, USER_ID). Индексов в клике нет

Dmitrii
20.04.2018
09:54:13
63861297
1140251

M
20.04.2018
09:54:52
а min(DATE_INDEX), max(DATE_INDEX) ?

Google

Dmitrii
20.04.2018
09:55:23
т.е. в 56 раз меньше уникальных строк
min=1514754038 max=1522529976

M
20.04.2018
09:57:43
если вам точность до секунд не нужна, то округляйте timestamp к часу.. будет больше сжатие и меньше кол-во значений. здесь 1522529976 уже содержит секунды и минуты

Dmitrii
20.04.2018
09:58:46
да это понятно, что можно наколхозить... округление или хранить только time
но это все усложняет работу с данными
вопрос был в том, почему не произошло сжатие там где оно ожидается

Egor
20.04.2018
10:01:35
Коллеги, вопрос по CollapsingMergeTree: по доке сказано что некоторые статистики нельзя посчитать, как например max/min. Правильно ли я понимаю что единственный воркараунд что бы посчитать max/min это обернуть FINAL запрос по CollapsingMergeTree в подзапрос, и из него уже снаружи вытащить min/max ?

Dmitrii
20.04.2018
10:24:31
теперь понятно как хранится и как жмется
спасибо

M
20.04.2018
10:25:59
если вопрос по сжатию стоит то ок... но я бы смотрел в сторону выборок. Как часто USER_ID стоит в запросах. Может быть падение производительности

Dmitrii
20.04.2018
10:26:26
да, понимаю

Alexey
20.04.2018
10:27:07
да, понимаю
это Клик, его сложно понимать, не читая исходники :)

M
20.04.2018
10:28:02
да, понимаю
посмотрите еще по compression_method. c zstd сжатие намного лучше

Dmitrii
20.04.2018
10:28:51

Alexey
20.04.2018
10:30:51

Dmitrii
20.04.2018
10:31:42

Alexey
20.04.2018
10:33:24
Можно ещё сделать кластер и на одном сервере использовать один вид сжатия, на втором второй.

Dmitry
20.04.2018
11:04:29
Подскажите как можно использовать конвертацию datetime в соответствии с таймзоной клиента при использовании http интерфейса? В родном клиенте можно использовать use-client-timezone
А вот как быть с http ?

Google

Pavel
20.04.2018
11:09:21
Всем привет!
А есть ли планы добавить бинарные сборки для ARM64/aarch64, пожалуйста?

Wolf
20.04.2018
11:10:00
маловероятно там же кх заточен на ссе и еще какие то инструкции

Pavel
20.04.2018
11:10:36
я собирал его без SSE 4.2 на очень старом core quad, работало ОК ?

Wolf
20.04.2018
11:11:26
ну попробуй те собрать на арме )))

Pavel
20.04.2018
11:12:14
резонный вариант, попробую

Гаврилов
20.04.2018
11:13:18
кх на телефоне
не плохо бы было)

Pavel
20.04.2018
11:13:46
я могу показать htop выдачу с этого телефона
https://twitter.com/odintsov_pavel/status/986741254695411712
как-то так

Гаврилов
20.04.2018
11:14:17
htop немного другое)

Pavel
20.04.2018
11:14:35
не, имхо, как раз htop - самое то

Гаврилов
20.04.2018
11:14:43
тут 96 ядер

Pavel
20.04.2018
11:14:46
да

Гаврилов
20.04.2018
11:14:46
это явно не телефон)

Pavel
20.04.2018
11:15:01
и при этом это ARM 64 ?

antuan
20.04.2018
11:15:04
своп часто используется?

Гаврилов
20.04.2018
11:15:27
а что это за железка такая?