Обработка обновлений денорманлизированных картографических данных в Кассандре - PullRequest
0 голосов
/ 03 мая 2019

У меня есть таблица сотрудников в cassandra, используемая сотрудником Microservice, которая выглядит следующим образом

   CREATE TABLE Employee(
    EmpID  string
    ServiceLineID string
    DepartmentID string
    FirstName string
    LastName string
    Address string
    Primary Key(EmpID, ServiceLineID, DepartmentID)
    )

Теперь отображение ID, ServiceLineID и DepartmentID требуется для всех моих микросервисов, следовательно, все таблицы микросервисов имеют это отображение

Например, для моего сотрудника транспорта Miroservice имеет таблицу EmployeeTransport и BusTable, который выглядит следующим образом

    CREATE TABLE EmployeeTransport(
     EmpID string
     ServiceLineID string
     DepartmentID string
     FirstName string
     LastName string
     BusID string
     BusName string
     MonthlyFare string
     Primary Key(EmpID)
    )

   CREATE TABLE Bus(
    BusID string
    EmpID string
    ServiceLineID string
    DepartmentID string
    FirstName string
    LastName string
    Destination string
    MonthlyFare string
    Primary Key(BusID)
   )

У меня есть много таблиц, которые поддерживают это сопоставление EmplyeeID-ServiceLineID-DepartmentID, какобрабатывать ли изменения этого сопоставления?

Мне придется информировать каждую микросервисную службу об изменении сопоставления, но таблицы, в которых индексируется информация сопоставления, не могут быть обновлены в Cassandra, и более сложной задачей являются таблицы, в которых я не делаюиндексировать информацию о сопоставлении, например, таблицу шин, и в этом случае мне придется выполнить полное сканирование таблицы (проверить все ключи разделов), чтобы проверить наличие необходимых записей и обновить их, если они существуют.Есть ли лучший способ справиться с такими сценариями.

...