Thanks! Read your blog a few times, but it's hard to get rid of sql
thinking.
So if I create a new standard ColumnFamily with a rowId and geohash a
lat/lon into a UTF8Type, I could geohash the boundingbox, and query for
all matching columns. Or do I always need to know the rowId to do a
slicerange? I also need to only get the columns that are modified within
last 5 minutes.
Jone
On 20/08/2010 10:05, Thorvaldsson Justus wrote:
I think you should try to do it some other way than iterate, it sounds
super suboptimal to me. Also the plugin option he was thinking of I
think is changing Cassandra sourcecode, kind of hard when Cassandra is
changing so fast but very possible. I think you should look at
http://blip.tv/file/4015273 and perhaps my blog post about the same
thing at www.Justus.st <http://www.Justus.st> Cassandra post 4 more on
Data model
Exampel code in java, start and end key, next iteration the end should
be the last key that you collected, depends how you made you model
//Keyrange is for what row key, you can specify what row
startkey,endkey and how many rows
KeyRange keyRange = new KeyRange(700);
keyRange.setStart_key(rowId);
keyRange.setEnd_key(rowId);
//Specify what supercolumns you want to get
SliceRange sliceRange = new SliceRange();
sliceRange.setStart(new byte[] {});
sliceRange.setFinish(new byte[] {});
/J
*Från:* Jone Lura [mailto:jone.l...@ecc.no]
*Skickat:* den 20 augusti 2010 08:53
*Till:* user@cassandra.apache.org
*Ämne:* Re: SV: Help with getting Key range with some column limitations
Thanks for you suggestions.
I tried to iterate them, however I could not get it to work (pretty
sure its my code). Im still not to familiar with Cassandra, so could
you provide a small example?
The key count could be up to atleast 20k and maybe more, and users
should not wait for more than 10 seconds for their map, so I also want
to investigate the plugin suggestion. Does the plugin exist? or do I
have to develop it myself? Are there any documentation on plugin
development for Cassandra?
Best regards
Jone
On 19/08/2010 08:42, Thorvaldsson Justus wrote:
You should iterate through them, get 200 then go get the next 200 and
so on.
Also if checking a bounding box to another.. perhaps try sorting them
so you could start looking at both ends, perhaps make the iteration
smaller until match somehow?
Just my simple coins, also upgrading will probably be needed to
iterate through RP because of bugs. But that should be simple enough
to 6.4
/Justus
*Från:* Jone Lura [mailto:jone.l...@ecc.no]
*Skickat:* den 18 augusti 2010 20:32
*Till:* user@cassandra.apache.org <mailto:user@cassandra.apache.org>
*Ämne:* Help with getting Key range with some column limitations
Hi,
We are trying to implement Cassandra to replace one of our biggest SQL
tables, and so far we got it working.
However, for testing I'm using Cassandra 0.6.2, Java and Pelops.
(Pelops not that important for my question) and need suggestions on
how to solve a problem retrieving a key range based on the following.
<Keyspace Name="AIS">
ColumnType="Super"
CompareWith="LongType"
KeysCached="100%"
CompareSubcolumnsWith="UTF8Type" />
...
</Keyspace>
The super column got columns for longitude and latitude.
1. Need to get get max long number for key
2. The key should also have supercolumns latitude and longitude
column intersecting (inside) with a given boundingbox.
Currently I'm doing like this
KeyRange keyRange = new KeyRange();
keyRange.setStart_key("");
keyRange.setEnd_key("");
keyRange.setCount(700);
And checking every row in db if it match my bounding box.
But there are a lot more than 700 keys.. and if i set a higher count,
the get_range_slice get a Timeout Exception.
Any ideas?
Best Regards
Jone