上周我问过这个问题:KSQL: append multiple child records to parent record
然而,在我对这个问题的解释中,我确实简化了事情,而且我发现我有点担心现实世界中设置的复杂性 . 为了快速重申,我正在使用的数据类型是付款和参与付款的各方:
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 |
这些表中的每一个都以其自己的主题到达,到目前为止,我采用的方法是基于 party_type
分支 payment_parties
流,并将这些中的每一个连续地连接到 payments
流 .
我对复杂性有点担心的原因是因为上面的示例数据不完整 . 实际上,每笔付款最多可以有10个与之相关的不同方 . 这意味着 payment_parties
流分支了10次,然后连续10次连接 .
为了实现 payment_parties
的拆分以及它们与 payments
流的连接,我最终总共至少有20个流(每个分支一个,每个连接一个),不计算源流主题和重新密钥流 .
现在,基于此,我有几个问题:
-
Should I be worried about the performance of a setup like this? 直观地说,对于一个相对简单的问题,这感觉就像是一个相当复杂的设置 .
-
我知道(目前)在KSQL中,不可能从所选数据中创建STRUCT . Is there any sensible way to emulate a struct? 或者我可以期待在未来的KSQL版本中看到这个功能吗?
-
Alternatively, would it be possible to create Structs using Kafka Streams? 这不会减少流的数量,但在我看来会使终极输出更加明智 .
当然,我很乐意提供任何可能缺少的信息或回答其他问题 .