SQL 数据库 blob 的 GZip 解压

问题描述 投票:0回答:1

我正在尝试将 .mbtiles 数据库加载到 C# 应用程序中,完成项目所需的相关数据存储在数据库中的 var_blob 列中。有人告诉我数据是压缩的,GZip 应该能够解压缩它,但我似乎找不到与此相关的任何内容。

我什至不知道如何去做这件事。我是否尝试将(相当大的)blob 作为字符串加载,然后使用字节数组?只是把它打出来听起来很荒谬。

提前致谢。

编辑:供参考,数据库是 SQLite 数据库。

c# gzip
1个回答
0
投票

我最近创建了一个 sqlite-compressions 扩展,它将

gzip
brotli
压缩、解压和测试功能添加到 sqlite 作为扩展(或者您可以直接从 Rust 代码中使用它)。讽刺的是,它也是为 MBTiles 处理而创建的(作为 Martin Tile Server 的一部分,它具有广泛的 mbtiles 支持)。

我建议加载扩展,并仅使用

SELECT gzip_decode(tile_data) FROM tiles WHERE ...
- 这样您将直接从 SQLite 获得解压的 protobuf。不过,您仍然需要解析它。

© www.soinside.com 2019 - 2024. All rights reserved.