【发布时间】:2020-07-14 13:09:55
【问题描述】:
我正在尝试实现一个网关设计来访问/抽象到我的数据库的 api,这只是同一台服务器上的单个 HDB 和 RDB。通读文档https://code.kx.com/q/wp/gateway-design/,最基本的网关至少充当中间人。如果没有聚合,这会使所需的数据传输加倍,而聚合似乎是通用的(例如实现“选择”),无论如何它都需要将所有数据拉到网关(例如,执行来自两者的所需数据的平均值)。我在网关的设计中是否缺少一些东西,以免通过它复制数据,一个简单而优雅的小型设置解决方案将是理想的。我想这通常是地图缩减问题,但在 KDB+ HDB/RDB 设置中。
【问题讨论】:
-
您的网关提供什么用途?有点感觉您可以直接从您的客户端进程连接到 RDB/HDB(如果需要,可以包含一些用户友好的功能)?
-
为数据/包装权限等提供单个api,最终可能会移动到多个服务器/进程。从编程的角度来看,我想要一个单一的入口点——尽管现在考虑按照你说的那样做,但这意味着为每种用户语言实现聚合。我很惊讶没有用于非复制数据转发和映射减少的本机功能/简单设计模式。对于 HDB 的第二点,我按天分区,RDB 是当前日期,所以奇怪的是没有功能可以说 RDB 只是 HDB 的另一个分片?
-
您通过网关发送多少数据?你遇到问题了吗?我想你会希望聚合远离客户端(假设强大的服务器和例如桌面客户端),而不是发送大量数据以在客户端处理。
-
数据非常大,一些客户端需要通过“原样”以块的形式发送以进行顺序播放,因此为什么双重复制并不理想。例如,其他客户需要聚合数据进行可视化。其次,网关上的聚合很好,这更多的是RDB / HDB集成以及如何编写通用无缝聚合的问题
标签: mapreduce time-series kdb