首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路线图中的UDF或概率数据结构

路线图中的UDF或概率数据结构
EN

Stack Overflow用户
提问于 2014-03-24 06:07:19
回答 2查看 707关注 0票数 1

我们对处理高基数索引很感兴趣。(众所周知这是弹性搜索的一个问题)

我们已经从你那里知道了

代码语言:javascript
复制
select count(distinct high_cardinality_field) from my_table

您已经有了一些优化来计算它。有一天会不会写这样的东西:

代码语言:javascript
复制
select count_via_hyperloglog(high_cardinality_field) from my_table

把count_via_hyperloglog作为UDF或者什么的,就像现在可以通过ES插件在ES中一样吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-24 10:31:35

在机箱中,这个特性作为一个额外的聚合函数出现在我们的待办事项清单上,它使用的是超级日志算法。我们计划执行从presto http://prestodb.io/docs/current/functions/aggregate.html派生的命名。然后,您的示例可能会如下所示:

代码语言:javascript
复制
select approx_distinct(high_cardinality_field) from my_table

但是,每个表的一个特定字段可能的性能改进是根据高基数字段对表进行聚类,如https://crate.io/docs/current/sql/ddl.html#routing下面所述。

票数 4
EN

Stack Overflow用户

发布于 2014-03-24 07:13:56

使用HyperLogLog进行高基数计数计划为1.1.0,文档已经准备就绪:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-cardinality-aggregation.html

示例:

代码语言:javascript
复制
{
    "aggs" : {
        "author_count" : {
            "cardinality" : {
                "field" : "author"
            }
        }
    }
}

对于像UDF这样的东西,您可以使用脚本、.e.g。通过将过滤聚合脚本过滤器结合起来

代码语言:javascript
复制
{
    "aggs": {
        "in_stock_products": {
            "filter": {
                "script": {
                    "script": "doc['price'].value > minPrice"
                    "params": {
                        "minPrice": 5
                    }
                }
            },
            "aggs": {
                "avg_price": {
                    "avg": {
                        "field": "price"
                    }
                }
            }
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22602163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档