Мягкое удаление Cassandra в таблицах с известным только частичным ключом раздела - PullRequest
0 голосов
/ 09 июля 2020

У меня есть несколько таблиц с комбинацией сущностей A, B, C как часть ключей секций.

Таблица 1: столбцы A, B, C, D, E, F, G , H Первичный ключ ((A, B, C, Дата), D, E) строки-> A1, B1, C1, 07-09-2020, D1, E1 .... A1, B1, C1, 10.07.2020, D1, E1 .... A1, B2, C1, 10.07.2020, D2, E1 .... .....

Таблица 2: столбцы A, B, C, D, E, F, G, H Первичный ключ ((B, C, Created_timestamp, A), D, E) строки-> B1, C1, 07-09-2020 05: 02: 01Z, A1, D1, E1 .... B1, C1, 07-10-2020 02: 02: 01Z, A1, D1, E1 .... B2, C1, 07-10-2020 06: 02: 01Z, A1, D2, E1 .... .....

Таблица 3: столбцы A, B, C, D, E, F, G, H Первичный ключ ((B, A), C) строки -> B1, A1, C1 ... B2, A1, C2 ... ....

Таблица 4: столбцы A, B, C, D, E, F, G, H Первичный ключ ((F, C), A) строки -> F1, C1, A1 ... F1, C2, A1 ... ....

Теперь предположим, что если A1 нужно удалить в системе, то все строки, соответствующие A1 во всех таблицах, должны быть помечены как удаленные (TTL не должен использоваться). PS - Указывая на приведенные выше таблицы, все, что я хотел показать, это то, что позиция A варьируется в ключе раздела, а также в первичном ключе в целом.

1 Ответ

0 голосов
/ 10 июля 2020

При удалении записи для Table 1 известны как минимум значения столбца A,B,C. Итак, я думаю, вам нужны еще 2 таблицы поиска, чтобы достичь этого

  • Таблица поиска для Table 2

    Столбцы - A, B, C,D, E, Created_timestamp

    Первичный ключ - ((A, B, C), Created_timestamp, D, E)

  • Таблица поиска для Table 4

    Столбцы - F, C, A

    Первичный ключ - ((A, C), F)

  • После того как вы выбрали первичные ключи для table 2 и table 4, у вас есть первичные ключи для их удаления,

...