KSQL / Kafka Stream: сложность настройки и данных? - PullRequest
0 голосов
/ 06 декабря 2018

На прошлой неделе я задал этот вопрос: KSQL: добавить несколько дочерних записей в родительскую запись

Однако в своем объяснении проблемы я упростил некоторые вещи и нашелчто меня несколько беспокоит сложность настройки в реальном мире.Чтобы быстро повторить, тип данных, с которыми я работаю, - это платежи и стороны, участвующие в платежах:

payments:
| id    | currency | amount | payment_date |
|------------------------------------------|
| pmt01 | USD      | 20000  | 2018-11-20   |

payment_parties:
| id    | payment_id | party_type   | party_ident | party_account |
|-----------------------------------------------------------------|
| prt01 | pmt01      | sender       | XXYYZZ23    | (null)        |
| prt02 | pmt01      | intermediary | AADDEE98    | 123456789     |
| prt03 | pmt01      | receiver     | FFGGHH56    | 987654321     |

Каждая из этих таблиц представлена ​​на свою тему, и пока что я выбрал подходсостоит в том, чтобы разветвлять поток payment_parties на основе party_type и последовательно присоединять каждый из них к потоку payments.

Причина, по которой меня немного беспокоит сложность, заключается в том, что приведенные выше примеры данныхне завершеноВ действительности к каждому платежу может относиться до 10 различных сторон.Это означает, что поток payment_parties разветвляется 10 раз, а затем также последовательно соединяется 10 раз.

Чтобы разделить payment_parties и объединить каждый из них в поток payments, я получаю в общей сложности не менее 20 потоков (один для каждой ветви и один длякаждое присоединение), не считая исходные потоки тем и повторно введенных потоков.


Теперь, основываясь на этом, у меня есть несколько вопросов:

  1. Должен ли я беспокоиться о производительности такой установки? Интуитивно, это похоже на довольно сложную настройку для относительно простой задачи.

  2. Я знаю, что(в настоящее время) в KSQL невозможно создать STRUCT из выбранных данных. Есть ли какой-нибудь разумный способ эмулировать структуру? Или я могу ожидать увидеть эту функциональность в будущем выпуске KSQL?

  3. В качестве альтернативы, будет ли этоМожно ли создать Struct с использованием потоков Kafka? Это не уменьшит количество потоков, но, на мой взгляд, конечный результат будет более осмысленным.

КонечноЯ буду рад предоставить любую недостающую информацию или ответить на другие вопросы.

...