SimpleDB – как выбрать, где ЛЮБОЙ атрибут соответствует данной строке?
-
20-09-2019 - |
Вопрос
Я разрабатываю макет и использование приложения Amazon SimpleDB.В документации для simpleDB приведено несколько примеров запросов:Вот один из них:ссылка: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1231
выберите * из mydomain, где Title = «Правильный материал»
Я хотел бы использовать что-то вроде:
выберите * из моего домена, где * = «Правильный материал»
Так что я могу искать по всем атрибутам «Правильный материал».
Я знаю, что мог бы создать базу данных и протестировать это, но сейчас я не программирую, а просто планирую, так что если есть кто-нибудь, кто знает решение этой проблемы, то спасибо.
Есть ли общедоступная база данных, которую мы можем запросить для тестирования?
--Том
Решение
Невозможно выполнить тип запроса, о котором вы спрашиваете.Каждое значение атрибута в SimpleDB индексируется в соответствии с именем атрибута, с которым оно связано.Другими словами, для каждого имени атрибута существует отдельный индекс.В результате, даже если бы вы могли это сделать, вам пришлось бы проверять каждый индекс в домене, а в текущей реализации SimpleDB это было бы непомерно медленно.
Однако вы можете смоделировать это самостоятельно, ценой дублирования всех ваших данных и ограничения вашего приложения 128 атрибутами на элемент вместо 256.Это можно сделать, создав в каждом элементе дополнительный многозначный атрибут, в котором будут храниться значения всех остальных атрибутов этого элемента.Затем вы создаете специальные запросы к этому одному атрибуту (вам нужно будет использовать одно и то же имя для этого атрибута во всех элементах).
Я не рекомендую этот подход.
На AWS нет официальных общедоступных баз данных SimpleDB, но есть несколько API-совместимых клонов:М/БД это один.