videos/audio 之外的数据流的其他用途

Other purposes of data streaming besides videos/audio

我正在尝试了解流式传输的目的(主要是从服务器到可视化客户端,如浏览器或应用程序)。发送数据块而不是等待所有数据到达的基本概念对我来说很清楚。我可以很容易地想到诸如加载音频或视频甚至照片之类的用例。但是还有其他用例吗?用于发送文本数据或 json?

我已经使用流式传输从 mysql table 发送所有记录。假设有数百万条记录,并且您想将所有记录提取到一个 csv 文件中。在此用例中,您不能在没有任何 filter/limit/offset 的情况下执行原始 findAll,因为它会尝试将所有记录放入内存中,并且当 table 变大时将无法容纳。

所以我没有使用一个 findAll,而是使用了多个 findAll,每个都返回大约 50k 条记录,为此我使用了 limit 和 offset。每次查询后,我将那块 50k 记录发送到流中,然后再次查询另外 50k 记录。以递归方式执行此操作,直到没有更多记录(通过限制和偏移量控制)。 我有一个休息端点,所以当用户点击端点时,它会下载包含所有 table 记录的 .csv 文件。

我用 postgres 找到了一篇关于它的文章:https://medium.com/geoblinktech/how-to-export-a-postgresql-table-as-csv-with-node-js-streams-578d53434e80(这使用了 COPY 运算符)