【问题标题】:Spatial index on hive蜂巢上的空间索引
【发布时间】:2013-06-17 20:40:18
【问题描述】:

我在 hive 中为空间数据库创建表,我知道空间数据有特殊的索引,它们是 R-tree。在蜂巢中创建空间索引是不可能的(我认为)。我正在考虑尝试为 x、y(long、lat)、带小数的连续变量创建索引。我认为这不是最有效的。

我们将 esri 库用于空间代数,但在某些情况下查询性能很差。

Esri gis tools for hadoop

我在想……

是为这两个变量创建索引更好,还是通过类型为 xi = int(x/0.2) * 0.2, yi = int(y/0.2) * 0.2 的变量对表进行分区?

我认为表分区效率更高,但设计更复杂的查询,我也认为该分区不支持带小数的数值变量

最典型的带有边界框的查询是一系列空间数据。任何人都知道为此类查询使用 hive 构造数据的有效方法吗?

有没有一种方法可以在 hive 中创建和实现 R-tree?可以用小数对连续值的表进行分区吗(我看过很多例子,好像没有)?

【问题讨论】:

  • “用连续值对表进行分区”到底是什么意思?
  • 您可能还对以下内容感兴趣:Randall T. Whitman、Michael B. Park、Sarah M. Ambrose 和 Erik G. Hoel。 2014. Hadoop 上的空间索引和分析。在第 22 届 ACM SIGSPATIAL 地理信息系统进展国际会议论文集(SIGSPATIAL '14)中。 ACM,纽约,纽约,美国,73-82。 DOI=10.1145/2666310.2666387 doi.acm.org/10.1145/2666310.2666387

标签: hadoop gis hive spatial spatial-index


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我只看到了带有日期的分区示例。 A tyle 2012, 2013 .... 等等。这些是真正的离散值。我不知道您是否可以定义具有范围的分区,例如:y in [40.1, 42.4), x in [-4,0), another patition y in [42.4, 43), x in [-4, 0) ...等等。分区没有静态范围,因为会有没有太多信息的空间区域。这是一种制作四叉树 http://en.wikipedia.org/wiki/Quadtree 的方法,但与分区相关联,没有索引。我认为它可以作为空间索引,可以在蜂巢中工作,也许是一种优雅的方式。

    这是我的想法。我希望有人也能找到一种方法来制作分区,最重要的是 x 和 y 是确定要检查的分区的变量,或者是一个优雅的替代方案

    这是一个做分区的例子

    创建表销售 ( sales_order_id BIGINT, order_amount 浮动, order_date 字符串, 到期日期字符串, customer_id BIGINT ) PARTITIONED BY (country STRING, year INT, month INT, day INT);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多