在记录数据时使用json编码是否合适?

时间:2014-03-31 12:48:23

标签: logging encoding

我必须记录很多数据,稍后将对其进行分析。我目前没有分析它。稍后我们将使用Hadoop进行分析。怎么样 ?我不知道。但是日志的大小太多了。

因此,我正在寻找一种尺寸较小且稍后易于分析的格式。

我想把它保存为昏迷分隔值,但是log可能包含逗号和换行符。然后我想到使用JSON对其进行编码或将每个字段设置为BASE64编码。但后来我不知道我们以后能不能分析它。

我应该使用哪种日志格式,以后更容易分析?

3 个答案:

答案 0 :(得分:2)

只要您使用结构良好的格式字符串生成日志语句,您就可以在以后有用地解析它;可能有正则表达式。

JSON会严重破坏你的日志而不会提高你解析它的能力。它可能有意义的唯一场景是您需要在日志中转储对象。

答案 1 :(得分:1)

CSV允许您转义以下数据:

1,2,"value with, comma","value with
newline","value with "" quote"
1,2,"foo","bar","baz"

所以逗号或换行应该没问题。写入文件时使用fputcsv

CSV可能会为您提供最小的文件大小,因为分隔符开销很小。


如果空间存在问题,您可以随时轻松压缩文件。


Base64通常膨胀数据约33%

答案 2 :(得分:1)

正如www.qubole.com的工程师之一所建议的那样。我使用csv格式,因为使用hadoop查询太字节日志文件在使用JSON编码行时更加昂贵(耗时)。