Cassandra 卡桑德拉UDF,UDA。在地图中第一次重复按键时退出UDF和UDA
我想在函数和聚合的第一个键重复时退出 把地图还给我。这将帮助我提高查询的性能。目前,它会浏览所有记录 我有一个聚合函数Cassandra 卡桑德拉UDF,UDA。在地图中第一次重复按键时退出UDF和UDA,cassandra,distinct,aggregate-functions,user-defined-functions,database-performance,Cassandra,Distinct,Aggregate Functions,User Defined Functions,Database Performance,我想在函数和聚合的第一个键重复时退出 把地图还给我。这将帮助我提高查询的性能。目前,它会浏览所有记录 我有一个聚合函数 create aggregate getdistinct(val1 int, val2 text) SFUNC createdistinctmap STYPE map<int,text> INITCOND (); 您的函数/聚合查询似乎没有针对特定的分区密钥。因此,以这种方式设计模型,而不是查询所有内容。我试图获得非分区键的不同值,与分区键的值相对应。在上面的
create aggregate getdistinct(val1 int, val2 text)
SFUNC createdistinctmap
STYPE map<int,text>
INITCOND ();
您的函数/聚合查询似乎没有针对特定的分区密钥。因此,以这种方式设计模型,而不是查询所有内容。我试图获得非分区键的不同值,与分区键的值相对应。在上面的代码中,val1是非分区键,val2是分区键。最终结果将是不同的键,但所有键的值相同。
CREATE OR REPLACE FUNCTION db.createdistinctmap ( container map<int,text>, val1 int, val2 text)
CALLED ON NULL INPUT
RETURNS map<int,text>
LANGUAGE java AS
$$
String val2String = (String) container.get(val1);
if(val2String == null){
container.put(val1, val2);
}
else{
System.exit(0);
//I would like to exit at this point from the function and aggregate
//and return the container on first key repetition
}
return container; $$
;
select getdistict(column1, column2) from table;