sta*_*onk 7 python journal mongodb snappy
正如我所研究的那样,Mongodb创建的日志文件是使用snappy压缩算法压缩的.但我无法解压缩此压缩日志文件.它在尝试解压缩时出错
错误流缺少snappy标识符
我用来解压缩的python代码如下:
import collections
import bson
from bson.codec_options import CodecOptions
import snappy
from cStringIO import StringIO
try:
with open('journal/WiredTigerLog.0000000011') as f:
content = f.readlines()
fh = StringIO()
snappy.stream_decompress(StringIO("".join(content)),fh)
print fh
except Exception,e:
print str(e)
pass
Run Code Online (Sandbox Code Playgroud)
请帮助我在此之后无法前进
Snappy 压缩有两种形式:基本形式和流式形式。基本形式的限制是所有数据都必须适合内存,因此流形式的存在是为了能够压缩更大量的数据。流格式有一个标头,然后是压缩的子范围。如果标头丢失,听起来可能您使用基本形式压缩并尝试使用流形式解压缩。 https://github.com/andrix/python-snappy/issues/40
如果是这种情况,请使用decompress代替stream_decompress.
但如果数据根本没有被压缩:
with open('journal/WiredTigerLog.0000000011') as f:
for line in f:
print line
Run Code Online (Sandbox Code Playgroud)
可以工作。
WiredTiger 的最小日志记录大小为 128 字节。如果日志记录为 128 字节或更小,WiredTiger 不会压缩该记录。 https://docs.mongodb.com/manual/core/journaling/
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |