cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Behroz Sikander <>
Subject Re: Cassandra filter with ordering query modeling
Date Thu, 01 Mar 2018 13:26:56 GMT
Thank you for your response.

I have been through the document and I have tried these techniques but I
failed to model my queries correctly.

Forexample, I have already tried the following:
1) I created another table for Query#2/3. The partition Key was StartTime
and clustering key was name. When I execute my queries, I get an exception
saying that I need to ALLOW FILTERING.
2) I created a table with Name as partitioning key and startTime as
clustering key. This way I was able to order the data in descending order
based on startTime. But the problem was that if a row with same "name" was
inserted, it was overriding the previously inserted row.

I am not sure how to model such queries.

On Thu, Mar 1, 2018 at 2:02 PM, Kyrylo Lebediev <>

> Hi!
> Partition key (Id in your case) must be in WHERE cause if not using
> indexes (but indexes should be used carefully, not like in case of
> relational DB's). Also, only columns which belong to primary key ( =
> partition key + clustering key) can be used in WHERE in such cases. That's
> why 2nd and 3rd are failing.
> You might find this useful:
> doc/latest/cql/dml.html#the-where-clause
> There are several Cassandra handbooks available on Amazon, maybe it would
> be helpful for you to use some of them as starting point to understand
> aspects of Cassandra data[query] modeling.
> Regards,
> Kyrill
> ------------------------------
> *From:* Behroz Sikander <>
> *Sent:* Thursday, March 1, 2018 2:36:28 PM
> *To:*
> *Subject:* Cassandra filter with ordering query modeling
> Hi,own vote
> favorite
> <>
> I am new to Cassandra and I am trying to model a table in Cassandra. My
> queries look like the following
> Query #1: select * from TableA where Id = "123"Query #2: select * from TableA where name="test"
orderby startTime DESCQuery #3: select * from TableA where state="running" orderby startTime
> I have been able to build the table for Query #1 which looks like
>     val tableAStatement = SchemaBuilder.createTable("tableA").ifNotExists.
>     addPartitionKey(Id, DataType.uuid).
>     addColumn(Name, DataType.text).
>     addColumn(StartTime, DataType.timestamp).
>     addColumn(EndTime, DataType.timestamp).
>     addColumn(State, DataType.text)
>     session.execute(tableAStatement)
> but for Query#2 and 3, I have tried many different things but failed.
> Everytime, I get stuck in a different error from cassandra.
> Considering the above queries, what would be the right table model? What
> is the right way to model such queries.
> Regards,
> Behroz

View raw message