Jak odzyskać tylko te informacje, które zmieniły się od Cassandry?
Pracuję nad zaprojektowaniem schematu rodziny kolumn Cassandra dla mojego poniższego przypadku użycia. Nie jestem pewien, jaki jest najlepszy sposób zaprojektowania rodziny kolumn cassandra dla mojego poniższego przypadku użycia? Do tego będę używał sterownika Java CQL Datastax.
Poniżej znajduje się mój przypadek użycia i przykładowy schemat, który zaprojektowałem na teraz -
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
Teraz z powyższej tabeli będę wyglądał mniej więcej tak -
Po raz pierwszy za każdym razem, gdy moja aplikacja jest uruchomiona, poproszę o wszystko z powyższej tabeli. Znaczenie daje mi wszystko z powyższej tabeli ..Następnie co 5 lub 10 minut, mój wątek w tle będzie sprawdzał tę tabelę i poprosi mnie o podanie wszystkiego, co się zmieniło (pełny wiersz, jeśli cokolwiek się zmieniło w tym wierszu) .. Dlatego właśnie używam datownika jako jednego kolumny tutaj ..Ale nie jestem pewien, jak zaprojektować wzorzec zapytania w taki sposób, aby oba moje przypadki użycia były łatwo zaspokojone i jaki będzie właściwy sposób projektowania tej tabeli? Tutaj SCHEMA_ID będzie kluczem podstawowym, którego zamierzam użyć ...
Do tego będę używał sterownika Java CQL i Datastax.
Aktualizacja:-
Jeśli używam czegoś takiego, to czy jest jakiś problem z tym podejściem?
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);
Ponieważ w moim przypadku nie chcę, żeby ktokolwiek wstawiał to samoSCHEMA_ID
każdego razu..SCHEMA_ID
powinien być unikalny za każdym razem, gdy wstawiamy nowy wiersz do tej tabeli. Tak więc z twoim przykładem (@omnibear) może być możliwe, że ktoś może wstawić ten sam SCHEMA_ID dwa razy? Mam rację?
A także w odniesieniu dotype
wziąłeś jako dodatkową kolumnę, kolumna tego typu może byćrecord_name
w moim przykładzie ..