【发布时间】:2021-11-30 13:25:35
【问题描述】:
我在 Snowflake 二进制列中有 base64 编码、gzip 压缩的 json,我正在尝试解压。
使用查询:
select
base64_encode(my_binary_data) as my_base64_string
from my_table
我得到了一个 base64 编码的字符串,我可以将它剪切成一个 bash 脚本并通过管道传递:
echo $my_base64_string | base64 -d | gunzip
并获得有效的结果。我的问题是,我可以通过查询来完成吗?我尝试了decompress_string() 的一些变化,但我无法弄清楚。有什么建议吗?
【问题讨论】:
-
BASE64_DECODE_STRING不做你想做的事吗? -
谢谢@endo64。这会对在 bash 中工作的字符串产生
Invalid UTF8 detected while decoding错误。显然,我在这里使用 bash 作为健全性检查,但我可能忽略了一些事情。 -
对于它的价值,我还能够使用 Python 中的类似过程解压缩 json。所以就
snowflake-sql而言,我不知道我是不知道自己在做什么还是不可能。 -
Snowflake uncompress 函数具有与 compress 函数相同的可用压缩/解压缩方法。在 compress 的文档中,它没有列出 gunzip:docs.snowflake.com/en/developer-guide/udf/javascript/…。您必须在 JAR 文件中使用外部的东西或带有 gunzip 库的 Java UDF。
-
谢谢 Greg,我会考虑你的建议。
标签: java sql base64 snowflake-cloud-data-platform user-defined-functions