Так что в настоящее время у меня есть приложение, в котором я храню данные местоположения (lat, lng) вместе с другими полями, а кто нет. Так что я обожаю mysql или sql в целом, так это то, что я могу легко получить геопространственные запросы. например выберите все строки, которые попадают в заданный радиус и центральную точку.Использование DynamoDB с MySQL для запросов GeoSpatial
Что мне нравится в dynamodb, так это то, что он близок к бесконечно масштабируемому на AWS, который является сервисом, который я буду использовать и быстро. Я хотел бы переместить все мои данные на dynamodb и даже вставить новые данные. Но я не смог бы использовать эти геопространственные запросы, которые являются самой важной частью моего приложения. Это необходимо.
Я знаю о геобиблиотеке для dynamodb, но ее написано в java, а мой бэкэнд написан на php, поэтому нет необходимости, и они, похоже, не обновляют или не поддерживают эту библиотеку.
Одним из решений, о котором я думал, было сохранение только координат в mysql и сохранение соответствующего идентификатора вместе с другими данными (включая значения lat и long) в dynamodb.
С этим я мог бы достичь функциональности геопространственных запросов, которые я хочу, имея возможность масштабировать все на амазонке специально, потому что это тот, который я использую.
Так что в основном я бы запросил все POI в пределах данного радиуса от mysql и со всеми идентификаторами, которые я использовал бы для получения всех результатов от dynamodb. Звучит сумасшедшим или что?
Но потенциальным недостатком этого является запрос к одному источнику данных, а затем запрос на другой один сразу после результата первого запроса. Возможно, я передумал и недооценил, насколько быстро эти технологии стали.
Так суммируют мои требования:
Должно быть на AWS
должны быть в состоянии выполнить геопространственных запросов
Должна быть возможность подключения к dynamodb и MySQL в PHP
Любая помощь или предложения были бы весьма признательны.
Эй, Адам, данные пока не существуют, в приложении, которое является мобильным приложением при каждом открытии приложения, мы можем ожидать загрузки пользовательских данных с координатами. и мы можем почти гарантировать, что мы будем читать точки данных в пределах заданного радиуса. Все приложение основано на этом потоке. Я действительно думал о том, чтобы делать php-библиотеку, черт, даже быструю версию. но код был над моей головой. И мне не очень нравится идея использования фиктивного поиска. Почти все остальные данные будут в dynamodb. Это сложная проблема: (и я действительно хочу эту дешевую шкалу). –
Aurora ... хорошая точка. Первоначально они не поддерживали их, но недавно объявили [поддержку пространственных индексов] (https://aws.amazon.com/blogs/aws/amazon-aurora-update-spaces-indexing-and-zero-downtime-patching /), хотя, с любопытством, они делали это с кривой заполнения пробела в индексе B-дерева вместо использования R-дерева как и MySQL, но пространственные функции одинаковы. Я не оценил производительность. –
@AndrewEdwards все точки в пределах заданного радиуса являются легко вычисляемым подмножеством точек в минимальном ограничивающем прямоугольнике '(xr, yr) , (xr, y + r), (x + r, y + r), (x + r, yr) '. –