Working with geospatial data
Another very common use of Cassandra is to store and query geospatial data. Typically the objective with this type of data is to find points near a given location. The challenge is to find a key that can be used to narrow down the potential list of locations, and to avoid querying many keys at once.
While there is more than one possible data structure that can be used for this purpose, geohashing has a number of benefits that make it worth considering. A geohash is a base-32 representation of a geographic area, where each additional digit represents greater precision. The property of geohashes that makes them particularly suited for geospatial searches is that adding a level of precision to a given geohash results in an area contained within the lower-precision value.
We can visualize this using the following diagram, which shows a geohash, dnh03
, with a number of more precise geohashes contained within it. All of the smaller geohashes begins with the dnh03
prefix...