处理大json文件读取,超8G

46 阅读1分钟

go 处理超过8G的大json文件,数据是ES查询后使用 -> data.json中,数据是内网数据,写入文件为了写入测试环境的ES,用来调试程序,模拟真实的生产环境,没办法真实数据和mork数据差别太大

工具很重要

找了一下开源的json库。

image.png

fastJson可以直接处理原始json valyala/fastjson: Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection

读写分离,异步处理,批量插入es数据

这个就是go的协程,不多说了

优化

  1. es struct 大对象,sync.pool缓存,put之前 reset
  2. 写入es使用高性能工具,es dump 避免程序瓶颈(要处理json文件)