@clickhouse_ru

Страница 704 из 723
Evgeny
15.10.2018
15:14:27
Сам так делаю

Mike
15.10.2018
15:19:03
т.е. медленно потому что 5 минут нельзя найти из PK ? в MV можно сагрегировать до 5 минут ( toStartOfFiveMinute ) или отсортировать по времени.
медленно ~ 20сек, что для прямого вывода в браузер уже многовато. Хочется до секунды получить

Google
Mike
15.10.2018
15:20:58
я не про это. order by .... что у вас тут?
Большой составной ключ, в который входят все поля, которые как-то участвуют в запросах, или я не понимаю вопрос

Evgeny
15.10.2018
15:21:28
Просто надо order by & select

Иначе, гадать

Denis
15.10.2018
15:23:00
Большой составной ключ, в который входят все поля, которые как-то участвуют в запросах, или я не понимаю вопрос
т.е. там datetime далеко или вообще нету? сколько времени работает prewhere datetime>= (now()-300) партиционировано как?

Иначе, гадать
да, тут сплошные партизаны.

Evgeny
15.10.2018
15:23:58
Гадалки в другом чате)

Илья
15.10.2018
15:25:04


Вечер добрый, подскажите пожалуйста, почему из за вот этого выражения в джойне падает кликхаус, он не умеет в минус? (таблица джойнит сама себя)

Mike
15.10.2018
15:25:29
Просто надо order by & select
https://pastebin.com/QECBUU8v не надо гадать :)

запрос в самом низу

Kirill
15.10.2018
15:31:29
https://pastebin.com/QECBUU8v не надо гадать :)
WTF? Где у вас DateTime чтоб за последние 5 минут выбирать? И положите его потом в ПК (первым) + я бы еще подумал над тем что вы в ПК напихали )

Сделайте EventDate, EventDateTime, партицию по дате (EventDate) и ключик (EventTime, host_id, appid) все остальное не сильно понятно зачем там ;)

Google
Denis
15.10.2018
15:36:00
Вечер добрый, подскажите пожалуйста, почему из за вот этого выражения в джойне падает кликхаус, он не умеет в минус? (таблица джойнит сама себя)
а насколько громко падает? 18.14.8 create table xxz (a UInt64) engine = Memory; insert into xxz select number from numbers(10) select a from xxz b any join xxz p on b.a=p.a+5; ┌─a─┐ │ 5 │ │ 6 │ │ 7 │ │ 8 │ │ 9 │ └───┘ select a from xxz any join (select a+5 as prev from xxz) on a=prev ┌─a─┐ │ 5 │ │ 6 │ │ 7 │ │ 8 │ │ 9 │ └───┘

Илья
15.10.2018
15:37:49
нормально так, и это странно. 139 код ошибки

но при перестановке местами, и замены плюса на минус,получается вот так только сделать похожий результат



Denis
15.10.2018
15:41:28
https://pastebin.com/QECBUU8v не надо гадать :)
date_id что такое? сколько работает where date_id = ... and event_date=today() and event_date>=toDateTime(now()-300) and ok=1

Mike
15.10.2018
15:42:48
date_id что такое? сколько работает where date_id = ... and event_date=today() and event_date>=toDateTime(now()-300) and ok=1
date_id кросс-id к другой бд (pgsql). запрос в таком виде ~ 20 сек отрабатывает

Evgeny
15.10.2018
15:46:37
date_id кросс-id к другой бд (pgsql). запрос в таком виде ~ 20 сек отрабатывает
Я бы материализовал поле из словаря(?) из другой бд (pg)

Denis
15.10.2018
15:47:54
date_id кросс-id к другой бд (pgsql). запрос в таком виде ~ 20 сек отрабатывает
это все какие-то извращения PARTITION BY date_id ORDER BY (date_id у вас одно и тоже значение в партиции у date_id, его не надо в ORDER BY и в where оно должно быть

Иван
15.10.2018
15:52:08
У меня вот так работает https://pastebin.com/JFDEXumF, clickhouse это схема
Спаибо, заработало! Деиствительно указание схемы в теге <db>schema</db> решило проблему. С табличной функцией работает так: SELECT * FROM odbc('DSN=mssql;', 'schema', table)

Michael
15.10.2018
15:52:44
Коллеги, не подскажите есть ли какое-то ограничение по инсерту? Пишу порядка 45 метрик, постоянно таймайты ловлю

Konstantin
15.10.2018
15:54:33
Подскажите, в случае вложенных N джойнов - N таблиц должны влезть в оперативку? Или есть буфер промежуточный?

Evgeny
15.10.2018
15:55:27
запрос в самом низу
Я бы материализовал toDateTime(concat(toString(event_date), ' ', tm)) и поставил это поле первым в order by. Далее для фильтрации использовал бы это поле

Denis
15.10.2018
15:58:29
Подскажите, в случае вложенных N джойнов - N таблиц должны влезть в оперативку? Или есть буфер промежуточный?
все правое представление должно влезть в оперативку, K join n1....n2, получится большая супер N -- она будет в озу, но не видя запроса вообще не понятно.

Ivan
15.10.2018
16:29:00
привет а кто-то сталкивался с тем что свежий клиент в каких-то моментах не дружит со старым сервером? есть какой-то риск в том чтобы клиента обновлять на посвежее при условии зоопарка версий на серверах?

Ivan
15.10.2018
16:38:49
гуд (я тоже не сталкивался с таким поведением пока, и в поиске сходу не нашел, но любопытно)

Alexey
15.10.2018
16:39:11
точно вам ответить может @kshvakov

Google
Alexey
15.10.2018
16:39:22
если у него будет время и желание)

Anya
15.10.2018
16:45:47
Коллеги, добрый день, не подскажете по утилите clickhouse-local. Один файл мы можем представить в виде таблицы. А если я хочу сделать join с двумя таблицами(файлами представленными в виде таблицы) например. Это возможно?

Kirill
15.10.2018
16:46:40
привет а кто-то сталкивался с тем что свежий клиент в каких-то моментах не дружит со старым сервером? есть какой-то риск в том чтобы клиента обновлять на посвежее при условии зоопарка версий на серверах?
По идее в протоколе есть версионирование и если что-то случайно не поломали, то старые клиенты могут работать с новыми серверами и наоборот.

Ivan
15.10.2018
16:51:49
благодарю

Denis
15.10.2018
17:05:39
Коллеги, добрый день, не подскажете по утилите clickhouse-local. Один файл мы можем представить в виде таблицы. А если я хочу сделать join с двумя таблицами(файлами представленными в виде таблицы) например. Это возможно?
я не пробовал, но судя по описанию можно clickhouse-local allows to execute SQL queries on your data files via single command line call. To do so, initially you need to define your data source and its format. After you can execute your SQL queries in usual manner. There are two ways to define initial table keeping your data. Either just in first query like this: CREATE TABLE <table> (<structure>) ENGINE = File(<input-format>, <file>); Either through corresponding command line parameters --table --structure --input-format and --file. т.е. можно обращаться clickhouse-local -q "CREATE TABLE t1 (a Int64, b Int64) ENGINE = File(CSV, t1); CREATE TABLE t2 (a Int64, b Int64) ENGINE = File(CSV, t2); SELECT a, b FROM t1 join t2; DROP TABLE t1;...."

Timur
16.10.2018
04:58:30
как поведет себя кластер из 4 нод (2 шарда 2 реплики), если в процессе заливки данных вывести из строя: 1) одну реплику (1 ноду) 2) один шард (2 ноды) кластер начнет какое-нибудь рекавери если ввести ноды обратно в строй? или будет просто неравномерное распределение данных?

Timur
16.10.2018
06:09:58
в чем проблема проверить в докерах?
ну судя по всему если отваливается шард - кластер идет в ридонли если реплика - все пишется на вторую а потом как нода снова доступна - размазывается по кластеру равномерно

Wolf
16.10.2018
07:51:32
Ничего не размазывается, просто реплики равноценны и будут иметь одно и тоже, по школам ничего не размажется

Denys
16.10.2018
07:51:37
как лучше хранить ip стрингой или uint32 ?

судя по функциям профита от инт не слишком много

Wolf
16.10.2018
07:52:44
Ну инт быстрее на много

Во всяких операциях сравнения и попадания в сетки

Denys
16.10.2018
07:53:36
а как выбрать из записей маску ?

Wolf
16.10.2018
07:54:08
Какую маску?

У айпи нет маски

Michael
16.10.2018
07:54:23
Единственный недостаток хранения ip в uint32 - необходимость отдельного поля для v6

Michael
16.10.2018
07:55:06
Твой вариант

Google
Wolf
16.10.2018
07:56:05
Единственный недостаток хранения ip в uint32 - необходимость отдельного поля для v6
Вы так просто сказали что как будто в строке в6 занимает прямо сильно меньше места)

Denys
16.10.2018
08:23:40
ага, а потом на выходе определять нули ли в начале

но профита от такого способа я думаю не много

Timur
16.10.2018
08:27:54
кто в каком окружении компилит https://github.com/f1yegor/clickhouse_exporter ?

LeiDruid
16.10.2018
08:28:59
Timur
16.10.2018
08:29:39
LeiDruid
16.10.2018
08:35:52
Тут решать каждому, но для нас коэффециент полезности был околонулевой. В результате сделали за 10 минут на питоне нужные метрики.

Ну и какое-то количество танцев потребовалось с запуском, емнип

Гораздо более информативный (но и ресурсоемкий) даш с метриками по query log

Kirill
16.10.2018
08:39:06
но профита от такого способа я думаю не много
1 поле вместо 2-х + стандартные функции КХ с этим работают.

Юрий
16.10.2018
08:39:37
Доброе утро, друзья! Скажите пожалуйста, не сталкивался ли кто с тем, что кликхаус падает при инсерте? (инсерт одной строки из CSV)??

Kirill
16.10.2018
08:46:17
Один фиг если скорость нужна все в интах
Там из скорочти только некоторый оверхед по размеру если IPv6 адресов сильно мало, а так все ОК

Wolf
16.10.2018
08:46:58
Ну а сравнение по вашему строк небольшой оверхед над целыми числами?

Ну или маску на айпи накатить на инт это просто битовый сдвиг в право , а на строке я даже не знаю какой алгоритм эффективный используется, мне кажется там проще в число превратить и потом сдвиг но это просто колоссальный оверхед

Wolf
16.10.2018
08:49:59
Ну выше вы писали стринг

Kirill
16.10.2018
08:50:20
Ну выше вы писали стринг
FixedString - это не строки

Google
Wolf
16.10.2018
08:50:40
А что это?

Kirill
16.10.2018
08:52:50
А что это?
Просто набор байт фиксированной длины, там можно хранить все то для чего в КХ пока нет встроенного типа, IP встроенного нет, но функции для работы есть, поэтому с FixedString все ОК

Wolf
16.10.2018
09:00:04
Ну то есть это строка

Kirill
16.10.2018
09:04:11
Ну то есть это строка
Строка сложнее

Wolf
16.10.2018
09:10:48
Строка это набор байтов)))

Denys
16.10.2018
09:11:42
IPv4NumToString принимает в аргументы uint32, а IPv6NumToString fixedSTring 16

как конвертнуть ipv4 то fixedString 16

просто пихнуть туда какойто знак ?

Kirill
16.10.2018
09:14:32
Строка это набор байтов)))
Если так, то все набор байтов.

Denys
16.10.2018
09:14:53
мы в матрице живем?

Wolf
16.10.2018
09:18:25
Если так, то все набор байтов.
Ну так и есть просто 16 байт и четыре сравнивать ни разу не одинаково

Denys
16.10.2018
09:19:54
SELECT IPv4NumToString(toUInt32(toFixedString(toString(57701172), 16)))

Как понять в FixedString 16 ipv6 или ipv4 ?

toFixedString если строка меньше заполняет символами null справа

Страница 704 из 723