Я знаю, как заглядывать в google BigTable. У меня есть одно сомнение относительно этого. Каковы все типы данных, поддерживаемые google BigTable.Какие типы данных поддерживаются хранилищем данных Google App Engine?
ответ
Bigtable может хранить все типы объектов. Его просто гигантский ключ-значение словаря
Я попытался сохранить GregorianCalendar и получил неподдерживаемое исключение операции. –
Вопрос смущен. AppEngine может использовать BigTable как уровень реализации, но он не раскрывает это пользователю. –
Цитируя раздел Class and Field Annotations из Using JPA with App Engine:
Поля класса данных, которые должны храниться в хранилище данных должны либо быть такого типа, который сохраняется на default или expliclty, объявленный как стойкий. Вы можете найти диаграмму , где подробно указано сохранение по умолчанию JPA по состоянию на the DataNucleus website. Чтобы явно объявить поле как стойкими, вы дать ему
@Basic
аннотацию:import java.util.Date; import javax.persistence.Enumerated; import com.google.appengine.api.datastore.ShortBlob; // ... @Basic private ShortBlob data;
Тип поля может быть любым из следующее:
- один из core types поддерживается хранилище данных
- a Коллекция (например,
java.util.List<...>
) значений типа тип хранилища данных- экземпляр или Коллекция экземпляров
@Entity
класса- вложенная класса, хранящегося в качестве свойств на сущности
Чтобы определить и использовать Email
и PhoneNumber
как типы данных, создавать объекты, для них и карты их как @OneToOne
или сделать их @Embeddable
.
Как определить и использовать тип данных электронной почты и номеров телефонов в большой таблице – user309944
Знаете ли вы, существует ли ограничение на размер() коллекции? – fernandohur
Проверить здесь для получения списка типов данных, поддерживаемых в GAE, используя JDO:
http://code.google.com/appengine/docs/java/datastore/dataclasses.html
и с помощью Python:
http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html
ответ Давида выше дает список типов данных поддерживается изначально по Appengine. Но для написания реальных приложений с помощью GAE вам нужно больше типов данных и шаблонов. Помимо JPA, JDO и LowLevel api с их ограничениями и связанными с ними проблемами не так практичны в использовании.
После того, как они попробовали все, мы выбрали Objectify и никогда не оглядывались назад. Это очень эффективный уровень абстракции доступа к данным, специально разработанный для GAE. Возвращаясь к вашему вопросу, очень легко добавить сериализаторы для ваших собственных типов данных с Objectify.
Обновление: Через 3 года после первоначального ответа я могу сказать, что Objectify является одним из лучших решений для библиотеки программного обеспечения, которые я сделал.
Here - это список типов данных, поддерживаемых в App Engine для Java.
Типы данных, поддерживаемые Datastore перечислены в
Datastore >Entities, Properties, and Keys >Properties and value types
Это не так уж трудно найти.
Окончательный способ найти поддерживаемые типы недвижимости низкого уровня в Java является использование DataTypeUtil
например
if (!DataTypeUtil.isSupportedType(value.getClass())) {
// Convert the value to a supported type.
}
Возможно, это будет полезно в будущем, если вы зададите более описательное название, что более подробно изложит ваш вопрос. –