2017-07-18 8 views
0

私は、Apache Ignite(またはGrid Gain)に直列化して保存したいAvroオブジェクトを持っています。Apache Igniteはシリアル化されたAvroオブジェクトをサポートしていますか?

このデータ形式はApache Igniteでサポートされていますか? 目標は、そのデータ型がサポートされている場合、動的リクエストに基づいてAvroから特定のフィールドを抽出することです。もしそうでなければ、何が回避策ですか?

ありがとうございました。

答えて

1

のIgniteは、それが自身のバイナリ形式です使用します。

https://apacheignite.readme.io/docs/binary-marshaller

それはあまりにも特定のフィールドのみを読み込むことができます。したがって、SQLリクエストはあなたが要求した特定のフィールドだけを読み込みます。このためには、avroオブジェクトをバイナリオブジェクトに変換する必要があります。詳しくはorg.apache.ignite.binary.BinaryObjectのjavadocとorg.apache.ignite.binary.BinaryObjectBuilderを参照してください。

+0

これはAvroを最初にそのIgnite Binaryオブジェクトに変換する必要があることを意味しますか? (Avroは単にシリアライズしてキャッシュに保存することはできません)。はいの場合 - AvroをそのBinaryオブジェクトに変換する方法は?それを行う特定のクラスを書くか?そのクラスの例はすでに存在していますか?ありがとう。 – Joe

+1

こんにちはジョー、これのための施設はありません、あなたは手動でavroから提出し、バイナリオブジェクトに置く必要があります。私はこれが自動化できると信じていますが、今のところこれには設備がありません。コンバーターをapache igniteプロジェクトに寄稿することは大歓迎です。 – Michael

+0

手順は現在:1)誰か(または何らかのシステム)がAvroバイナリエンコードされたメッセージ を送信します2)私はそのバイナリAvroを読んでそれをJavaオブジェクト(元のavroバイナリをデコード)に変換するJavaクラスを作成します3)新しいJavaオブジェクトをApache Igniteキャッシュに格納します(キャッシュはバイナリに設定できます)。4)キャッシュから読み取ります。正しい? (もしそうなら、元のAvroを読み込んでIgniteにデータを保存するためにJavaクラスを作成する必要があることを意味します) – Joe

関連する問題