Кассандра Data Modeling проблема - PullRequest
0 голосов
/ 05 февраля 2019

Не могли бы вы помочь мне в моделировании моей таблицы ниже. Я застрял здесь.Мой ключ раздела - agent_id, а столбец кластеризации - rowid.Каждый агент может иметь от 1000 строк до 10 МБ, в зависимости от того, насколько занят агент.Я сталкиваюсь с большой проблемой с разделами для моих занятых агентов.

Я использую здесь SizeTieredCompaction .. В таблице есть Запись / Чтение (соотношение 70/30), а в таблице также удаляются agent_id.

CREATE TABLE IF NOT EXISTS XXX (
 agent_id UUID,
 row_id BIGINT,
 col_a TEXT,
 col_b TEXT,
 col_c TEXT,
 PRIMARY KEY (agent_id,row_id)
)

1 Ответ

0 голосов
/ 07 февраля 2019

Эта проблема возникает много раз при моделировании в C *.

  1. Если какой-либо из столбцов (col_a, col_b и т. Д.) Как-то связан со временем,и вы знаете, сколько (приблизительно) строк на агента вы будете вставлять каждый день, я бы настоятельно рекомендовал year-month-day в качестве ключа раздела (если дня достаточно, если нет, переходите на час или минуту).

  2. Вы можете выполнить какое-либо хеширование для agent_id + row_id по модулю 1M (например).Этот хэш может быть ключом раздела, и вы выполняете это хэширование в приложении перед вставкой и / или извлечением.Таким образом, вы знаете, что если ваше примерное количество строк составляет 10 МБ, ваши разделы будут иметь размер 10.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...