I have been using mySQL for an application for some time, and the more data I collect, the slower it gets. So I studied the NOSQL options. One of the things I have in mySQL is a view created from a join group. The application displays all the important information in the grid, and the user can select ranges, search, etc. In this dataset. Standard request material.
Looking at Cassandra, everything is already sorted based on the options that I provide in my repository-conf.xml. So I would have a specific row as my key in SuperColumn and would contain a bunch of data in the columns below that. But I can only sort by one column, and I canβt do any real search inside the columns without pulling out all the supercalls and sorting through the data, right?
I do not want to duplicate data in different ColumnFamilies, so I want to make sure that Cassandra is suitable for me. They have many search functions on Facebook, Digg, Twitter, so maybe I just donβt see a solution.
Is there a way with Cassandra to search or filter specific data values ββin SuperColumn or related columns (columns)? If not, is there another NOSQL option?
In the example below it seems that I can only request phatduckk, friend1, John, etc. But what if I want to find someone in ColumnFamily who lived in the city == "Beverley Hills"? Can this be done without returning all records? If so, can I do a city search == "Beverly Hills" and state == "CA"? It doesn't seem like I can do this either, but I want to make sure my options are.
AddressBook = { // this is a ColumnFamily of type Super phatduckk: { // this is the key to this row inside the Super CF friend1: {street: "8th street", zip: "90210", city: "Beverley Hills", state: "CA"}, John: {street: "Howard street", zip: "94404", city: "FC", state: "CA"}, Kim: {street: "X street", zip: "87876", city: "Balls", state: "VA"}, Tod: {street: "Jerry street", zip: "54556", city: "Cartoon", state: "CO"}, Bob: {street: "Q Blvd", zip: "24252", city: "Nowhere", state: "MN"}, }, // end row ieure: { joey: {street: "A ave", zip: "55485", city: "Hell", state: "NV"}, William: {street: "Armpit Dr", zip: "93301", city: "Bakersfield", state: "CA"}, },
}