为什么REST API(Odata)更新如此繁重

时间:2020-07-21 20:55:38

标签: api rest download odata

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

我访问REST API(Odata),该API提供约35万行的数据(仅7个属性)。我正在使用Power BI下载此数据。 因此,当我整天下载时,它的下载量为67mb!

有人可以向我解释为什么只有35万行的文件这么重吗? ps当我将其保存为CSV时仅为3.7mb。

1 个答案:

答案 0 :(得分:0)

让我们算一下吧。

67MB / 35万行=每行191个字节。

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

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

因此,保留大约22个字节来存储属性名称和值。这仅在不使用空格格式化JSON的情况下也是如此。如果您将空白用于更漂亮的输出,则很大一部分将是该空白。

22个字节对​​于这两个字节来说都不是一吨的空间。我假设您的行中至少会包含一串字符串。例如,本段为162个字节。

CSV将会更短,因为列名只会出现一次,而且字段之间通常只有逗号。这大大降低了每行的开销。

如果您需要缩小尺寸,则应该做的第一件事就是gzip您的响应。如果重复,压缩将非常有效。

或者您的API可以仅返回CSV。没有规则说一切都必须是JSON。也许在OData中有,但是可以将异常值作为例外。

CSV的

3.7 MB似乎太低了,除非大多数字段为空。如果每行有7个字段,那么将至少有6个逗号和以“ \ r \ n”结尾的行,因此所有数据仅保留3个字节。也许是37MB?