Я могу создать кэш воспламенения, используя следующий код в java:
Ignition.setClientMode(true);
Set<String> set = new HashSet<>();
set.add("127.0.0.1:48500..48520");
discoveryMulticastIpFinder.setAddresses(set);
TcpDiscoverySpi discoverySpi = new TcpDiscoverySpi();
discoverySpi.setIpFinder(discoveryMulticastIpFinder);
cfg.setDiscoverySpi(discoverySpi);
Ignite ignite = Ignition.start(cfg);
cacheConfiguration = new CacheConfiguration<>(CACHENAME);
cacheConfiguration.setName(CACHENAME);
cacheConfiguration.setSqlSchema("PUBLIC");
cacheConfiguration.setAtomicityMode(CacheAtomicityMode.ATOMIC);
cache = ignite.getOrCreateCache(cacheConfiguration).withKeepBinary();
System.out.println("All Available Cache on server : "+ignite.cacheNames());
ignite.cacheNames()
печатает все мои созданные кэши в консоли.Теперь я хочу создать таблицу, как MYTABLE
в каждом кэше.
Я пытался:
cache.query(new SqlFieldsQuery("CREATE TABLE IF NOT EXISTS MYTABLE( TAG VARCHAR,TIMECREATED TIMESTAMP,VALUE DOUBLE, PRIMARY KEY(TAG,TIMECREATED) )"));
, но этот запрос создает только одну таблицу для всех кэшей.Я не могу написать запрос, подобный приведенному ниже, для приведенного выше сценария.
SELECT * FROM "CACHENAME".MYTABLE WHERE SOME_CONDITION = 1;
Я ссылался [1]: Apache Ignite: Как вывести список всех таблиц и всех кешей вопрос из stackoverflow, но этокажется, не очень помогает ответить на мой вопрос.
Collection<QueryEntity> entities = cacheConfiguration.getQueryEntities();
System.out.println("All available tables in "+CACHENAME+"cache : "+entities);
Используя приведенный выше код, я вижу имя кэша, но внутри этого кэша не создается таблица.
В конечном счете, я хочу создать одну таблицу MYTABLE
в каждом кеше иЯ должен быть в состоянии запросить, используя JAVA SQL_QUERY
метод в ignite:
SELECT * FROM "CACHE_NAME".MYTABLE WHERE SOME_CONDITION = 1;
Ваши ответы действительно ценятся и ценятся.
Спасибо.