2012-04-17 2 views
0

Я использую Apache Avro для проекта, но я не могу представить, что он называет картами. Я не смог найти примеры карт в использовании, и пример на спецификации довольно голый:В чем разница между картой и записью в avro?

Карты

Карты используют имя типа "map" и поддержка один атрибут:

  • values: Схема ценностей карты.

Ключи к карте считаются строками.

Например, отображение строки долго объявляются с:

{"type": "map", "values": "long"}

Что может данные, приспосабливает что схема выглядеть, как JSON? Какое использование карты имеет то, что запись не работает лучше?

ответ

2

Я понимаю, что разница очень похожа на то, как Java работает с POJO с именованными свойствами по сравнению с java.util.Map. То есть имена записей на карте являются произвольными, динамическими; но типы данных имеют одинаковый тип (который может быть java.lang.Object для обозначения любого типа).

То есть Карты более универсальны по отношению к записям, но используют больше места для хранения и медленнее обрабатывают, чем POJO (из-за поиска по имени, по сравнению с прямой индексацией полей).

Avro сам довольно сильно типизирован из-за необходимости использовать Схемы, которые, возможно, используют Карты менее привлекательными, чем в более динамических форматах, таких как JSON.

Смежные вопросы