簡體   English   中英

為什么REST API(Odata)更新這么重

[英]Why REST API (Odata) update is so heavy

真的很想聽聽您對使用 Odata 上傳數據的看法

我訪問 REST API(Odata),它提供了大約 350k 行的數據(只有 7 個屬性)。 我正在使用 Power BI 下載此數據。 因此,當我下載一整天時,它會下載 67mb!

有人可以向我解釋為什么只有 350k 行的文件這么重嗎? ps 當我將它保存在 CSV 中時,它只有 3.7mb。

讓我們算一下。

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

每行可能至少有一個{ , a }和一個, ,因此每行 188 個字節。

188 / 7 = 每個屬性大約 27 個字節。 每個屬性可能還至少有 2 個引號 ( " ),如果它們都是字符串,則可能有 4 個引號,以及一個:,

這樣就為屬性名稱和值留下了大約 22 個字節。 僅當您不使用空格格式化 JSON 時,這也是正確的。 如果您將空格用於更漂亮的 output ,則很大一部分將是該空格。

22 字節對於這兩者來說都不是很大的空間。 我假設您的行中至少會有一堆字符串。 這個段落例如是 162 字節。

CSV 會更短,因為列名只出現一次,而且字段之間通常只有一個逗號。 這是每行開銷的顯着下降。

如果你需要這個更小,你應該做的第一件事是壓縮你的響應。 如果有重復,壓縮將非常有效。

或者您的 API 可以只返回 CSV。 沒有規定說一切都必須是 JSON。 也許在 OData 中有,但對異常值進行例外處理是可以的。

CSV 的 3.7 MB 似乎太低了,除非大多數字段都是空的。 如果每行有 7 個字段,那么將至少有 6 個逗號和一個 "\r\n" 行結尾,因此您的所有數據只剩下 3 個字節。 也許是37MB?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM