Доброго времени суток!
Как было сказно ранее Oracle NoSQL Database начиная со второй версии позволяет сериализовать value протоколом AVRO. Давайте попробуем это сделать!
Для того что бы использовать AVRO сериализацию в Oracle NoSQL Database необходимо:
1)Добавить схему в хранилище.
2)Идентифицировать ее в приложении
3)Сериализовать/десериализовать values (сериализуются только значения, ключи не сереализуются!). Для выполнения данной функции используются Avro bindings
Код AVRO сериализаторов применяется только при работе с Value. На остальное приложение влияния не оказывается!
Bind могут быть разного типа. Рассмотрим generic (общий).
Работа с сериализатором в коде приложения (с помощью GenericBind)
1) Создать объект парсер и прочитать им файл схемы данных.
final Schema.Parser parser = new Schema.Parser();
parser.parse(new File(SchemaFile));
2) Создать объект типа “схема данных”, прочитать тип данных в схеме:
Schema personSchema = parser.getTypes().get(SchemaName);
3) Создать объект типа AVRO каталог
final AvroCatalog catalog = myStore.getAvroCatalog();
4) На основе этого каталога и полученных ранее типов данных схемы получаем переменные для связки value и AVRO
final GenericAvroBinding binding = catalog.getGenericBinding(personSchema);
5) Создаем запись для работы с bind. Читаем в нее объект.
GenericRecord member = binding.toObject(valueVersion.getValue());
6) Изменения производятся с помощью метода:
member.put("age", age);
7) Чтение атрибута объекта производится следующим образом:
member.get("age").toString()
В следующем посте мы рассмотрим конкретный пример - думаю все будет намного понятнее!
Комментариев нет:
Отправить комментарий