Я новичок в Cassandra, я только что узнал об этом с помощью курсов Datastax, но я не нахожу достаточно информации о ковше здесь или в Интернете, и в своем приложении мне нужно использовать ведра для разделения мои данные.Разделение ковша Cassandra для определения размеров разделов
У меня есть инструменты, которые будут принимать меры, довольно много, и ежедневное разделение мер (временная метка как ключ раздела) может быть немного рискованным, так как мы можем легко достичь предела в 100 МБ для раздела. Каждая мера относится к конкретному объекту, идентифицированному с идентификатором. Поэтому я хотел бы использовать ведро, но я не знаю, как это сделать.
Я использую Cassandra 3.7
Вот как моя таблица будет выглядеть, грубо:
CREATE TABLE measures (
instrument_id bigint,
day timestamp,
bucket int,
measure_timestamp timestamp,
measure_id uuid,
measure_info float,
object_id bigint,
PRIMARY KEY ((instrument_id, day, bucket), measure_timestamp, measure_id)
);
Я думал о добавлении object_id в качестве ключа секционирования, но затем я потерять «поток мер, «сделанных инструментом», поскольку меня интересует все меры, предпринимаемые инструментом в определенный день или период времени.
- Итак, вопрос в том, когда я хочу запросить все записи дня для конкретного инструмента, как я могу это сделать, если есть много ведер?
- Если я хочу, чтобы предел раздела составлял 400 000 строк, как я могу узнать, когда вставлять данные, в которые ведро я должен вставлять данные?
- Есть ли способ узнать количество ведер?
Большое спасибо за помощь!
Благодарим вас за ответ. Дело в том, что я не знаю, сколько мер может сделать инструмент. Я имею в виду, что при обнаружении объектов количество объектов не имеет предела. Но нормально я могу сделать, как вы говорите :) Итак, нет «встроенного» способа «подсчитать» количество записанных ведер? И как это работает при вставке данных? – Miwauke
@Miwauke Разве вы не знаете * скорость ваших инструментов? Если один инструмент имеет * пропускную способность * одной меры в секунду, то за один день будет максимум ** M = 86400 ** в день за каждый инструмент. Если * пропускная способность * составляет 1 кб в секунду, то у вас есть ** M = 86M ** меры в день на инструмент. Вам не нужно * точное * число, (шаровая) догадка должна быть прекрасной.** Вы ** решаете, в каком ведре вы пишете свои данные: каждый инструмент должен учитывать свои собственные меры и должен писать соответственно правильному ведру с правильным подсчетом количества на ковш *. – xmas79
Я еще не знаю скорость инструментов, но могу исследовать. Спасибо за ваш ответ, поэтому я должен отслеживать «все», чтобы писать в правильном ведре, это то, что я хотел знать. Каков наилучший способ подсчета количества записей в одном ведре? Должен ли я использовать столбец-столбец где-нибудь? – Miwauke