创建语句中的 Apache Ignite 多个 affinity_key

Apache Ignite multiple affinity_key in create statement

大家好,我想在 apache ignite 中创建一个 table,在 table.Below 中有两个外键(查询索引)是查询。

CREATE TABLE `users_roles` (
  `users_rolesId` bigint(20) unsigned NOT NULL,
  `userId` bigint(20) ,
  `roleId` bigint(20) ,
  `createdOn` timestamp ,
  `modifiedOn` timestamp,
  `createdBy` bigint(20),
  `modifiedBy` bigint(20),
  `isActive` bit(1) ,
  PRIMARY KEY (`users_rolesId`))WITH "backups=1,affinity_key=userId,affinity_key=roleId"

但它给了我例外:

 SQL Error [1001] [42000]: Duplicate parameter: affinity_key=roleId

那么如何在create语句中指定多个查询索引呢??。

这里有两个问题:

  1. 关联键必须是主键的一部分。在您的情况下,关联列不是主键的一部分(尽管它们包含相同的数据)
  2. 不能有超过一列作为关联键列。

亲和性决定了数据在节点之间的分布方式。除非你有两个不同的 table,否则你不能同时拥有两个亲和力。您将不得不选择一个对您来说更重要的,并在另一个上进行分布式连接。

对于您的情况,我建议复制角色 table 并放弃 role_id 上的关联键。