2014-04-04 71 views
9

由於卡桑德拉是基於離發電機紙(分佈式的,自我平衡哈希表)+的BigTable的並且有將很好地適應這個範例(quadkeygeohash)空間索引。地理空間支持還沒有實現嗎?是否有一個原因,卡桑德拉沒有地理空間的支持?

你可以添加一個GeoPoint數據類型與內部地理散列一個元組,並指定一個CF爲包含地理數據。從那裏你可以選擇行爲作爲地理數據是一個二級索引,或非規範化的SCF。這可能奠定地理空間發展的基礎工作,你可以通過實施一些低掛水果如。附近(),它可能只是返回共享同一地理散列列開始。 (我知道這會不會給你的「最近」,你所要做的周圍geohashes的散步或使用形狀和填充曲線爲隨後可能實現的空間,但對於查找一些普通操作附近的列)

我知道SimpleGeo /城市飛艇內置地理支持到Cassandra的,但它並不像說是有史以來開放。另外,讓我知道,如果有一個更好的地方要問這個(Quora的,郵件列表等)

+0

這裏是一個Python實現一個quadkey的是否有幫助https://github.com/buckheroux/QuadKey – agentargo

+0

我很好奇,爲什麼一個DB會支持的東西,只有在特定問題領域是有用的。他們中的一些人,所以一定有一個很好的理由。但是這不是像支持基因組學這樣的特定數據類型嗎? –

回答

5

我覺得有兩個部分答案。

的原因,爲什麼它不存在,是因爲沒有人誰犯的代碼到卡桑德拉有想到這個功能的,或者認爲,這種能力是足夠高優先級的花費主要時間就可以了。大多數卡桑德拉的發展是由Datastax完成,而他們,作爲一個商業實體,是樞密院用戶需求和建議,也是相當務實什麼可以讓他們在新特性方面最ROI。

如果有足夠好的第三方開發人員(或團隊)有足夠的時間在他們手中,這可以完成,從概念上講,C *提交者可能不會添加像這樣的主要功能的問題。

的第二個方面是,卡桑德拉支持斑點(字節陣列),這意味着你描述可以在客戶端應用程序/驅動程序來實現在相對直接的方式是什麼。在這種情況下,驅動器負責將地理調用轉換爲適當的原始字節操作。我也懷疑,這比用核心存儲引擎中的相關運算符集合支持一個全新的數據原語的工作要少。

相關問題