Mapreduce KDB+网关是否必须保存所有数据?

Mapreduce KDB+网关是否必须保存所有数据?,mapreduce,time-series,kdb,Mapreduce,Time Series,Kdb,我正在尝试实现一个网关设计来访问/抽象数据库的api,它只是同一台服务器上的一个HDB和RDB。通过文档阅读,最基本的网关充当至少一个中间人。在没有聚合的情况下,这将使所需的数据传输翻一番。在聚合的情况下,它似乎是通用的。例如,它需要将所有数据拉到网关上,例如,执行一个平均值,该平均值需要来自这两个网关的数据。如果我在网关的设计中遗漏了一些东西,以便不通过它复制数据,那么一个简单而优雅的小设置解决方案将是理想的。我想这通常是map reduce的问题,但在KDB+HDB/RDB设置中。网关通常不

我正在尝试实现一个网关设计来访问/抽象数据库的api,它只是同一台服务器上的一个HDB和RDB。通过文档阅读,最基本的网关充当至少一个中间人。在没有聚合的情况下,这将使所需的数据传输翻一番。在聚合的情况下,它似乎是通用的。例如,它需要将所有数据拉到网关上,例如,执行一个平均值,该平均值需要来自这两个网关的数据。如果我在网关的设计中遗漏了一些东西,以便不通过它复制数据,那么一个简单而优雅的小设置解决方案将是理想的。我想这通常是map reduce的问题,但在KDB+HDB/RDB设置中。

网关通常不保存数据。相反,它使用进程间通信IPC向RDB和HDB发送请求。查询在RDB和HDB端进行计算,然后将结果发送到网关,然后再发送到客户端,但网关通常不存储数据。

感谢您的回复,但我觉得这是对标题的回答,而不是问题的回答。我所说的保留是指在某一点上存在一个副本,我理解RDB和HDB的作用。为了澄清我的问题与将数据保存在网关上无关,无论是内存还是磁盘上,我询问是否有方法停止IPC两次发送数据,先发送到网关,然后发送到客户端。对于一般聚合实现,选择必须将所有数据发送到网关,以便网关正确聚合-例如,平均值的平均值不是整体的平均值,你需要更多的数据,而实现每一个聚合都需要知道到底需要什么样的数据——即地图减少问题对不起,我误解了你的问题。我不知道有什么方法可以绕过网关,避免IPC两次发送数据。我所知道的最好的解决方案是在RDB和HDB上执行子聚合,然后在网关级别合并它们,而不是将所有数据发送到网关。例如,要计算平均值,您可以从HDB和RDB中获得总和和计数,然后在网关处将它们合并。网关提供了什么用途?有点像是你可以直接从你的客户端进程连接到RDB/HDB,如果需要的话,你可以使用一些用户友好的功能来包装——为数据/包装权限等提供一个单一的api,最终可能会转移到多服务器/进程。从编程的角度来看,我想要一个单一的切入点——尽管目前正在考虑按照您所说的那样做,但是这意味着为每种用户语言实现聚合。我感到惊讶的是,对于非复制数据转发和map reduce,没有本机功能/简单的设计模式。对于HDB的第二点,我按天进行分区,RDB是当前的一天,因此奇怪的是,没有功能可以说RDB只是HDB的另一个碎片?您通过网关发送了多少数据?你遇到问题了吗?我可以想象,假设服务器功能强大,例如桌面客户端,您希望从客户端完成聚合,而不是发送大量数据进行客户端处理。数据非常大,一些客户端需要按块发送,以便顺序播放,因此双拷贝并不理想。例如,其他客户需要聚合数据进行可视化。第二,网关上的聚合很好,这更像是RDB/HDB集成的问题,以及如何编写通用的无缝聚合