Я работаю над созданием схемы семьи колонн Cassandra для моего нижнего варианта использования. Я не уверен, что лучший способ создать семейство столбцов cassandra для моего нижнего варианта использования? Я буду использовать драйвер CQL Datastax Java для этого ..Как получить только информацию, полученную из Кассандры?
Ниже мой случай использования и схема выборки, которые я разработал сейчас -
SCHEMA_ID RECORD_NAME SCHEMA_VALUE TIMESTAMP
1 ABC some value t1
2 ABC some_other_value t2
3 DEF some value again t3
4 DEF some other value t4
5 GHI some new value t5
6 IOP some values again t6
Теперь то, что я буду смотреть из приведенных выше таблиц что-то вроде этого -
- впервые, когда мое приложение работает, я буду просить за все из приведенных выше таблиц .. Значению дать мне все, что из приведенных выше таблиц ..
- Затем через каждые 5 или 10 минут , мой backgrou nd будет проверять эту таблицу и попросит дать мне все, что только изменилось (полная строка, если что-то изменилось для этой строки). Поэтому я использую временную метку в качестве одного из столбцов здесь.
Но я не уверен, как спроектировать шаблон запроса таким образом, чтобы оба моих варианта использования были удовлетворены легко и что будет правильным способом создания таблицы для этого? Здесь SCHEMA_ID будет первичный ключ, я имею в виду использовать ...
Я буду использовать CQL и драйвер Datastax Java для этого ..
Обновление: -
Если я использую что-то вроде это, тогда есть ли какие-либо проблемы с этим подходом?
CREATE TABLE TEST (SCHEMA_ID TEXT, RECORD_NAME TEXT, SCHEMA_VALUE TEXT, LAST_MODIFIED_DATE TIMESTAMP, PRIMARY KEY (ID));
INSERT INTO TEST (SCHEMA_ID, RECORD_NAME, SCHEMA_VALUE, LAST_MODIFIED_DATE) VALUES ('1', 't26', 'SOME_VALUE', 1382655211694);
Потому что, в моем этом прецеденте, я не хочу, чтобы кто-нибудь вставить такой же SCHEMA_ID
каждый раз .. SCHEMA_ID
должен быть уникальным, когда мы вставляем любую новую строку в эту таблицу .. Так что с вашим примером (@ omnibear), возможно, кто-то может вставить один и тот же SCHEMA_ID дважды? Я прав?
А также о type
вы взяли в качестве дополнительного столбца, этот столбец типа может быть record_name
в моем примере ..
Off верхней части моей головы: нет необходимости выполнять все варианты использования с 1 таблицей. Одним из принципов хранения NoSQL является использование избыточности, когда это имеет смысл. Вы работаете в распределенной среде, поэтому хранилище не так дорого. Если вы можете решить проблему, создав две вместо одной таблицы, просто сделайте это :-) – omnibear
Спасибо за предложение. Но я думаю, что я могу получить свой второй вопрос с моей текущей табличной архитектурой? Правильно? Если да, то как я могу это сделать? Есть предположения? – AKIWEB