内部数据库逻辑/操作以组/压缩结果



我有一个cratedb表,为zipcodes存储了各种信息。它包含大约30k的Zipcodes,我需要查询才能一次返回所有Zipcodes的某些分析信息。我知道通常这是不可行的,但是由于我只需要球场信息,而且许多Zipcodes是连续的,所以我认为可以进行优化。

例如,如果我想介绍人口,这样的分组结果对我有用:

group 1 (0-1000): 00000-02000,02004-02010,02012
group 2 (1001-3000): ...
...

上面的人群和群体是假的,但这个想法应该成立。基本上,小组将类别介绍为存储桶,分配Zipcodes以纠正存储桶,并使用范围表示形式进一步降低尺寸。我可以选择预定义的小组,或者由请求/查询本身定义的组存储桶。希望这将使对单个查询的响应太大,而不是可以管理的。

是否可以编写一个cratedb函数来执行类似的操作,以避免在其他服务/容器/VM上完成此分组?

您可能可以在23m行桌上进行操作,或者作为圆柱板条板组或作为列,并因此做到了。

在我的示例中,regex分组和AVG大约需要30秒,但这是非常主观的到我的硬件。。

类似的东西可能会用作通用指针

SELECT avg (--yourColumn--), regexp_matches(--yourColumn--, '--your regex--','i')[1]
FROM "doc"."--yourTable--" 
group by regexp_matches(postcode, '--your regex--','i')[1]
order by regexp_matches(postcode, '--your regex--','i')[1]

您可以使用窗口函数,但这尚未具有用于分区等的完整SQL支持。

最新更新