184 похожих чатов

У меня есть колонка my_id в которой гуид я буду делать

запросы where my_id = '...' а так же возможно where my_id IN ...

имеет ли смысл использовать guid тип данных вместо строк? или при таком кейсе без разницы

23 ответов

18 просмотров

да имеет, тупо меньше места в памяти быстрее сравнение... быстрее запаковка распаковка... меньше читать с диска... но вообще если есть возможность влиять на тип my_id то лучше всего использовать для него какой нибудь snowflake id генерацию и UInt64 для хранения..

Floppy-Disk Автор вопроса
Slach [altinity]
да имеет, тупо меньше места в памяти быстрее сравн...

а почему UInt64 для хранения лучше? ещё быстрее поиск и тд чем гуиды?

Floppy Disk
а почему UInt64 для хранения лучше? ещё быстрее по...

строка GUID/UUID - 36 байт UUID - 16 байт UInt64 - 8 байт

Floppy-Disk Автор вопроса

подскажите, пожалуйста я хочу хранить в кликхаусе логи лог формата: время, клиент, сообщение и когда я буду их читать, я буду читать их по конкретному клиенту, т.е. меня не будут интересовать все логи за последний час, день для всех, меня будут интересовать логи конкретного клиента за максимально возможный период, месяц, год и тд каким образом лучше будет выполнить предагрегацию и партиционирование для быстроты выполнения запросов на чтения (естественно с пагинациец) Order by (toStartOfHour(timestamp), client_id); количество клиентов измеряется в сотнях тысяч и ещё, насколько опасным / безопасным будет использования нулабл client_id при том, что он используется в предагрегациях? я получаю логи из vector и не понимаю как мне отсеять лог, в котором нет этого поля, и соответственно в батче летит невалидный запрос тк один из запросов или несколько содержат пустое поле которое должно быть guid, если вдруг такой возможности в векторе нет, можно ли будет это компенсировать за счёт нулабл?

Floppy Disk
подскажите, пожалуйста я хочу хранить в кликхаусе...

если вы собираетесь читать логи по клиенту, то какой для вас смысл несеть null в client_id? если вы планируете читать все логи, то о какой агрегации идет речь?

Floppy-Disk Автор вопроса
Sergey Platonov
если вы собираетесь читать логи по клиенту, то как...

я не хочу нести null в client_id, просто вынужден, пока не разберусь как отсеять такого рода логи вектором

Floppy Disk
подскажите, пожалуйста я хочу хранить в кликхаусе...

а зачем вам в сортировке слева час, если читать вы будете по клиентам? фактически, ваша выборка по клиентам побежит по всем часам

Floppy-Disk Автор вопроса
Sergey Platonov
если вы собираетесь читать логи по клиенту, то как...

все логи по клиенту т.е. вглубину а не вширь хочу понять, как в таком случае лучше предагрегировать данные например Order by (client_id); сделает так что в таблице логи по клиенту будут рядом, кажется что и селект по этому клиенту быстрее отработает, чем если логи по нему будут раскиданы по всей таблице но при этом предагрегация будет доп нагрузку при инсёртах делать

Floppy Disk
все логи по клиенту т.е. вглубину а не вширь хоч...

вы не ответили о том что за агрегация у вас сделайте order by (client_id, нечто по чему внутри клиента агрегируете)

Floppy-Disk Автор вопроса
Sergey Platonov
вы не ответили о том что за агрегация у вас сдела...

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

Floppy Disk
но при этом хотелось бы что бы данные по клиенту л...

сделайте order by (client_id, timestamp) и partition by toYYYYMM(timestamp)

Floppy Disk
но при этом хотелось бы что бы данные по клиенту л...

тогда поменяйте местами то, что в вашем примере ну и Null не нужен

Floppy-Disk Автор вопроса
Sergey Platonov
тогда поменяйте местами то, что в вашем примере ну...

Null понятно, вопрос в том, насколько велик шанс выстрелить себе в ногу сделав нулабл, если не получится на стороне вектора откинуть лишние логи

ivan
сделайте order by (client_id, timestamp) и partiti...

партиция по таймстемпу тут, скорее, только мешаться будет, если клиентов всего сотни тысяч

Sergey Platonov
партиция по таймстемпу тут, скорее, только мешатьс...

никогда не встречал, чтобы она прям мешалась, а вот случаев "черт, надо переливать теперь в другую таблицу, потому что понадобились запросы where timestamp >=", было замечено гораздо больше )

ivan
никогда не встречал, чтобы она прям мешалась, а во...

согласен, поэтому и написал с сомнением в общем я бы потестил и перелить не проблема )

Floppy-Disk Автор вопроса
ivan
никогда не встречал, чтобы она прям мешалась, а во...

нет, скорее всего такого не будет, тупа select offcet limit

Floppy Disk
нет, скорее всего такого не будет, тупа select off...

а почему вы такую задачу до "доставанию" строк по client_id делаете на колоночной olap базе, которая вообще-то не для такого построена?

Floppy Disk
подскажите, пожалуйста я хочу хранить в кликхаусе...

[transforms.app-clickhouse-json-filter] type = "filter" inputs = ["app-json"] condition = '!contains(string!(.query), "api/v1?systemtest") && !contains(string!(.query), "api/v1/?servicestatus")'

partition by toYYYYMM(timestamp) Order by (client_id,timestamp) ;

Floppy-Disk Автор вопроса
Floppy-Disk Автор вопроса
Denny [Altinity]
partition by toYYYYMM(timestamp) Order by (client...

а почему сначала client_id, а потом timestamp

Floppy Disk
а почему сначала client_id, а потом timestamp

Ну и в кх данные одного аккаунта будут рядом и сожмутся лучше

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
11
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
Карта сайта