Как кэшировать таблицу Posgres как стороннюю персистентность по требованию в Apache Ignite? - PullRequest
0 голосов
/ 19 декабря 2018

Я читал документацию о стороннем магазине Apache Ignite: https://apacheignite.readme.io/v2.7/docs/3rd-party-store#section-manual

Но у меня все еще есть несколько сомнений:

  1. Можно ли кэшировать таблицу Postgresqlв уже запущенный экземпляр Ignite?Возможно ли использовать клиент Ignite?
  2. Если в таблицу Postgresql будет вставлена ​​новая строка, будет ли автоматически обновляться кэш Ignite?
  3. Как только таблица Postgresql будет кэширована в Ignite, может ли этокэшированные данные читаются с использованием Spark Dataframes с источником данных Ignite?

1 Ответ

0 голосов
/ 19 декабря 2018
  1. Предположим, у вас есть работающий узел сервера Ignite.Вы можете запустить новый кэш с cacheStoreFactory и запустить на нем IgniteCache # loadCache (...) .Это можно сделать из клиентского узла, но все узлы должны иметь фабричный класс на своем пути к классам.

  2. Вставка новых данных из базовой базы данных не происходит автоматически.Но если вы включите режим read-through , то данные, которых нет в кэше Ignite, будут запрашиваться из базы данных по требованию.

  3. В порядкедля чтения данных в Spark DataFrames в Ignite должны быть созданы соответствующие таблицы SQL. QueryEntities или индексированные типы должны быть настроены в Ignite для кэшированных данных.См. https://apacheignite -sql.readme.io / docs / schema-and-indexes и https://apacheignite -fs.readme.io / docs / ignite-data-frame # section-reading-фреймы данных

...