hive上的空间索引

rlcwz9us  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(391)

我在hive中为空间数据库创建表,我知道空间数据有一些特殊的索引,它们是r-tree。在hive中创建空间索引是不可能的(我认为)。我在考虑用x,y(long,lat)做一个索引,用小数表示连续变量。我不认为这是最有效的。
我们将esri库用于空间代数,但在某些情况下查询性能非常差。
用于hadoop的esri-gis工具
我在想。。。。
是否为这两个变量创建索引更好,或者用席= int(x/0.2)*0.2,y= int(y/0.2)*0.2的变量来分割表?
我认为表分区更有效,但是查询的设计更复杂,而且我认为分区不支持带小数的数值变量
最典型的带有边界框的查询是一系列空间数据。有没有人知道一种有效的方法可以用hive来构造这种查询的数据?
有没有一种方法可以在配置单元中创建和实现r树?你能用连续值划分一个表吗​​带小数(我见过很多例子,似乎没有)?

gojuced7

gojuced71#

空间数据也有k维树,操作起来应该简单得多。

sulc1iza

sulc1iza2#

我只见过带日期的分区的例子。2012年,2013年。。。。等等,这些都是离散值。我不知道您是否可以定义一个具有范围的分区,例如:在[40.1,42.4]中的y和[-4,0]中的x,在[42.4,43]中的另一个分区y和[-4,0]中的x。分区没有静态范围,因为有一些空间区域没有太多信息。这是一种制作四叉树的方法http://en.wikipedia.org/wiki/quadtree ,但与分区关联,没有索引。我认为它可以作为一个空间索引,在Hive中工作,也许是一种优雅的方式。
这是我的主意。我希望有人也能找到一种方法来创建分区,最重要的是x和y是决定要检查的分区的变量,或者是一种优雅的替代方法
这是一个创建分区的示例
创建表sales(sales\u order\u id bigint,order\u amount float,order\u date string,due\u date string,customer\u id bigint),按(country string,year int,month int,day int)分区;

相关问题