JSONマップを分散キャッシュに保存するApacheIgnite

Puru--

JSONファイルからデータを読み取り、それをIgnite分散キャッシュにプッシュするために以下のコードを記述しました。このコードは正常に機能しますが、「ContainerAgg」クラスを作成する要件は私にとって問題です。私たちのデータ構造は事前定義されていません。抽出はユーザーの選択に基づいて動的に生成されます。

BinaryObjectを使用してみましたが、BinaryObjectを使用するとSQLクエリを実行できません。BinaryObjectを使用し、スキーマにプリコンパイルされたJavaクラスを使用しないサンプルはありますか。

この「StreamVisitorExample」がありますが、これはプリコンパイルされたJavaクラス(Instrument.class)を使用します

  public static void main(String[] args) {
    ObjectMapper mapper = new ObjectMapper();
    try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
      if (!ExamplesUtils.hasServerNodes(ignite))
        return;

      CacheConfiguration<String, ContainerAgg> config = new CacheConfiguration<>(MASSIVE_CACHE);

      config.setIndexedTypes(String.class, ContainerAgg.class);

      ignite.getOrCreateCache(config);


      try (BufferedReader br = new BufferedReader(new FileReader(args[0]))) {

        IgniteCache<String, ContainerAgg> cache = Ignition.ignite().cache(MASSIVE_CACHE);

        String line = null;
        Long cnt = 0L;
        while ((line = br.readLine()) != null) {
          ContainerAgg inst = mapper.readValue(line, ContainerAgg.class);
          cache.put(cnt.toString(), inst);
          cnt++;
        }


        long startTime = System.currentTimeMillis();
        String sql =
            "SELECT SFID, LABEL, PARTID, PROVIDERID, SUM(TOTALCNT) "
            + "FROM CONTAINERAGG GROUP BY SFID, LABEL, PARTID, PROVIDERID";

        QueryCursor<List<?>> cursor = cache.query(new SqlFieldsQuery(sql));
        long endTime = System.currentTimeMillis();

        for (List<?> row : cursor.getAll()){
          System.out.println(row);
        }
        System.out.println("Total Time: " + (endTime - startTime));

      } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
  }

}

私が何をしたかについて、より多くのコンテキストを提供しますBinaryObjectJSONをに変換し、map各エントリをに追加してインスタンスをBinaryObjectBuilder作成しBinaryObject、に保存しましたIgniteCache<String, BinaryObject>

Pavel Tupitsyn

BinaryObject行く方法です。SQLクエリを実行するには、を介してインデックス付きフィールドを構成する必要がありますCacheConfiguration.QueryEntitieshttps://apacheignite.readme.io/docs/indexes#queryentity-based-configurationを参照)。

ただし、クエリエンティティを構成できるのはキャッシュに対して1回だけです。したがって、スキーマが変更された場合はdestroy、キャッシュを作成し、QueryEntity構成を更新して新しいスキーマを作成する必要があります。

このユースケースのJavaの例はありません。ただし、C#の例を見ることができます。APIは非常に似ています:https//github.com/apache/ignite/blob/master/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Datagrid/BinaryModeExample。 cs

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Cache <String、byte []>のキャッシュをApacheIgniteに保存する方法は?

分類Dev

[apacheignite]プライマリキャッシュとバックアップキャッシュを作成すると失われたキャッシュデータに点火します

分類Dev

BinaryObjectを格納するキャッシュの上にあるApacheIgnite SqlFieldQuery

分類Dev

apacheignite-特定のクラスターグループにキャッシュをデプロイする方法

分類Dev

分散Redisキャッシュの前にキャッシュを配置する

分類Dev

ビットマップをキャッシュに保存してキャッシュから共有するにはどうすればよいですか?

分類Dev

マップをグアバキャッシュに保存するにはどうすればよいですか

分類Dev

ApacheIgniteキャッシュが一定期間後にフリーズする

分類Dev

ハッシュマップをマップにキャストする方法

分類Dev

Apacheigniteでデータフレームをキャッシュする方法

分類Dev

キャッシュされたデータを取得する方法Apacheignite

分類Dev

ApacheIgniteをJSR107キャッシュとして使用するにはどうすればよいですか?

分類Dev

分散キャッシュを介してマッパーのファイルにアクセスする

分類Dev

ハッシュマップをキャッシュ可能なマップに変換する方法

分類Dev

ニアキャッシュでのApacheIgniteクエリは、分散キャッシュよりもパフォーマンス上の利点はありません

分類Dev

ApacheIgnite.NETシンクライアントでキャッシュをロックする

分類Dev

分散キャッシュを使用する-HIVESTREAMING

分類Dev

Redis:ハッシュマップをセットに保存する

分類Dev

ApacheIgnite。CacheAtomicityMode.TRANSACTIONAL_SNAPSHOTを使用してキャッシュを初期化します

分類Dev

オブジェクトをキャッシュに保存する

分類Dev

ビデオをキャッシュに保存する

分類Dev

リスト要素をRedisキャッシュに保存する方法

分類Dev

データをキャッシュに保存する方法は?

分類Dev

WebViewページをキャッシュに保存する

分類Dev

Play2.2のキャッシュに結果を保存する

分類Dev

SQLクエリツールを使用してApacheIgniteキャッシュをクエリする方法は?

分類Dev

ApacheIgniteキャッシュからデータにアクセスする際の問題

分類Dev

SQLクエリはApacheIgniteキャッシュに対して空の結果を返します

分類Dev

Googleマップはキャッシュされた地図ファイルをどこに保存しますか?

Related 関連記事

  1. 1

    Cache <String、byte []>のキャッシュをApacheIgniteに保存する方法は?

  2. 2

    [apacheignite]プライマリキャッシュとバックアップキャッシュを作成すると失われたキャッシュデータに点火します

  3. 3

    BinaryObjectを格納するキャッシュの上にあるApacheIgnite SqlFieldQuery

  4. 4

    apacheignite-特定のクラスターグループにキャッシュをデプロイする方法

  5. 5

    分散Redisキャッシュの前にキャッシュを配置する

  6. 6

    ビットマップをキャッシュに保存してキャッシュから共有するにはどうすればよいですか?

  7. 7

    マップをグアバキャッシュに保存するにはどうすればよいですか

  8. 8

    ApacheIgniteキャッシュが一定期間後にフリーズする

  9. 9

    ハッシュマップをマップにキャストする方法

  10. 10

    Apacheigniteでデータフレームをキャッシュする方法

  11. 11

    キャッシュされたデータを取得する方法Apacheignite

  12. 12

    ApacheIgniteをJSR107キャッシュとして使用するにはどうすればよいですか?

  13. 13

    分散キャッシュを介してマッパーのファイルにアクセスする

  14. 14

    ハッシュマップをキャッシュ可能なマップに変換する方法

  15. 15

    ニアキャッシュでのApacheIgniteクエリは、分散キャッシュよりもパフォーマンス上の利点はありません

  16. 16

    ApacheIgnite.NETシンクライアントでキャッシュをロックする

  17. 17

    分散キャッシュを使用する-HIVESTREAMING

  18. 18

    Redis:ハッシュマップをセットに保存する

  19. 19

    ApacheIgnite。CacheAtomicityMode.TRANSACTIONAL_SNAPSHOTを使用してキャッシュを初期化します

  20. 20

    オブジェクトをキャッシュに保存する

  21. 21

    ビデオをキャッシュに保存する

  22. 22

    リスト要素をRedisキャッシュに保存する方法

  23. 23

    データをキャッシュに保存する方法は?

  24. 24

    WebViewページをキャッシュに保存する

  25. 25

    Play2.2のキャッシュに結果を保存する

  26. 26

    SQLクエリツールを使用してApacheIgniteキャッシュをクエリする方法は?

  27. 27

    ApacheIgniteキャッシュからデータにアクセスする際の問題

  28. 28

    SQLクエリはApacheIgniteキャッシュに対して空の結果を返します

  29. 29

    Googleマップはキャッシュされた地図ファイルをどこに保存しますか?

ホットタグ

アーカイブ