使用Snappy压缩的Avro文件在JS读取时出现解压缩错误求助
如何用JavaScript(avsc + snappy v7)读取Kafka Connect生成的Snappy压缩Avro文件?
我通过Kafka Connect在S3生成了Snappy压缩的Avro文件,尝试用JavaScript读取时遇到了如下问题:
- 先后试用
avro-js、avsc两个库,多数参考示例基于snappy v6版本,但我当前使用的是最新的snappy v7 - 基于
avsc编写的测试代码能正常处理元数据,但读取数据时始终抛出错误:Uncaught Error: snappy codec decompression error
我已准备好可复现的测试场景,希望有实际使用过新版Avro与Snappy实现读取的开发者帮忙解决这个问题。
环境信息
- Node.js版本:[补充你的Node.js版本,如v18.17.0]
- 依赖库版本:
avsc: ^5.7.7snappy: ^7.2.2
测试代码示例
const fs = require('fs'); const avro = require('avsc'); const snappy = require('snappy'); async function readAvroFile(filePath) { const fileBuffer = fs.readFileSync(filePath); // 解析Avro文件头(元数据) const reader = avro.createFileDecoder(fileBuffer, { codec: (buf) => snappy.uncompress(buf) }); try { for await (const record of reader) { console.log('读取到记录:', record); } } catch (err) { console.error('读取出错:', err); } } readAvroFile('./test-snappy.avro');
错误详情
Uncaught Error: snappy codec decompression error at ... [完整调用栈]
内容的提问来源于stack exchange,提问作者Miguel Costa
相关产品推荐
相关产品推荐

