sample пусть будет равномерно распределенный uint
Если бы не было sample, то я бы задал PK как (timestamp),
Но для семплирования придется делать что-то вроде PK (toStartOfDay(timestamp), sample).
В фильтре всегда есть диапазон по timestamp, по десяткам минут, по дням, нет такого, чтобы выбирался конкретный день или час, может быть любой интервал.
И вот я не понимаю как выбрать на сколько нужно округлять timestamp. Или это еще как-то делается?
тут читали мой пример? https://kb.altinity.com/altinity-kb-queries-and-syntax/sampling-example/ >sample пусть будет равномерно распределенный uint эм, он все пространство занимает от 0 до maxUInt64 ? -- это эпически важно >PK (toStartOfDay(timestamp), sample) partition by какой? >В фильтре всегда есть диапазон по timestamp, по десяткам минут, по дням, нет такого, >чтобы выбирался конкретный день или час, может быть любой интервал. это ОК, это согласуется с предыдущим >И вот я не понимаю как выбрать на сколько нужно округлять timestamp. Или это еще как-то делается? скажем внутри партиции кардинальность должна быть меньше 100 -- это мое правило большого пальца. т.е. если у вас toYYYYMM партиции то PK (toStartOfDay(timestamp)
Наверное читал, пробежал сейчас быстро, это не отвечает на мой вопрос, тут нет фитьтра по дате. > эм, он все пространство занимает от 0 до maxUInt64 ? -- это эпически важно Это не важно сейчас. Возьму я хэш или еще как добьюсь равномерности, это примерно понятно как сделать. > partition by какой? никакого пока. Но наверное будет по хэшу от client id, я его убрал из вопроса за не надобности. client_id это первый компонент PK, всегда есть в запросах Допустим TTL 1 месяц тогда следуя логике нужно брать toStartOfDay Но если я выбираю timestamp в интервале 30 минут и семплирую? Или если я быбираю timestamp за весь месяц и семплирую? Итого, я не видел статей/заметок, где бы было условие на диапазон timestamp и семплирование.
>Но если я выбираю timestamp в интервале 30 минут и семплирую? >Или если я быбираю timestamp за весь месяц и семплирую? я ожидаю что все будет работать нормально
Спасибо, а toStartOfDay(timestamp) нужно материализировать или КХ сам догадается, что если я накладываю диапазон на timestamp, то нужно взять от границ toStartOfDay ?
сам. ЕСЛИ функция монотонная, ну т.е. если например таймзону в toStartOfDay добавить, то toStartOfDay станет немонотонной.
Обсуждают сегодня