воскресенье, 17 марта 2013 г.

Пост 18. Сериализатор AVRO и Oracle NoSQL Database. Теория.

Доброго времени суток!
Как было сказно ранее 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()

В следующем посте мы рассмотрим конкретный пример - думаю все будет намного понятнее!

Комментариев нет:

Отправить комментарий