#amazon-simpledb
#amazon-simpledb
Вопрос:
Я использую Java-клиент Amazon SimpleDB для чтения данных из SimpleDB. Проблема, с которой я сталкиваюсь, заключается в том, что, несмотря на то, что я указал столбцы в некотором порядке в SelectRequest, как показано ниже:
SelectRequest req = new SelectRequest("SELECT TIMESTAMP, TYPE, APP, http_status, USER_ID from mydata");
SElectResult res = _sdb.select(req);
..
Он вернул данные в следующем порядке столбцов:
APP, TIMSTAMP, TYPE, USER_ID, http_status,
Похоже, что он автоматически переупорядочил столбцы в порядке возрастания. Могу ли я каким-либо образом принудительно изменить порядок, указанный в предложении select?
Ответ №1:
Возвращаемые столбцы представляют собой не упорядоченный список, а неупорядоченный набор атрибутов. Вы не можете контролировать порядок, в котором они возвращаются. SELECT предназначен для работы даже в тех случаях, когда некоторые атрибуты в вашем запросе не существуют для каждого (или любого) возвращаемого элемента. В этих случаях, в частности, вы все равно не сможете полагаться на order. Я понимаю, что это небольшое утешение, если вы структурировали свой набор данных таким образом, чтобы атрибуты присутствовали всегда.
Однако, поскольку вы заранее знаете желаемый порядок, должно быть довольно легко извлечь данные из результата в правильном порядке. В конце концов, это просто XML, или, в случае клиента Java, только что проанализированный XML.
Операция выбора возвращает набор атрибутов для имен элементов, которые соответствуют выражению выбора.