【问题标题】:Which one is best CSV or JSON in order to import big data (PHP) [closed]为了导入大数据(PHP),哪个是最好的 CSV 或 JSON [关闭]
【发布时间】:2014-11-27 04:41:42
【问题描述】:

我正在尝试获取大量数据(大约 3M 行),但我只有两个选择。

  1. 调用 API,然后恢复 3M JSON 对象。
  2. 导入包含 3M 行的 CSV 文件。

我还没有对这些解决方案中的任何一个进行测试,以确定哪一个在速度方面最好。

【问题讨论】:

  • CSV,逐行读取文件要容易得多,或者使用 LOAD DATA INFILE 使其不超过 PHP 内存限制
  • 谢谢 Mark,对我来说,LOAD DARA INFILE 听起来是个不错的解决方案。

标签: php json performance csv


【解决方案1】:

如果您想将 简单数据 检索为包含某些列的列表或行,选项 #2 是一个不错的选择,您可以阅读以下一组优点和缺点:

优点

  • 需要更少的带宽,因为 JSON 需要更多的语法字符来保持格式,而 CSV 就像使用字符分隔符一样简单
  • 处理数据更快,因为只需要用分隔符分割,而 JSON 需要解释语法
  • 大数据技术如 Hadoop 具有对 CSV 格式的集成解析,同时需要特定的函数来解析 JSON(例如使用 Hive 语言)。

缺点

  • 非结构化数据,更难被人类阅读
  • 您必须小心,因为分隔符不能出现在数据字段中。

如果数据将包含 复杂数据 作为元组、数组和结构 JSON 更好,因为:

  • 保持清晰和结构化的格式
  • 不重复数据来引用它,因为一个标签可能包含多个数据。

【讨论】:

  • 谢谢 Miguel,我想我会选择 CSV,我想要一个简单的应用程序,您只能点击一个按钮,应用程序将联系 API 以获取 JSON 数据,但在另一方面,它需要更多的执行时间(因为我必须对 JSON 数据进行分页、解码……)。我想我将允许 CSV 导入,并且我将使用前面提到的 Mark 的 LOAD DATA INFILE。我猜速度比简单更重要。
  • 另一个重要的优点:CSV 列表可以按顺序解析,从而保持内存使用量相当恒定。 JSON 对象必须一次性解析并加载到内存中,这在某些大小下可能是个问题。
  • jsonlines 在某种程度上解决了内存问题jsonlines.org
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 2012-10-11
  • 2022-09-26
  • 1970-01-01
相关资源
最近更新 更多