0

在 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 的方法。

4

0 回答 0