UNZSTD

功能概述

解压 Zstandard(zstd)格式的二进制数据,返回解压后的 BINARY。是 ZSTD 的逆操作,也可以解压由其他系统(如 Kafka 消息体、zstd 命令行工具)生成的标准 zstd 帧。

语法

UNZSTD(<data>)

参数说明

  • <data>
    <data>
    :BINARY 类型,zstd 压缩数据。以下情况返回 NULL:

    • <data>
      <data>
      为 NULL
    • 不是合法的 zstd 帧
    • 数据被截断,不完整

    空的 BINARY 输入返回空的 BINARY。

使用示例

压缩后再解压,并转回字符串:

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

restored
hello zstd

非法输入返回 NULL:

SELECT unzstd(CAST('invalid zstd frame' AS BINARY)) IS NULL AS invalid, unzstd(substring(zstd(CAST('truncated zstd frame' AS BINARY)), 1, length(zstd(CAST('truncated zstd frame' AS BINARY))) - 1)) IS NULL AS truncated;

invalidtruncated
truetrue

注意事项

  • 解压失败时返回 NULL 而不是报错。数据完整性要求高的场景,建议检查结果是否为 NULL。
  • 返回 BINARY,文本内容需
    CAST(... AS STRING)
    CAST(... AS STRING)
    。

相关文档

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