当前位置: 首页 > 知识库问答 >
问题:

将SQL查询转换为Hazelcast谓词和/或SQL查询的适配器/映射器

公良弘毅
2023-03-14

我正在使用一个应用程序,我们SQL服务器作为数据库。需要在SQL服务器上添加HazelCast缓存层。

这是一个遗留系统,其工作方式类似于SQL服务,其中针对SQLServer DB执行的SQL查询存储在配置表中。

例如,有一个通过查询返回数据的UI:

Select case when page > 18 then 'Adult' else 'Teen' as Category, convert(varchar(20), p.registrationDate) as registeredOn from Person p

这是动态获取、检索并针对数据库执行的。有许多这样的视图是通过动态查询呈现的。在HazelCast中,这些SQL语法中的一些不仅适用。

是否有任何数据库抽象框架或库或某个适配器层可以接受SQL查询并对Hazelcast执行它?

共有1个答案

施喜
2023-03-14

我看到了一些不同权衡的选择:

>

缓存完整的查询结果,并将SQL查询用作密钥。这是入侵性最小的选项,如果数据库数据很少更改,并且重复使用相同的SQL查询,那么这就足够了。通过使用缓存搁置模式,对应用程序的更改将是最小的(https://hazelcast.com/blog/a-hitchhikers-guide-to-caching-patterns/)

使用SQL查询Hazelcast。这为您提供了优化性能的大多数选项。缓存所需的数据库表,并使用SQL查询Hazelcast。可能需要重写SQL查询以符合HazelcastSQL限制:https://docs.hazelcast.com/hazelcast/5.1-beta-1/sql/sql-overview#limitations

 类似资料:
  • TestValue类是简单的pojo 这只是本地env,所有的东西都在我的机器上运行,单个Hazelcast实例。我的代码与官方文档中的示例相匹配。 Hazelcast版本:4.2.1

  • 我正在尝试构建一个方法,删除具有非空属性的条目,但我一直在谓词中失败,我不知道如何正确实现谓词,因为hazelcast没有将“Not NULL”或“IS NULL”作为where子句任何想法如何在映射中找到我需要搜索以删除它们的值? 方法 主类响应SerializablePlus

  • 问题内容: 我想将以下SQL查询转换为Elasticsearch之一。谁能帮上忙 我尝试了以下方法: 但不确定我是否做对了,因为它无法验证结果。似乎要在聚合内添加查询。 问题答案: 假设您使用Elasticsearch 2.x,则有可能在Elasticsearch中 具有 -semantics。我不知道2.0之前的可能性。 您可以使用新的Pipeline Aggregation Bucket Se

  • 问题内容: 多亏了Erwin Brandstetter在我之前的问题“具有has_many关系的订单”中的帮助,我的SQL查询才能正常工作。 如何将该SQL转换为ActiveRecords或AREL查询以在范围中使用? 我最近来的是在朋友的帮助下… …这给了我一个错误: 更新: 我之前的问题对相关的架构和查询有完整的描述。但是基本上Articles have_many Metrics和一个Metr

  • 我有两个表,它们通过一个外键来维护它们之间的父子关系。查询如下所示。我想在使用jpa的同时使用标准版。所以有人可以帮助我使用标准版吗 表“child”的“notification\u id\u child”列是外键,并引用表“parent”的主键。

  • 问题内容: 我在表上有这些数据(使用SQL Server 2005): 我想将其转换为: 现在最困难的部分是:假设我没有其他数据字段指定哪个记录是早餐,午餐或晚餐。我想将它们与最短的开始时间相关联,即,开始时间越短将是早餐,其次就越是午餐,晚餐就越高(假设所有三个(并且只有三个)记录总是被填充)。 有任何想法吗? 问题答案: