2014-10-02 31 views
3

我試圖獲得大量的數據(大約3M行),我只有兩個選擇來做到這一點。哪一個是最好的CSV或JSON爲了導入大數據(PHP)

選項#1.調用API然後恢復3M JSON對象。選件號碼。

選項#2.導入包含3M行的CSV文件。

我沒有測試任何這些解決方案,但尚未確定哪一個在速度方面最好。

+1

CSV,按行逐行讀取文件或使用LOAD DATA INFILE以使其不超過PHP內存限制更容易 – 2014-10-02 08:10:02

+0

感謝Mark,LOAD DARA INFILE聽起來像是一個很好的解決方案。 – teeyo 2014-10-02 08:20:30

回答

6

如果要檢索簡單的數據作爲列表或行與一些列的選項#2是好的,你可以閱讀的優點和缺點如下:

優點

需要
  • 佔用更少的帶寬因爲JSON需要更多的語法字符保持格式,而CSV很簡單,只要用一個字符分隔符
  • 過程數據更快因爲只需要由分隔符,同時JSON需要解譯語法
  • 大數據技術爲Hadoop的具有集成的解析CSV格式而需要用於解析JSON的特定功能(例如分裂使用Hive語言)。

缺點

  • 非結構化數據,更難以被人類
  • 你必須採取與分隔符護理不能出現在數據中讀出。

如果數據將包含複雜的數據作爲tupla,數組和結構JSON是更好,因爲:

  • 保持清晰結構化格式
  • 不重複數據以引用它,因爲一個標籤可能包含多個數據。
+0

感謝Miguel,我想我會選擇CSV,我想要一個簡單的應用程序,只需點擊按鈕,應用程序就會聯繫API獲取JSON數據,但另一方面,它需要更多的執行時間(因爲我必須對JSON數據進行分頁,將其解碼,...)。我想我會允許一個CSV導入,並且我會像之前提到的那樣使用LOAD DATA INFILE。我猜,速度比簡單更重要。 – teeyo 2014-10-02 14:29:43

+0

另一個重要的專業:可以按順序解析CSV列表,保持內存使用情況不變。一個JSON對象必須一次被解析並加載到內存中,這在某些大小時可能會遇到問題。 – 2017-07-30 11:30:28

相關問題