Я импортирую БД, которая содержит некоторую таблицу ссылок, представляющую отношения «многие ко многим» и «один ко многим».
Давайте пока сосредоточимся на отношениях один-ко-многим. Например. Биологическое исследование может иметь много документов, но документ может иметь только один биоанализ.
Следовательно, у меня есть таблица BioAssay [BioAssay, ..., ..., ...] и таблица ссылок [Document, BioAssay].
В конечном итоге мне нужно объединить эти 2 в полный биоанализ со всем его документом, например. [BioAssayxyz, ...., "Документ1: Документ2: Документ3"]
Интересно, кто-нибудь здесь может дать мне представление о том, что должно произойти с потоком Кафки?
1 - До сих пор, исходя из моего понимания потока Кафки, кажется, что мне нужен поток для каждой таблицы ссылок, чтобы выполнить агрегацию. KTable не будет использоваться, потому что записи обновляются для каждого ключа. Однако результат агрегации может быть в Ktable.
2 - Затем возникает проблема объединения внешних ключей. Кажется, единственный способ сделать это через GlobalKtable. link-table-topic-> link-table-stream-> link-tableGlobaKTable. Это может привести к большому использованию дискового пространства, так как моя таблица очень большая. Это очень большая БД с большим количеством таблиц, и это требование построения нескольких логических представлений данных является частью ядра проекта и его нельзя избежать.
а) Понимаю ли я это прямо здесь?
б) Это единственный способ справиться с этим?
EDIT1
Похоже, единственное, что существует, это KStream-to-GlobalKTable, похоже, мне нужно немного перевернуть все с ног на голову. Моя исходная таблица БД BioAssay должна быть превращена в поток, в то время как моя таблица документов ссылок должна быть сначала превращена в поток для агрегирования, а затем в таблицу GlobalKTable для объединения.
В любом случае, если у моих потоков только один раздел, это может быть очень дорого.