在 Trino 中,我收到错误消息Cannot deserialize HyperLogLog
:
我有一个关于雪花的查询,执行以下操作:
select
__TENANT_ID
hll_accumulate(VISITOR_ID) as visitor_hll
from
[table]
where
[stuff]
group by
1;
visitor_hll 正在写入 BINARY(8388608) 类型的列。
然后我有一个将这些数据复制到 S3 Parquet 的过程,我通过 Trino 查询它。当我尝试在字段上执行 hyperloglog 操作时,例如
select
merge(cast(visitor_hll as hyperloglog)) as bsi_hll
from
[table]
我收到上述错误。
为了使用在 Snowflake 中创建的 HLL 数据,我该怎么做?
我搜索了我得到的错误信息,谷歌上唯一的结果是 Airlift 上的 HLL 函数的源代码。
我还看到 Snowflake 说“为了与外部工具集成,Snowflake 支持将状态从 BINARY 格式转换为 OBJECT(可以打印和导出为 JSON),反之亦然。” (见HLL_EXPORT)。这将返回一个 JSON 对象,但在 S3 方面,我看不到任何将其导入 HLL 的方法。