Пространственный индекс на улье

Я создаю таблицы в улье для базы пространственных данных, я знаю, что есть специальные индексы для пространственных данных, которые представляют собой R-дерево. В улье создать пространственный индекс невозможно (я думаю). Я думал о попытке сделать индекс x, y (long, lat), непрерывных переменных с десятичными знаками. Не думаю, что это самое эффективное.

Мы используем библиотеки esri для пространственной алгебры, но в некоторых случаях производительность запросов очень низкая.

Инструменты Esri gis для Hadoop

Я подумал ....

Что лучше: создать индекс для этих двух переменных или разбить таблицу по переменной типа xi = int(x/0.2) * 0.2, yi = int(y/0.2) * 0.2?

Я думаю, что раздел таблицы более эффективен, но дизайн более сложных запросов, также я думаю, что раздел не поддерживает числовые переменные с десятичными знаками.

Наиболее типичными запросами с ограничивающей рамкой будут диапазоны пространственных данных. Кто-нибудь знает эффективный способ структурировать данные с помощью улья для таких запросов?

Есть ли способ создать и внедрить R-дерево в улей? Можете ли вы разделить таблицу с непрерывными значениями с десятичными знаками (я видел много примеров и, кажется, нет)?


person jmbluengo    schedule 17.06.2013    source источник
comment
Что именно вы имеете в виду, разбивая таблицу с непрерывными значениями?   -  person Mike Park    schedule 18.06.2013
comment
Вас также могут заинтересовать: Рэндалл Т. Уитмен, Майкл Б. Парк, Сара М. Эмброуз и Эрик Г. Хоэл. 2014. Пространственное индексирование и аналитика в Hadoop. В Материалы 22-й Международной конференции ACM SIGSPATIAL по достижениям в области географических информационных систем (SIGSPATIAL '14). ACM, Нью-Йорк, штат Нью-Йорк, США, 73–82. DOI=10.1145/2666310.2666387 doi.acm.org/10.1145/2666310.2666387   -  person Randall Whitman    schedule 18.04.2016


Ответы (2)


Есть также k-мерное дерево для пространственных данных, с ним намного проще работать.

person Ivan Klass    schedule 18.06.2013

Я видел только примеры разделов с датами. Тип 2012, 2013 .... и т.д. Это действительно дискретные значения. Я не знаю, можно ли определить раздел с диапазонами, например: y в [40.1, 42.4) и x в [-4,0), еще один раздел y в [42.4, 43) и x в [-4, 0) .. . и т.д. Разделы не имеют диапазонов статики, т.к. будут пробельные области, в которых не так много информации. Это способ создания Quadtree http://en.wikipedia.org/wiki/Quadtree , но связанные с разделами, без индекса. Я думаю, что это будет работать как пространственный индекс, будет работать в улье и, возможно, элегантным способом.

Это моя идея. Я надеюсь, что кто-то найдет способ сделать разделы, и самое главное, что x и y являются переменными, которые определяют раздел для проверки, или элегантную альтернативу

Это пример создания разделов

CREATE TABLE sales (sales_order_id BIGINT, order_amount FLOAT, order_date STRING, due_date STRING, customer_id BIGINT) PARTITIONED BY (страна STRING, год INT, месяц INT, день INT) ;

person jmbluengo    schedule 19.06.2013