简体   繁体   English

Apache Ignite:连续SQLFieldQuery

[英]Apache Ignite : Continuous SQLFieldQuery

I am looking to expose Apache Ignite Cache and client application can access the same. 我希望公开Apache Ignite Cache,并且客户端应用程序可以访问相同的内容。 I can see Continuous query support in Apache Ignite version 1.9 - https://github.com/apache/ignite/blob/master/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheContinuousAsyncQueryExample.java 我可以在Apache Ignite 1.9版中看到持续查询支持-https: //github.com/apache/ignite/blob/master/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheContinuousAsyncQueryExample.java

However I am not able to find any example how to implement Continuous SQLFieldQuery. 但是我找不到任何示例如何实现Continuous SQLFieldQuery。

public static void main(String[] args) throws Exception {
        System.out.println("Run Spring example!!");
        Ignition.setClientMode(true);
        IgniteConfiguration cfg = new IgniteConfiguration();
        cfg.setIncludeEventTypes( EVTS_CACHE);
        cfg.setPeerClassLoadingEnabled(true);
        TcpDiscoveryMulticastIpFinder discoveryMulticastIpFinder = new TcpDiscoveryMulticastIpFinder();
        Set<String> set = new HashSet<>();

        set.add("serverhost:47500..47509");
        discoveryMulticastIpFinder.setAddresses(set);

        TcpDiscoverySpi discoverySpi = new TcpDiscoverySpi();
        discoverySpi.setIpFinder(discoveryMulticastIpFinder);

        cfg.setDiscoverySpi(discoverySpi);

        cfg.setPeerClassLoadingEnabled(true);
        cfg.setIncludeEventTypes(EVTS_CACHE);
        Ignite ignite = Ignition.start(cfg);

        CacheConfiguration<String, BinaryObject> cacheConfiguration = new CacheConfiguration<>(CACHE_NAME);


        IgniteCache<String, BinaryObject> cache = ignite.getOrCreateCache(cacheConfiguration).withKeepBinary();


        QueryCursor<List<?>> query = cache.query(new SqlFieldsQuery("select Field1 from table1 where Field1='TEST'"));
            List<List<?>> all = query.getAll();
            for (List<?> l : all) {
                System.out.println(l);
            }


    }

Continuous queries are only predicate based, SQL is not supported here. 连续查询仅基于谓词,此处不支持SQL。 You can provide a remote filter that will be called for every update on server side. 您可以提供一个远程过滤器,服务器端的每次更新都将调用该过滤器。 All updates that satisfy the filter, will be batched and sent to the subscriber, where local listener is invoked. 满足筛选条件的所有更新将被分批发送给订户,在此调用本地侦听器。

Refer to this page for details: https://apacheignite.readme.io/docs/continuous-queries 请参阅此页面以获取详细信息: https : //apacheignite.readme.io/docs/continuous-queries

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM