2

Avro JSON 仕様 (Gora にバンドルされています) を使用して、Apache Gora を ORM として Accumulo と統合できます。String 、 Integer などのプリミティブ データ型を使用すると問題なく動作しますが、データ型を Array または Map として定義するとエラーが発生します。

Array の場合、新しい要素を追加しようとすると、Gora は次のエラーをスローします。

"org.apache.gora.persistency.ListGenericArray.add(Ljava/lang/Object;)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-Gora 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 と Gora バージョン 0.3 を使用しています。Accumulo バージョン 1.4.4 でも試しましたが、同じ問題に直面しています。

Gora が Map または Array データ型をサポートしているかどうかはわかりません。複雑なデータ型を同等の JSON 形式に変換し、それを Char Sequence として Accumulo に格納する必要があると思います。

何か案は ?

4

1 に答える 1