Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Streaming 当数据库API不支持流时,如何处理大型数据集的内存问题?_Streaming - Fatal编程技术网

Streaming 当数据库API不支持流时,如何处理大型数据集的内存问题?

Streaming 当数据库API不支持流时,如何处理大型数据集的内存问题?,streaming,Streaming,我正在致力于在我们的应用程序框架中通过REST公开数据,并且需要处理这样一种情况,即可以在没有限制/偏移的情况下查询数百万个对象。数据库API不支持流式传输,这在不久的将来不会改变。处理这种情况的最好办法是什么 到目前为止,我有几个选择: 实现我们自己的批处理机制。因此,从外部,客户机只是请求我们拥有的一切,但在内部,我们使用限制和偏移进行批处理。我们有唯一的标识符,所以我们可以使用它们进行排序。 缺点是数据损坏的风险很小。我们的框架支持自引用,例如,有人将检索Person类型的所有对象。Per

我正在致力于在我们的应用程序框架中通过REST公开数据,并且需要处理这样一种情况,即可以在没有限制/偏移的情况下查询数百万个对象。数据库API不支持流式传输,这在不久的将来不会改变。处理这种情况的最好办法是什么

到目前为止,我有几个选择:

实现我们自己的批处理机制。因此,从外部,客户机只是请求我们拥有的一切,但在内部,我们使用限制和偏移进行批处理。我们有唯一的标识符,所以我们可以使用它们进行排序。 缺点是数据损坏的风险很小。我们的框架支持自引用,例如,有人将检索Person类型的所有对象。Person id 500指的是Person id 1500。检索批次1-1000时,人员500指的是人员1500。这些数据被流式传送出去。然后删除id为1500的人员,并更新id为500的人员的参考。检索到批次1001-2000,但缺少人员1500。person 500的数据已经流式传输出去,即使在一个流中,数据现在也无效。 设置检索的对象的最大数量,并让客户端处理批处理,包括处理上述数据损坏的场景。 什么都不做,只是让应用程序耗尽内存。让使用该平台的开发人员决定不公开大型表,最明显的是不向匿名用户公开。
不过,我希望听到一些替代方案。

我做了更多的研究,认为没有合适的解决方案。最后,我们成功地在数据库层中获得了所需的更改,以便能够流式传输数据。其他一切都会有太重要的负面影响