加入ApacheIgniteRESTAPI

加入ApacheIgniteRESTAPI,rest,ignite,Rest,Ignite,有人知道您是否可以使用ApacheIgnite的RESTAPI进行连接吗?我有两个对象,account和customer加载到ApacheIgnite服务器。这两个对象都加载了数据,并作为帐户对象缓存和客户对象缓存存储在缓存中。我能够使用RESTAPI分别查询这两个对象,即 但是,我希望在帐户和客户缓存上执行联接。是否支持这一点?如果支持,是否有人举过任何例子?我找不到有关此的任何文档。您需要在cacheName中指定一个缓存,并通过其架构名称(默认为缓存名称)引用JOIN中的第二个表。这不

有人知道您是否可以使用ApacheIgnite的RESTAPI进行连接吗?我有两个对象,account和customer加载到ApacheIgnite服务器。这两个对象都加载了数据,并作为帐户对象缓存和客户对象缓存存储在缓存中。我能够使用RESTAPI分别查询这两个对象,即


但是,我希望在帐户和客户缓存上执行联接。是否支持这一点?如果支持,是否有人举过任何例子?我找不到有关此的任何文档。

您需要在
cacheName
中指定一个缓存,并通过其架构名称(默认为缓存名称)引用
JOIN
中的第二个表。这不是RESTAPI所独有的,JavaAPI的工作方式也是一样的。 查询应该类似于

SELECT * 
FROM Customer AS c
JOIN AccountCache.Account AS a
WHERE c.id = a.customerId
尝试使用qryfldexe:

例如,我创建下一个缓存:

它创建两个具有相同结构的缓存

现在我将执行下一个命令:

从“mycache1”中选择*。值V1加入“mycache2”。值V2在V1上。key=V2.key

让我们使用下一个转换器获取URI字符串:

我们的指挥部将是下一个:

从%20%22mycache1%22中选择%20*%20。值%20V1%20加入%20%22mycache2%22。值%20V2%20on%20V1。键%3DV2.key

在brouser中运行下一步:

*%20从%20%22mycache1%22。值%20V1%20加入%20%22mycache2%22。值%20V2%20on%20V1。键%3DV2.key

输出:

{"successStatus":0,"error":null,"response":{"items":[[0,"Value 0",0,"Value 
0"],[1,"Value 1",1,"Value 1"],[2,"Value 2",2,"Value 2"],[3,"Value 
3",3,"Value 3"],[4,"Value 4",4,"Value 4"],[5,"Value 5",5,"Value 
5"],[6,"Value 6",6,"Value 6"],[7,"Value 7",7,"Value 7"],[8,"Value 
8",8,"Value 8"],[9,"Value 9",9,"Value 
9"]],"last":false,"queryId":10,"fieldsMetadata":[{"schemaName":"mycache1","typeName":"VALUE","fieldName":"KEY","fieldTypeName":"java.lang.Integer"},{"schemaName":"mycache1","typeName":"VALUE","fieldName":"VALUE","fieldTypeName":"java.lang.String"},{"schemaName":"mycache2","typeName":"VALUE","fieldName":"KEY","fieldTypeName":"java.lang.Integer"},{"schemaName":"mycache2","typeName":"VALUE","fieldName":"VALUE","fieldTypeName":"java.lang.String"}]},"sessionToken":null}

我们尝试了以下方法:c+join+customer\U account a+on+where+c.dw\U id=a.dw\U id,但得到的响应:{“成功状态”:1,“错误”:“未找到表\“customer\U account\”;SQL语句:\n从customer c join\n客户帐户a中选择id全名,其中c.dw\U id=a.dw\U id[42102-195],“响应”:null,“sessionToken”:null}@Julie这
客户帐户
的东西是从哪里来的?你们有这样命名的桌子吗?您可以尝试一下我在回答中共享的查询吗?在SQL中,它可以工作,但Ignite会将表创建为缓存中的一个对象,如果您跨表查询,它可以使用JDBC工作,但我们讨论的是跨多个缓存对象进行选择。customer_帐户是缓存中的帐户对象。