Ignite SQL 查询中的日期和字符串处理

Date and String handling in Ignite SQL queries

我将尝试使用 Ignite 将其与作为数据网格的 Hazelcast 在性能方面进行比较。当我研究我需要的所有功能时,没有提到 SQL 查询中的日期 (java.util.Date) 和字符串比较(小于、大于等)我猜它依赖于 Comparable (我愿意),但想知道确切的答案。

另一个相关问题(最好单独提问)是关于索引的。 Hazelcast 有索引和所谓的可移植序列化格式,本质上是将字段子集与序列化对象分开存储,以避免反序列化。我如何保证在 Ignite SQL 查询中避免它?所有字段都编入索引?复合索引等等。我想知道复杂查询在内部是如何工作的,因为根据文档没有复合索引。

Date和String实际上分别被认为是SQL类型TIMESTAMP和VARCHAR,所以不是Comparable。但是对于任何非标准类型,如果它们参与索引或查询,Ignite SQL 将依赖 Comparable。

根据文档,支持并调用复合索引 Group indexes。复杂的查询工作得很好 :)

目前 Ignite 不单独存储索引值,而是保留反序列化的 Java 对象并使用反射来访问属性。在不久的将来(希望在几周内)Ignite 将发布一项功能,允许在不保留 Java 对象(甚至在节点上索引 Java 类 的情况下索引序列化对象和访问字段。