#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
методом. В документации указано, что этот метод «хорошо подходит для больших операций в масштабе всей базы данных, которые являются идемпотентными, таких как удаление старых строк из очень большой таблицы».