Операция Spanner не смогла создать индексы NULL_FILTERED

Я не могу создавать индексы для таблиц Cloud Spanner, получаю сообщение об ошибке «Ошибка операции Spanner».

Даже после увеличения размера кластера с 6 до 16 узлов я не могу создать два индекса для таблицы с ~ 12 миллионами строк.

Ошибка при операции гаечного ключа

Что я сделал:

  • Создана objects таблица в Spanner на 3-узловом кластере
  • В таблице 10-12 столбцов, состоящих из STRING, INT64 и одного ARRAY<STRING>.
  • Первичный ключ - это два столбца; значение шарда (хэш object_id) и object_id
  • Загружено ~ 12 миллионов строк
  • Таблица не имела индексов (кроме первичного ключа) при загрузке
  • Нагрузка привязная 3-х узловая; модернизирован до 6 узлов

Что я пробовал:

  • Пытался построить три индекса (через DDL в консоли) - получено "Ошибка операции гаечного ключа"
  • Количество узлов Spanner увеличено с 6 до 12,
  • Смог построить 1 из 3 индексов (UNIQUE в одном STRING столбце)
  • Пытался построить два других индекса (UNIQUE NULL_FILTERED по одиночным STRING столбцам) - получил сообщение «Ошибка при выполнении операции гаечного ключа»
  • Количество узлов Spanner увеличено с 12 до 16 (макс.
  • Пытался построить два других индекса (UNIQUE NULL_FILTERED по одиночным STRING столбцам) - получил сообщение «Ошибка при выполнении операции гаечного ключа»

Что еще я пробовал (обновлено):

  • Удалены предложения NULL_FILTERED и попытались построить два других индекса. Не решился, все еще невозможно построить.

person dsquier    schedule 27.03.2018    source источник
comment
Не могли бы вы подать заявку в службу поддержки? Трудно сказать по предоставленной вами информации.   -  person Mairbek Khadikov    schedule 27.03.2018
comment
Билет оформлен.   -  person dsquier    schedule 28.03.2018
comment
Дело 15360952 @MairbekKhadikov   -  person dsquier    schedule 02.04.2018
comment
Спасибо, я попросил нашу службу поддержки Cloud перенаправить его команде.   -  person Mairbek Khadikov    schedule 02.04.2018
comment
Как только дело будет решено, я рекомендую вам опубликовать ответ с тем, что вы узнали, - для других пользователей Stack Overflow, у которых в будущем возникнут аналогичные проблемы.   -  person arudzinska    schedule 04.04.2018
comment
Сделаю @ AniaRudzińska. Поскольку вы являетесь сотрудником Google, возможно, вы могли бы проверить это изнутри? Прошло 8 дней, а от Google до сих пор нет материального ответа.   -  person dsquier    schedule 04.04.2018
comment
Я вижу, что ваше дело находится в стадии разработки - в настоящее время над ним работает бэклайн-команда. Вы будете получать регулярные обновления статуса.   -  person arudzinska    schedule 05.04.2018
comment
Спасибо, @ AniaRudzińska   -  person dsquier    schedule 05.04.2018


Ответы (1)


Ответ от GCS:

Наша команда разработчиков смогла найти причину, по которой индексы не могут быть созданы. Как оказалось, в данных есть две записи, которые не являются уникальными, что создает нарушение уникальности [1] и препятствует созданию индекса. Эта ошибка возникает перед попыткой индексации, и поэтому создание индекса завершается неудачей еще до попытки.

Вы можете использовать запрос, чтобы найти повторяющиеся записи:

SELECT column, count(column) 
FROM table
GROUP BY column
HAVING COUNT(column) > 1

Вы можете изменить этот запрос для поиска по всем ключам одновременно или изменить его после каждого поиска. После того, как дубликаты будут устранены, вы сможете управлять этими записями и снова запускать создание индекса.


Я надеюсь, что команда Spanner сможет исправить эту ошибку и вернуть правильную ошибку в следующем выпуске.

person dsquier    schedule 05.04.2018