pyrobuf

protobuf

Protocol Buffers 是一种轻便高效的结构化数据存储格式。我也是重度使用者。最近需要大量的实时处理Tb级别的数据,因此找到了protobuf的代替库 —- pyrobuf

pyrobuf

pyrobuf是一个使用cython的pb库。一开始从他的github中,我确实看到了挺好的优化效果。

但是pyrobuf这个库的限制还是蛮大的,主要是对于proto文件。比如

1
2
3
1. 不能在message里面定义数据结构,不然转化的过程中,会找不到定义;
2. proto定义的过程中,message的定义不能加上分号为结尾;
3. enum定义的类型,生成之后暂时还找不到映射会名称的方式;

use

1
2
pip install pyrobuf
pyrobuf --out-dir out --build-dir build --install

这里面,out目录存放着生成的cython的代码,build目录存放这边一好的so文件,而install的参数添加之后,则pyrobuf会将编译好的so文件复制到python的library目录,这就可以直接使用。

结果

上线观察了下数据,原本20分钟转化的数据,只用了4分钟就转化完毕。不过数据内容还没有核对,晚点再查看吧~