Я могу интегрировать Apache Gora как ORM с Accumulo, используя спецификацию Avro JSON (которая входит в состав Gora). Он отлично работает, когда я использую примитивные типы данных, такие как String, Integer и т. Д., Но я сталкиваюсь с ошибками, когда я определяю тип данных как Array или Map.Accumulo Gora Mapping для Array/HashMap
В случае массива, Gora выдает следующее сообщение об ошибке при попытке добавить новый элемент:
«org.apache.gora.persistency.ListGenericArray.add (Ljava/языки/объекта;) Z»
С картой, хотя я не получаю сообщение об ошибке, все, что я вижу пустой объект JSON '{}' после совершения ... пары ключей/значений отсутствуют.
Это то, что моя JSON спецификация выглядит
{
"type": "record",
"name": "Sample",
"namespace": "com.sample.goraz",
"fields":
[
{"name": "first_name", "type": "string"},
{"name":"last_name","type":"string"},
{"name":"bucket","type":{"type":"map","values":"string"}},
{"name":"stack","type":{"type":"array","items":"int"}}
]
}
Это XML-отображение Accumulo-Гур
<root>
<gora-orm>
<class table="SampleCollection" keyClass="java.lang.String" name="com.sample.goraz.Sample">
<field name="first_name" family="f" qualifier="q1" />
<field name="last_name" family="f" qualifier="q2" />
<field name="bucket" family="f" qualifier="q3" />
<field name="stack" family="f" qualifier="q4" />
</class>
</gora-orm>
Я использую Accumulo версию 1.5 и Гур версию 0.3. Я также попытался с Accumulo Version 1.4.4, но столкнулся с той же проблемой.
Я не уверен, поддерживает ли Gora типы данных Map или Array; Я бы предположил, что он должен преобразовать сложные типы данных в его эквивалентный формат JSON и сохранить это как Char Sequence в Accumulo.
Любые идеи?