BigQuery удаляет строки в моем скрипте, когда я запускаю только его часть

# #sql #google-bigquery

Вопрос:

У меня есть умеренно сложный скрипт (создайте около 20 различных таблиц, около 1500 строк). При внесении изменений мне нужно запускать только ту часть кода, которая появляется после изменения. Обычно у меня нет никаких проблем с этим, но сегодня я выбрал строки 800-1500, нажал ctrl enter, и когда он завершил запуск 6 минут спустя, я обнаружил, что весь код над строкой, с которой я начал запуск (т. Е. строки 1-799), был удален.

Когда я нажимаю ctrl z, ничего не происходит, так что каким-то образом изменение было зафиксировано. У меня есть несколько более ранних версий скрипта, но здесь есть изменения, которые были удалены и которые я больше нигде не сохранял.

Два вопроса:

  1. почему это происходит? есть ли способ предотвратить это снова? (кроме более строгого контроля версий или выполнения подмножества запроса в другом окне редактирования запроса)
  2. Любой способ восстановить удаленный код, если ctrl z не работает, и его нет в истории запросов, так как я не запускал этот фрагмент сегодня?

примечания: использование веб-интерфейса BigQuery для этого

Комментарии:

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

Ответ №1:

Что-то заставило вашу вкладку браузера перезагрузиться. URL-адрес в браузере немедленно обновляется новым job_id параметром каждый раз, когда вы выполняете запрос, и при переходе по этому URL-адресу (путем перезагрузки вкладки или иным образом) отобразится точный SQL, выполненный этим заданием, и набор результатов, если задание завершено. Если вы выделили только часть запроса — welp, это запрос, который был выполнен, поэтому этот запрос будет отображаться при повторном посещении этого URL. 🙁

Новая функция «вкладки редактора» вызвала это для меня: мне нужно нажать кнопку «отключить вкладки редактора» в верхней части пользовательского интерфейса bigquery, чтобы предотвратить перезагрузку страницы при выполнении запросов с несколькими этапами. Но существует бесконечное множество возможных причин, по которым ваши конкретные вкладки могут перезагружаться в вашей конкретной системе, поэтому вот второе исправление:

Используйте /* */ комментарии SQL, чтобы блокировать части запроса, которые вы не хотите запускать. Комментарии являются частью вашего запроса и, следовательно, будут по-прежнему видны, даже если вкладка браузера перезагрузится.

Комментарии:

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