Как мы достигли предела возможностей Google Docs — Сервисы на vc.ru
Простым смертным иногда кажется, что компании вроде Google, Apple и Amazon — бесконечно сильные исполины. Они ежедневно таскают на своих плечах все свои сервисы, доступные практически каждому человеку на планете, а каждый пользователь, в свою очередь, имеет безграничный доступ к вычислительным ресурсам этих компаний.
9070 просмотров
Отчасти это так. Тот же Google в секунду обрабатывает количество запросов, которое, кажется, у нормального человека в голове уложиться не может. И такой сервис у него (и не только у него) — не один.
При повседневном использовании мы редко приближаемся к ограничениям, установленным то здесь, то там, чтоб наплыв пользователей в одну точку случайно не положил весь сервис в целой стране или даже регионе. Или не случайно, но об этом лучше расскажут безопасники.
Мы в «Собаке Павловой» начали строить дизайн-задачник на базе Google Spreadsheet. Мы смогли реализовать на них все, что хотели, оставаясь в парадигме No-code.
Всеядность и стабильность работы Таблиц нас настолько впечатлили, что особых проблем с масштабируемостью мы не ожидали. Но уже при первом массовом запуске студентов на обучение поняли, что зря. У всех иногда лапки, и у таблиц Google тоже.
Не IMPORTRANGEм единым
Часть конструкций в нашем задачнике живет благодаря возможности передавать данные из определенных ячеек и диапазонов из одной таблицы в другую — с помощью формулы IMPORTRANGE. Так мы раздаем содержимое задач в таблицы студентов, немного усложняем жизнь последователям Робин Гуда и собираем данные для статистики.
Когда нагрузка небольшая, задачники работают отлично: данные подтягиваются достаточно быстро, ничего не сбоит и вообще все максимально красиво. Но как только нагрузка увеличивается — начинается ой.
#REF!
Пока не будем вдаваться в подкапотные тонкости ошибки, расскажем о них позже. Но результат у нее очень интересный — если IMPORTRANGE не смог получить содержимое ячеек, на которые ссылается, то он ничего не вернет. Вообще. И руками повторно запустить отвалившуюся формулу не получится, вместо значения будет гордо красоваться пустая ячейка.
Вот такая
Чаще всего эти ошибки возникают точечно, и почти всегда помогает еще раз загрузить таблицу — данные подтянутся. Но иногда вылезают совсем интересные баги. Например, в формуле, которая ссылается на упавшую ячейку, появлялся #REF ! (как при удалении ячейки), убивая содержимое этой формулы. То есть вместо формулы появляется постоянное (текстовое) значение, которое нужно убирать вручную.
Возможные решения
Оберните формулу в IFERROR(). Тогда при появлении ошибки Google попробует выполнить операцию повторно. Некоторые советуют провернуть эту операцию несколько раз.
- Ошибка напрямую зависит от размера таблиц и диапазона, который импортируется.
Попробуйте удалить лишние строки и лишнее условное форматирование или уменьшить размер диапазона.
300 спартанцев
Опытным путем мы выяснили, что проблемы начинаются, когда в одной таблице появляется больше 300 формул с IMPORTRANGE на разные файлы. Есть подозрение, что проблема — в большом количестве обращений к таблицам из одного места. Похожих проблем, когда таблица обращается к меньшему количеству файлов, но несколько раз, мы не нашли. Но возможно, там тоже есть что-то подобное. Если ссылаться на один файл из разных мест — такая ошибка не появляется.
AppScripts
Часть автоматизации задачника выполняется на базе Google AppScripts — облачной песочницы с JS-based языком. Она позволяет работать с таблицами (и другими продуктами Google) вне их графической оболочки и автоматизировать рутинные процессы.
Хотя сервис очень мощный, на технические ограничения мы наткнулись практически сразу, как начали его использовать. Часть из них явно ввели намеренно, но некоторые — похожи на недоработки, и хочется надеяться, что когда-нибудь их поправят.
Тайминг
Скрипт выполняется только 30 минут. Иногда чуть больше, но мы списали это на погрешность времени запроса к файлам. Когда скрипт отработал полчаса — он просто останавливается, а в консоли появляется соответствующая ошибка. Если скрипт перезапустить, он начнет работу с начала. Возможности перезапустить скрипт и продолжить выполнение мы не нашли.
Это нужно, очевидно, чтоб убивать случайно запущенные бесконечные скрипты. Ну и чтобы не было соблазна писать на скриптах огромные программы. Так или иначе, ограничение приходится учитывать.
Интересно то, что и из этого правила есть исключение. Однажды скрипт проработал почти 44 минуты и даже успешно выполнился. Но он такой был один, поэтому мы решили, что ему просто повезло
При этом похоже, что он запустился дважды в одно выполнение
Вариант решения
Если очень сильно заморочиться, то можно сохранять в служебной таблице текущее состояние скрипта. При запуске проверять, что он уже сделал, и запускать с нужного места.
Неравномерность выполнения
Чтобы уложиться в ограничение по времени выполнения, приходится делать пробные запуски и оценивать время выполнения скрипта. Сложность в том, что запросы к файлам и дальнейшая работа с ними занимают разное время. Один запрос может выполняться с вилкой в 1 секунду. Иногда (видимо, при большой нагрузке на сервер) бывает и больше, но это исключение. Получается, что 500 запросов к документам могут выполняться как 250 секунд, так и 750.
Между выполнениями интервал 1 час
Вдобавок скорость загрузки данных из документа зависит от его объема. В случае с таблицами — размер таблиц, объем данных и дополнительные данные таблиц (правила, скрипты и т.д.). В задачнике студенческие таблицы одинаковые по размеру, а объем данных меняется в рамках погрешности. Но это стоит учитывать, если вы работаете с разноплановыми документами.
Возможные решения
Старайтесь держать документы в актуальности и порядке.
Удаляйте лишние данные и пустые строки.
Сделайте 3-5 тестовых прогона скрипта, добавьте к среднему времени выполнения 30%. Этого должно хватить на случай сбоев на стороне Google.
- Если скрипт выполняется дольше 30 минут — попробуйте разделить данные на несколько скриптов или используйте промежуточные таблицы.
- Проведите ревью кода и постарайтесь уменьшить число повторяющихся запросов к документам.
Отваливается и тут
Выше мы уже рассказывали при ошибке importrange вместо формулы подставляется #REF !. Немного покопались в мануалах и нашли там возможность на AppScripts написать собственную формулу. Заподозрили, что формулы встроенные тоже работают на скриптах. Но эта мысль скорее для фанатов теории заговора.
Так или иначе, иногда скрипт просто отваливается посреди выполнения. Объясняет свое поведение двумя причинами:
Или так
Обе ошибки появляются настолько рандомно, что найти их причину невозможно.
Интересно, что если скрипт не использует формулу, то он не убивает неполученные данные, а возвращает пустую строку. Мы предусмотрели это, и если скрипт получает пустые данные, он просто пропускает эту итерацию, оставляя предыдущее значение. Можно было сделать и повторный запрос, но:
Варианты решения
Никаких. Просто жаловаться на Google в профильных ветках и учитывать эти особенности при разработке нагруженных скриптов.
Тонкая работа
Самый редкий кейс — в AppScripts при работе с таблицами нельзя удалить правило условного форматирования. Можно создать, изменить, применить к диапазону. Удалить — нет. А так как у нас на форматировании построена немалая часть задачника, получилось особенно больно.
Похожая история и с правилами проверки данных, но там еще хуже — их нельзя даже редактировать. Только танец с бубном в виде создания изменяемой копии правила.
Вариант решения
Удалите из правила все диапазоны, для которых оно применяется. Плюсы: правило больше не будет применяться. Минусы: вы намусорили в таблице.
Вместо титров
No-code в нашем случае отлично показал себя. Он кратно удешевляет создание MVP и первых версий продуктов и позволяет любому члену команды создавать новые фичи. Но это не волшебная таблетка, которая все сделает за вас, и технические проблемы все равно придется решать вручную.
Уверены, ограничений и недоработок у Google кратно больше. Уверены, что часть наших проблем уже кто-то решил. Уверены, что с оставшимися вполне можно жить.
Но раз со сложностями столкнулись мы, то могут и другие. Надеемся, этот текст поможет кому-то еще найти обходное решение или не повторять наших ошибок.
как защитить таблицы и документы от просмотра
4 июля в поисковой выдаче Яндекса появились файлы пользователей сервиса Google Docs. Многие из них содержали конфиденциальную информацию — пользователи явно не рассчитывали, что их документы окажутся в публичном доступе.
Лазейку удалось быстро ликвидировать: в ночь на 5 июля Яндекс убрал ссылки на документы Google Docs из поиска. Однако за пару часов пользователи успели найти много интересного. Например, файл с инструкцией по найму сотрудников в «Тинькофф Банк». В ней не рекомендовано нанимать геев, кавказцев и сотрудников ФСБ.
Что произошло?
Как произошла утечка данных и почему весь массив документов оказался в поисковой выдаче именно сейчас, неясно. В Яндексе объяснили, что их поисковик «индексирует только открытую часть интернета — те страницы, которые доступны при переходе по ссылкам без ввода логина и пароля». Это происходит автоматически: поисковые роботы Яндекса обходят все страницы в интернете, к которым не запрещен доступ, и затем поисковик выдает ссылки на эти страницы по соответствующим запросам пользователей.
Google тоже вину признает: дескать, в открытом доступе оказались только те документы, которые не были защищены настройками приватности. То есть по сути это открытые для всего интернета страницы. И пользователей об этом предупредили в Пользовательском соглашении, которое обычно никто не читает.
Сами виноваты
Специалисты компании Group IB (специализируется на кибербезопасности) считают, что ситуацию с Google Docs нельзя назвать утечкой конфиденциальных данных.
«Это банальная халатность пользователей… Когда вы создаете файл в Google Docs, у вас есть несколько опций по выбору доступа к нему. Если у вас в настройках стоит галочка напротив «общедоступно для поиска и просмотра», ваш файл может индексироваться поисковыми машинами. Google предупреждает пользователей о том, что поиск будет возможен. «Яндекс» также ничего не нарушает», — заявили специалисты.
В «Лаборатории Касперского» также полагают, что не стоит винить в случившемся сервисы. По мнению представителя компании Юрия Наместникова, пользователям необходимо не ставить настройки доступа на «доступен всем», чтобы не попасть в такую ситуацию.
Что делать пользователям?
Итак, в Google Docs есть настройки доступа.
Файлы Google Docs: как защитить от внешних пользователей. Фото: скриншот автораВ них три уровня:
- для всех в интернете,
- для всех, у кого есть ссылка,
- для выбранных пользователей.
Документы с настройками «для всех в интернете» и «для всех, у кого есть ссылка» не защищены от общего доступа и, соответственно, могут появиться в поисковой выдаче.
Поэтому, если вы хотите, чтобы ваш документ могли читать и редактировать только вы и ограниченный круг лиц (коллеги, друзья, родственники), необходимо выбирать опцию «доступно только тем, кому вы отправите приглашение».
Эксперты по безопасности также рекомендуют хранить документы в облачных сервисах, предварительно архивируя файлы — современные программы-архиваторы позволяют шифровать данные. Это дополнительная серьезная защита для конфиденциальных документов.
Новые способы настройки таблиц в Документах Google
Что изменится
Мы добавляем несколько новых способов настройки таблиц в Документах Google. Теперь вы можете:
- Закрепить строку заголовка таблицы, чтобы она повторялась на каждой странице.
- Указать, что строка не должна разбиваться на страницы.
- Быстро добавлять и упорядочивать столбцы и строки.
- Сортировать таблицы для лучшей организации данных.
- Используйте новую боковую панель таблицы для управления свойствами таблицы
Подробнее см. ниже.
Кто затронут
Конечные пользователи
Почему это важно
Таблицы — важный способ отображения информации в документе. Эти новые функции предоставляют больше возможностей для представления информации с помощью таблиц, облегчая тем, кто просматривает документ, быстро просматривать и понимать информацию.
Дополнительные сведения
Закрепите строку заголовка таблицы, чтобы она повторялась на каждой странице
Вы можете закрепить одну или несколько строк в таблице, чтобы они повторялись на каждой странице, на которой отображается таблица. Это облегчит просмотр заголовков столбцов для длинных таблиц при навигации по документу.
Укажите, что строка не должна разбиваться на страницы
Вы можете указать, что строка таблицы не должна разбиваться на разрыв страницы. Это гарантирует, что важное содержимое в таблицах склеивается и не пропускается на следующей странице, а также обеспечивает больший контроль над форматированием и макетами.
Быстро добавляйте и упорядочивайте столбцы и строки
Теперь вы можете легко перетащить строку или столбец в другое место. Вы также заметите новую интуитивно понятную кнопку для создания новых строк или столбцов.
Сортировка таблиц для лучшей организации данных.
Теперь можно сортировать строки ваших таблиц. Любые закрепленные заголовки таблиц останутся в верхней части таблицы. Кроме того, строки таблицы сортировки будут группироваться по типу контента. Это поможет вам быстро визуализировать, понять и лучше упорядочить данные.
Используйте новую боковую панель таблицы для управления свойствами таблицы
Свойства таблицы теперь будут открываться на боковой панели, что позволит вам видеть изменения, отраженные в вашем документе, в режиме реального времени. Это похоже на функциональность, уже доступную в документах для таких вещей, как редактирование изображений.
Приступая к работе
- Администраторы: Эта функция не контролируется администратором.
- Конечные пользователи: Посетите Справочный центр, чтобы узнать больше о добавлении и редактировании таблиц.
Скорость развертывания.
- . 2021
- Домены с запланированным выпуском: расширенное развертывание (возможно, более 15 дней для демонстрации функций), начиная с 22 декабря 2021
Доступность
- Доступно всем клиентам Google Workspace, а также клиентам G Suite Basic и Business Доступно для пользователей с личными учетными записями Google
Ресурсы
- Справка администратора Google Workspace: добавление и редактирование таблиц
План развития
- Эта функция была указана как готовящаяся к выпуску.
Документы Google упрощают настройку и редактирование таблиц
Эбнер Ли
– 7 декабря 2021 г., 13:40 по тихоокеанскому времени.
@technacity
Хотя Google Workspace предлагает Таблицы, люди по-прежнему используют Документы для создания встроенных таблиц. Google теперь позволяет вам лучше создавать и настраивать таблицы в веб-приложении Docs с несколькими обновлениями.
Эти «несколько новых способов настройки таблиц» в Документах Google начинаются с новой боковой панели для управления свойствами таблицы. Как и в случае с редактированием изображений, вы можете настроить строку, столбец и выравнивание, при этом изменения «отражаются в вашем документе в режиме реального времени».
При работе с документом Документы Google активно используют наложения, которые отображаются при наведении курсора, например «интуитивно понятная кнопка для создания новых строк или столбцов», для:
Быстро добавлять и упорядочивать столбцы и строки
Теперь вы можете легко перетащить строку или столбец в другое место.
Закрепите строку заголовка таблицы, чтобы она повторялась на каждой странице
Вы можете закрепить одну или несколько строк в таблице, чтобы они повторялись на каждой странице, на которой отображается таблица. Это облегчит просмотр заголовков столбцов для длинных таблиц при навигации по документу.
Указывает, что строка не должна быть разделена между страницами
Можно указать, что строка таблицы не должна разделяться через разрыв страницы. Это гарантирует, что важный контент в таблицах склеивается и не пропускается на следующей странице, а также обеспечивает больший контроль над форматированием и макетами.
Сортировка таблиц для лучшей организации данных.
Теперь можно сортировать строки ваших таблиц. Любые закрепленные заголовки таблиц останутся в верхней части таблицы. Кроме того, строки таблицы сортировки будут группироваться по типу контента.
Это поможет вам быстро визуализировать, понять и лучше упорядочить данные.
Эти усовершенствования настройки таблиц в Google Docs сейчас внедряются как для частных, так и для корпоративных клиентов. Они будут полностью доступны в ближайшие недели.
Подробнее о Google Docs:
- Google Docs внедряет систему проверки и утверждения файлов на уровни Workspace
- Документы получают универсальное меню @ для вставки контента, «Добавить разрыв страницы перед»
- Документы Google получают более широкие поля для комментариев, поддержку фоновых водяных знаков
FTC: Мы используем автоматические партнерские ссылки, приносящие доход. Еще.
Проверьте 9to5Google на YouTube для получения дополнительных новостей:
Вы читаете 9to5Google — эксперты, которые день за днем сообщают новости о Google и окружающей его экосистеме.