Aws

將 AWS DynamoDB 地理空間索引與 Python 結合使用

  • April 16, 2020

Amazon 的 AWS DynamoDB 具有地理空間索引功能,可促進地理查詢:

查詢支持:框查詢返回屬於一對地理點的項目,這些地理點定義了一個投影在球體上的矩形。半徑查詢返回距地理點給定距離內的項目。

問題是用於訪問 AWS 服務的 Python 庫boto缺少對地理對象的任何引用。另一方面,Java 等價物具有這樣的支持

有沒有辦法使用 Python 在 AWS 上使用 DynamoDB 的地理功能?

dynamodb 的“地理空間特徵”實際上並不是其他任何東西,然後從座標計算地理雜湊,將雜湊儲存在同一行中,在雜湊上創建索引,並在基於位置進行查詢時,計算該位置的雜湊並與表中的索引雜湊進行比較。geohash 的算法非常簡單,只要有合理的知識,它就可以在幾個小時內用任何語言編碼。您甚至可以創建一個附加到 dynamodb 流並自動儲存 geohash 的 lambda 函式(自 2015 年 10 月起甚至在 Python 中!)。

但是檢查 dynamodb 流 + lambda + cloudsearch 集成可能是一個更好的主意,它具有對地理空間查詢的本機支持,並且 boto 也具有 cloudsearch 介面。

好吧,這已經晚了大約一年,我懷疑你仍然需要這個解決方案,但你真正能做到這一點的唯一方法是使用 Jython,或者你必須在本地設置一些 Java“伺服器”並從你的python伺服器(可能是兩個弊端中較大的一個,但我想這取決於你站在哪裡!)。

(這兩種解決方案都可能對您來說非常實用..)

引用自:https://dba.stackexchange.com/questions/66823