创建语句中的 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语句中指定多个查询索引呢??。
这里有两个问题:
- 关联键必须是主键的一部分。在您的情况下,关联列不是主键的一部分(尽管它们包含相同的数据)
- 不能有超过一列作为关联键列。
亲和性决定了数据在节点之间的分布方式。除非你有两个不同的 table,否则你不能同时拥有两个亲和力。您将不得不选择一个对您来说更重要的,并在另一个上进行分布式连接。
对于您的情况,我建议复制角色 table 并放弃 role_id
上的关联键。
大家好,我想在 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语句中指定多个查询索引呢??。
这里有两个问题:
- 关联键必须是主键的一部分。在您的情况下,关联列不是主键的一部分(尽管它们包含相同的数据)
- 不能有超过一列作为关联键列。
亲和性决定了数据在节点之间的分布方式。除非你有两个不同的 table,否则你不能同时拥有两个亲和力。您将不得不选择一个对您来说更重要的,并在另一个上进行分布式连接。
对于您的情况,我建议复制角色 table 并放弃 role_id
上的关联键。