Облачный ключ Google: долго выполняющийся запрос

#google-cloud-spanner

#google-cloud-spanner

Вопрос:

Я пытаюсь выполнить долго выполняющийся запрос через пользовательский интерфейс или Ruby API в Google Cloud Spanner. Цель состоит в том, чтобы все строки старше определенной временной метки истекли, поэтому SQL очень прост, проблема не в этом. По моим оценкам, запрос занял бы не менее часа при том количестве строк, которое у меня есть.
В пользовательском интерфейсе страница вылетает через минуту, а в Ruby API появляется ошибка
Google:: Cloud::DeadlineExceededError
через 60 или 120 секунд в зависимости от версии gem.
Как я могу выполнить запрос для удаления старых строк?

Ответ №1:

Я бы посоветовал рассмотреть возможность использования разделенного DML с Client#execute_partition_update методом. В документации указано, что этот метод «хорошо подходит для больших операций в масштабе всей базы данных, которые являются идемпотентными, таких как удаление старых строк из очень большой таблицы».