前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于压缩后字符串写入clickhouse再读取后无法反解压的问题

关于压缩后字符串写入clickhouse再读取后无法反解压的问题

作者头像
天涯泪小武
发布2022-04-13 16:30:29
1K0
发布2022-04-13 16:30:29
举报
文章被收录于专栏:SpringCloud专栏SpringCloud专栏

我们将一个长字符串进行了压缩,采用zstd或者snappy之类的,将字符串压成了byte[],然后将byte[]作为一个属性写入了clickhouse数据库,clickhouse会默认将byte[]转为String进行存储。

但是当从数据库读取到该字段,得到一个String类型的值,再用getBytes()方法获取到byte[],再试图用zstd的反解压功能对该byte[]试图还原为压缩前的字符串时,会发现报错,已经无法解压还原了。

对应该图的情形,运行会报错

那么做了如下修改,设置编码方式后,即可

代码语言:javascript
复制
String encode = "ISO8859-1";

        String s = "FilterRegistrationBean registration = new FilterRegistrationBean();";
        byte[] bytes = ZstdUtils.compress(s.getBytes(encode));


        String ss = new String(bytes, encode);


        byte[] sss = ZstdUtils.decompressBytes(ss.getBytes(encode));
        System.out.println(new String(sss));
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档