如何在Apache Ignite 2.1中列出一个缓存中的所有缓存名称和所有列名?

时间:2017-10-07 01:31:03

标签: java sql apache ignite

是否有Java代码或SQL示例列出Apache Ignite中存在的所有缓存?

还有一个java代码或SQL示例来列出Apache Ignite中一个缓存中的列吗?

1 个答案:

答案 0 :(得分:1)

org.apache.ignite.Ignite#cacheNames列出了所有可用的缓存。

您可以通过QueryEntriesCacheConfiguration#setQueryEntities获取有关为缓存设置的CacheConfiguration#setIndexedTypes列的信息。
只需致电Collection<QueryEntity> queryEntities = cache.getConfiguration(CacheConfiguration.class).getQueryEntities();,然后致电您感兴趣的QueryEntity#getFields上的QueryEntity

同样,您可以在使用SqlFieldsQuery时获取有关提取的查询字段的信息。

FieldsQueryCursor<List<?>> cursor = cache.query(new SqlFieldsQuery(query));
for (int i = 0; i < cursor.getColumnsCount(); ++i) {
    String fieldName = cursor.getFieldName(i);
    // ...
}