为什么 REST API (Odata) 更新这么重

Why REST API (Odata) update is so heavy

非常想听听您对使用 Odata 上传数据的看法

我访问 REST API (Odata),它提供大约 350k 行的数据(只有 7 个属性)。我正在使用 Power BI 下载此数据。 所以当我下载一整天时,它会下载 67mb!

谁能给我解释一下为什么只有 35 万行的文件这么重? p.s。当我将其保存为 CSV 时,它只有 3.7mb。

让我们算一算。

67MB / 350K 行 = 每行 191 字节。

每行可能至少有一个 {、一个 } 和一个 ,,因此每行 188 个字节。

188 / 7 = 每个属性大约 27 个字节。每个属性可能还至少有 2 个引号 ("),如果它们都是字符串,则为 4 个,以及 :,.

这样就为 属性 名称和值留下了大约 22 个字节。这也只有在您不使用 whitespace 格式化您的 JSON 时才是正确的。如果你使用 whitespace 来获得更漂亮的输出,很大一部分将是 whitespace.

22 字节对于这两者来说并不是一吨 space。我假设您的行中至少会有一堆字符串。例如这段是162字节。

CSV 会更短,因为列名只出现一次,而且字段之间通常只有一个逗号。这是每行开销的显着下降。

如果您需要它更小,您应该做的第一件事就是对您的回复进行 gzip 压缩。如果有重复,压缩将非常有效。

或者您的 API 可以 return CSV。没有规则说一切都必须 JSON。也许在 OData 中有,但可以为异常值设置例外。

3.7 MB 的 CSV 似乎太低了,除非大部分字段都是空的。如果每行有 7 个字段,那么将至少有 6 个逗号和一个“\r\n”行结尾,因此所有数据只剩下 3 个字节。也许是 37MB?