Получить определенный элемент массива в yaml для извлечения данных из хранилища данных

Я пытаюсь вытащить все объекты из облачного хранилища данных Google в формате csv.

Я нашел отличную ссылку, которая мне очень помогла (https://vikashazrati.wordpress.com/2010/09/20/downloading-datastore-data-from-a-java-application-on-google-app-engine/< /а>)

Мое приложение сделано на java.

У меня есть 2 опасения:

а. Извлекаются только проиндексированные поля подклассов, а не все. Должен ли я индексировать все поля/свойства подкласса (насколько я понимаю, индексация всех полей не очень хорошая идея, поправьте меня, если я ошибаюсь)

б. У меня есть arrayList как часть этого объекта, и мне нужен только элемент с максимальным индексом, что-то вроде arrayList[arrayList.size() -1], и я не могу его получить. (просто к вашему сведению, arrayList состоит из объектов определенного класса, т.е. это составное свойство, и после получения требуемого объекта я планирую вывести элементы этого составного свойства 1 на 1, что-то вроде arrayList[arrayList.size( ) -1].member1 )

Любые указатели будут полезны.

заранее спасибо


person ridua    schedule 21.11.2015    source источник


Ответы (1)


Wrt (a), индексирование всего возможно - проблема в том, что это может стать довольно дорогостоящим, если вы пишете много сущностей (каждое размещение сущности, которое вы делаете, потребует обновления многих индексов). Remote API, https://cloud.google.com/appengine/docs/java/tools/remoteapi , вероятно, будет лучшим подходом.

Что касается (b), обычным решением таких проблем является «денормализация» — введение некоторой избыточности для облегчения запросов и выборки. Так, например, если у вас есть элемент foo, представляющий собой список, добавьте избыточный элемент last_foo, который поддерживается (небольшой объем кода при каждом изменении foo), чтобы он равнялся последнему элементу foo. Небольшие дополнительные затраты на написание, но для многих приложений непропорциональная экономия на запросах и выборках (и для большинства приложений запросы и выборки выполняются чаще).

person Alex Martelli    schedule 21.11.2015