ZSTD

功能概述

用 Zstandard(zstd)算法压缩二进制数据,返回压缩后的 BINARY。用 UNZSTD 解压。适合在表中存放大段文本或原始报文(日志、JSON、协议包)时节省存储,或与上游使用 zstd 压缩的系统交换数据。

和 GZIP 相比,zstd 通常压缩和解压更快、压缩率相当或更高。需要与只支持 gzip 的系统互通时用

GZIP
GZIP
。

语法

ZSTD(<data>)

参数说明

  • <data>
    <data>
    :BINARY 类型,要压缩的数据。字符串需先
    CAST(... AS BINARY)
    CAST(... AS BINARY)
    。为 NULL 时返回 NULL。

使用示例

压缩后再解压,还原原始内容:

SELECT CAST(unzstd(zstd(CAST('hello zstd' AS BINARY))) AS STRING) AS restored;

restored
hello zstd

对比重复度较高的文本压缩前后的字节数:

SELECT length(CAST(s AS BINARY)) AS raw_len, length(zstd(CAST(s AS BINARY))) AS zstd_len FROM (SELECT repeat('{"event":"click","page":"home"}', 100) AS s);

raw_lenzstd_len
310049

注意事项

  • 只接受 BINARY 输入,返回 BINARY。需要以文本形式保存时可再用
    BASE64
    BASE64
    编码。
  • 数据很短时,压缩结果可能比原始数据更长(zstd 帧头有固定开销)。

相关文档

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询