我无法在Cloud Spanner表上创建索引,收到错误," Spanner操作失败"。
即使将簇大小增加到6到16个节点,我也无法在~1200万行表上创建两个索引。
我做了什么:
objects
表STRING
,INT64
和一个ARRAY<STRING>
object_id
)和object_id
我尝试了什么:
UNIQUE
列上构建3个索引中的1个(STRING
)UNIQUE NULL_FILTERED
列上构建其他两个索引(STRING
) - 收到&#34;扳手操作失败&#34; UNIQUE NULL_FILTERED
列上构建其他两个索引(STRING
) - 收到&#34;扳手操作失败&#34; 我尝试了什么(更新):
NULL_FILTERED
子句并尝试构建其他两个索引。没有解决,仍然无法建立。答案 0 :(得分:5)
来自GCS的回复:
我们的产品团队能够找到无法创建索引的原因。如图所示,在数据中,您有两个不唯一的条目,因此会创建唯一性违规[1]并阻止创建索引。在索引尝试之前抛出此错误,这就是索引创建在尝试之前失败的原因。
您可以使用查询来查找重复的条目:
SELECT column, count(column)
FROM table
GROUP BY column
HAVING COUNT(column) > 1
您可以修改此查询以同时搜索所有键,或在每次搜索后修改它。一旦处理了重复项,您应该能够管理这些条目并再次运行索引创建。
我希望Spanner团队可以修复此错误并在将来的版本中返回正确的错误。