Hi DuyHai,

thanks for your response.

I understand the reservations about implementing sorting in Cassandra. But I 
think it is analogous to filtering. It may be bad in the general case, but can 
be useful for particular use cases.

If Cassandra does not provide “order-by”, then the ordering has to be done in 
the client (or an intermediate tool like Spark). The cost of ordering will be 
the same, but in the Top N use case, far more data has to be transferred to the 
client when the client has to do the sorting.

So I think, with a qualification “ALLOW ORDERING”, it would be reasonable to 
support “order by” on aggregated values.

Thanks…

Roger



From: DuyHai Doan [mailto:doanduy...@gmail.com]
Sent: Tuesday, June 06, 2017 12:31 AM
To: Roger Fischer (CW) <rfis...@brocade.com>
Cc: user@cassandra.apache.org
Subject: Re: Order by for aggregated values

First Group By is only allowed on partition keys and clustering columns, not on 
arbitrary column. The internal implementation of group by tries to fetch data 
on clustering order to avoid having to "re-sort" them in memory which would be 
very expensive

Second, group by works best when restricted to a single partition other wise it 
will force Cassandra to do a range scan so poor performance


For all of those reasons I don't expect an "order by" on aggregated values to 
be available any soon

Furthermore, Cassandra is optimised for real-time transactional scenarios, the 
group by/order by/limit is typically a classical analytics scenario, I would 
recommend to use the appropriate tool like Spark for that


Le 6 juin 2017 04:00, "Roger Fischer (CW)" 
<rfis...@brocade.com<mailto:rfis...@brocade.com>> a écrit :
Hello,

is there any intent to support “order by” and “limit” on aggregated values?

For time series data, top n queries are quite common. Group-by was the first 
step towards supporting such queries, but ordering by value and limiting the 
results are also required.

Thanks…

Roger




Reply via email to