我可以使用Avro JSON規範(捆綁在Gora中)將Apache Gora作爲ORM與Accumulo進行集成。當我使用諸如String,Integer等原始數據類型時,它工作正常,但是一旦我將數據類型定義爲Array或Map,就會遇到錯誤。Accumulo Gora映射Array/HashMap
在陣列的情況下,戈拉當我嘗試添加新元素引發以下錯誤:「(Ljava /郎/對象;)org.apache.gora.persistency.ListGenericArray.add Z」
使用Map,儘管我沒有收到錯誤,但是在提交後我看到一個空的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"}}
]
}
這是Accumulo強羅XML映射
<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版本1.4.4,但面臨同樣的問題。
我不確定Gora是否支持Map或Array數據類型;我會想象它應該將複雜的數據類型轉換爲其等效的JSON格式,並將其存儲爲Accumulo中的Char序列。
任何想法?