Как диапазоны-запросы к геовременным данным выполняются без фильтрации?

Я думаю, что понимаю, как (x, y) или (lat, log) могут быть сохранены, чтобы разрешить извлечение всех точек в некотором пространственном диапазоне при использовании запросов диапазона к отсортированным данным. Geohash выполняет это путем чередования широты (нечетные биты) и журнала (четные биты), таким образом, когда разрешение x увеличивается, разрешение y также увеличивается. Другие методы, такие как кривые Гильберта, также полагаются на этот основной принцип, увеличивая разрешение в обоих измерениях. Однако я не могу понять, что дает добавление дополнительного временного измерения. Например, GeoMesa использует индекс, который в соответствии с их сайтом выглядит как "YXTTYXTTYX". Я не понимаю, как биты TT позволяют задавать такие вопросы, как «получить все точки в диапазоне X, Y в пределах min‹ t ‹max interval». Не понимаю ли я назначение этих битов и дополнительных измерений в гео-пространственном индексировании?

Насколько я понимаю, размещение этих битов увеличивает временное разрешение по мере увеличения пространственного разрешения. Допустим, у нас есть биты типа [10] [00], где есть Ts. Первый бит делит пространство на две части, ноль означает меньше половины, а 1 больше половины, поэтому для воображаемого набора из четырех тысяч лет мы получаем 0 = year < 2000, 1 = year > 2000. Этот [10] ведет к 2000 < t < 2500, а следующий бит 0 ведет к 2000 < t < 2250, а 0 к 2000 < t < 2125. Используя этот подход, я не вижу, как получить все события в определенном временном диапазоне в определенном пространственном диапазоне, и неясно, для чего еще это можно использовать. Все статьи и презентации, которые я видел до сих пор, сосредоточены в основном на пространственном хешировании и не обсуждают подробно использование дополнительных измерений.


person CoolCodeBro    schedule 17.04.2016    source источник
comment
очевидно, что geomesa изменила схему индексации, теперь они используют xz3 на основе dbs.ifi. lmu.de/Publikationen/Boehm/Ordering_99.pdf   -  person amirouche    schedule 11.12.2018
comment
@amirouche lutanho.net/pic2html/draw_sfc.html   -  person Gigamegs    schedule 07.03.2019


Ответы (1)


Сайт GeoMesa ошибается в том, что кривая заполнения пространства является геохешем. Геохеш - изобретение Г. Нидермайера! Но вы также можете сгладить 3d немного как 2d. SFC также сохраняет информацию о местонахождении в 3D, но с лучшим качеством усилие возрастает. Я бы не рекомендовал вам трехмерную кривую Гильберта. Z-кривую понять намного проще!

person Gigamegs    schedule 18.04.2016
comment
Но если вы превратите 3D в 1D, разве это не означает, что разрешение увеличивается по всем трем измерениям одновременно? Другими словами, не означает ли это, что временной диапазон становится связанным с пространственным диапазоном и наоборот? Они, как я вижу сейчас, если вы хотите искать точки далеко друг от друга во времени, они также должны быть далеко друг от друга в пространстве, и я не понимаю, как это может быть полезно для индексации. - person CoolCodeBro; 18.04.2016
comment
С x, y, z нет никаких границ, которые я знаю, за исключением, например, sfc в 3d - это степень 3. В 2d у вас есть неравенство треугольника! Также sfc пересекает точку (x, y, z) только один раз в октодереве, у вас может быть много точек в листе! - person Gigamegs; 18.04.2016
comment
Я не понимаю, как не может быть границ. Например, при геохешировании, если широта составляет от -90 до +90, тогда первый бит указывает, составляет ли широта от -90 до 0 или от 0 до +90. Второй бит указывает, составляет ли долгота от -180 до 0 или от 0 до +180. Предполагая, что первый бит равен 1, третий бит говорит, какая широта равна 0-45 или 45-90, аналогично четвертый бит говорит, что lon равно 0-90 или 90-180. Теперь, если я хочу запросить диапазон, тогда - person CoolCodeBro; 18.04.2016
comment
(скажем, я хочу запросить lon) Я могу запросить 1111* (все lon в пределах 90–180 и широта 45–90) или 1101* (все lon 90–180 и широта 0–45). Но я не могу получить все 90–180 для любой широты. Lat и lon связаны разрешением. По мере того, как я уточняю диапазон долготы, который мне нужен, мне также нужно получить более точные ответы на широту. - person CoolCodeBro; 18.04.2016
comment
Обычно биты представлены целыми числами. Как вам нужен диапазонный поиск с целыми числами? - person Gigamegs; 18.04.2016
comment
Это всего лишь псевдокод, извините за путаницу. Используя поле из en.wikipedia.org/wiki/Z-order_curve#Coordinate_values, чтобы получить все точки в 1-м маленьком прямоугольнике (x = от 0 до 1) (y = от 0 до 1), я могу сделать 000000 ‹p 000011. Но я не могу выбрать все значения из 1-го и 5-го прямоугольников (x = от 0 до 1 , y = от 0 до 3), без дополнительных значений X из диапазона (от 2 до 3), несмотря на то, что для Y это пространство непрерывно. Это то, что я имею в виду, когда x привязан к y, и оба разрешения увеличиваются одновременно. - person CoolCodeBro; 18.04.2016
comment
Мне кажется, что добавление времени будет означать, что временное разрешение будет привязано к пространственному разрешению, поэтому предположим, что максимальное значение 3-го временного измерения составляет один год, тогда получение значений для всего года (Z) будет означать также получение всего значений в диапазоне X и Y (все значения внутри всего куба), кажется невозможным получить все значения в широком временном разрешении, имея только небольшое пространственное разрешение, и наоборот, точно так же, как невозможно запросить один небольшой диапазон X, но очень широкий диапазон Y. - person CoolCodeBro; 18.04.2016
comment
Я не думаю, что вы поняли sfc. Если вам нужны поля 1 и 5, то есть запрос, который дает вам 4 поля в верхнем левом углу, и запрос, который дает вам 4 поля в нижнем левом углу. Я не уверен, как запросить окно 1,2,3,5. Я нахожу sfc забавным и полезным, но, как я уже сказал, это очень абстрактная и математическая вещь. Если мой ответ полезен, пожалуйста, примите его! - person Gigamegs; 18.04.2016
comment
чтобы начать работу с SFC, вы должны прочитать эту статью aws.amazon.com/blogs/database/ - person amirouche; 11.12.2018