簡體   English   中英

蜂巢的空間索引

[英]Spatial index on hive

我在hive中為一個空間數據庫創建表,我知道空間數據有特殊的索引,它們是R-tree。 在蜂巢中創建空間索引是不可能的(我認為)。 我正在考慮嘗試使用小數來制作x,y(long,lat),連續變量的索引。 我認為這不是最有效的。

我們使用esri庫進行空間代數,但在某些情況下,查詢性能非常差。

Esri gis工具為hadoop

我剛在想 ....

為這兩個變量創建一個索引,或者用xi = int(x / 0.2)* 0.2,yi = int(y / 0.2)* 0.2的變量對表進行分區是否更好?

我認為表分區更有效,但設計是更復雜的查詢,我認為分區不支持帶小數的數字變量

帶邊界框的最典型查詢將是一系列空間數據。 任何人都知道使用配置單元為這種查詢構建數據的有效方法嗎?

有沒有在hive中創建和實現R-tree的方法? 你能用帶小數的連續值對表進行分區(我見過很多例子,似乎沒有)?

還有用於空間數據的k維樹,操作起來應該更簡單。

我只看到了帶日期的分區示例。 Tyle 2012,2013 ......等等這些都是離散的價值觀。 我不知道你是否可以定義一個帶有范圍的分區,例如:[40.1,42.4]中的y和[-4,0)中的x,[42.4,43]中的另一個補碼y和[-4中的x] 0).. 分區沒有靜態范圍,因為會有空間區域沒有太多信息。 這是一種制作四叉樹http://en.wikipedia.org/wiki/Quadtree的方法 ,但與分區相關聯,沒有索引。 我認為它可以作為一個空間索引,可以在蜂巢中工作,也許是一種優雅的方式。

這是我的想法。 我希望有人找到一種方法來制作分區,最重要的是x和y是確定要檢查的分區的變量,或者是一個優雅的替代方案

這是制作分區的示例

CREATE TABLE銷售額(sales_order_id BIGINT,order_amount FLOAT,order_date STRING,due_date STRING,customer_id BIGINT)PARTITIONED BY(國家STRING,年份INT,月份INT,日期INT);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM