Skip to content

С Tableau Server на Tableau Cloud: что на самом деле нужно перенести

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

Обновлено · 6 мин чтения

Начните с настоящего инвентаря, а не со списка проектов

План миграции, построенный по списку названий проектов, это план, построенный на догадке. Прежде чем что-либо переедет, вам нужен инвентарь того, что существует, снятый с самого исходного сервера, с владельцем напротив каждого элемента.

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

Записывайте идентификатор, а не только имя. Имена повторяются в разных проектах, переименовываются посреди проекта и являются причиной того, что выборочная миграция выбирает не ту рабочую книгу. Выбор по LUID такой ошибки допустить не может, а родительский проект должен подтягиваться автоматически, когда выбран дочерний.

Что переезжает, и что должно существовать заранее

Контент переезжает. То, что вокруг контента, по большей части должно уже быть на месте, прежде чем он сможет приземлиться.

Рабочие книги, источники данных, потоки, пользовательские представления
Контент, который переносит ограниченная по объёму миграция. Ограничивайте по проекту или выбирайте отдельные элементы.
Пользователи и группы
Идентичность намеренно не ограничивается проектом, потому что владелец рабочей книги должен существовать в целевой среде до того, как рабочая книга сможет там ему принадлежать. Число пользователей регулируется отдельно: фильтрацией, пропуском или переназначением.
Подписки и задачи обновления
Самостоятельные объекты со своим владельцем. Им нужен владелец, который существует и лицензирован в целевой среде.
Проект Samples
Создаётся автоматически на каждом сайте Cloud и принадлежит системной учётной записи Tableau, которую нельзя сопоставить ни с одним из ваших пользователей. Инструменты миграции должны знать, что его нужно оставить в покое.

Идентичность это ограничение порядка, которое застаёт команды врасплох. Контент не может принадлежать тому, кого ещё нет. Последовательность не обсуждается, даже когда календарь предпочёл бы иное.

Что ломается тихо

Сбои, которые причиняют боль, это не те, что выбрасывают ошибку во время запуска. Это те, что оставляют дашборд видимым и тихо неверным.

  • Встроенные учётные данные. Источник данных, который аутентифицировался сохранёнными учётными данными, приезжает неспособным обновляться. Первое свидетельство это устаревший экстракт, а не ошибка миграции.
  • Отсутствующий владелец. Контент, чей владелец так и не был создан в целевой среде, нужно кому-то назначить, и тот, кто проводит миграцию, обычно и оказывается случайным ответом.
  • Подписки и задачи обновления, оставшиеся без живого владельца. Контент работает. Он перестаёт обновляться и перестаёт приходить в почтовые ящики.
  • Контент, переезжающий между проектами. Разрешения в Tableau наследуются от того места, где лежит объект. Перенос меняет то, кто может его видеть, даже если в рабочей книге ничего не изменилось.
  • Подключения, до которых ваша новая сеть не дотягивается. Пользовательский SQL к хосту, который был доступен со старого сервера и недоступен с нового, отказывает в момент запроса, у каждого пользователя по отдельности, а не в момент миграции.

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

Пробный прогон и есть план

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

Инструмент Migrate запускает официальный Tableau Migration SDK на .NET 8 в том же контейнере, что и остальной пакет. Сама миграция идёт по поддерживаемому вендором пути, а не по его переписанной версии. Двухуровневый пробный прогон предшествует жёсткому шлюзу утверждения с тремя обязательными условиями.

Прочитайте пробный прогон полностью. Это последний дешёвый момент в проекте.

Утверждение, и что записывается

Утверждение это момент, когда конкретный человек берёт на себя ответственность. Запись о нём должна пережить проектную команду. Аудит соответствия строится из трёх простых входных данных: плана, конечного состояния запуска и метаданных утверждения.

Он формируется дважды из одной записи. JSON для загрузки в систему управления, Markdown для человека-проверяющего или аудиторского дела. Одна запись, два представления. Машинная копия и человеческая копия не могут расходиться.

Имена учётных данных и значения секретов никогда не попадают в этот аудит. Точки доступа, названия сайтов и типы записываются. Это обеспечивает тест.

Доказать, что всё приземлилось

Честный конец миграции это сравнение, а не зелёная страница статуса.

  1. Посчитайте контент по типам с обеих сторон и осознанно сверьте каждое расхождение, включая те, что вы задумывали.
  2. Заново запустите проверку качества на выборке рабочих книг и сравните реально отдаваемые числа, а не только наличие файлов.
  3. Убедитесь, что каждое расписание существует в целевой среде и завершило хотя бы один запуск.
  4. Убедитесь, что каждый владелец это реальный лицензированный пользователь в целевой среде и что никакой контент тихо не оказался под оператором миграции.
  5. Проследите один важный дашборд от его плиток до столбца в хранилище и посмотрите, откуда теперь берутся его данные.

Последний шаг и есть тот, что стоит потраченного часа. Дашборд, который отрисовывается, не то же самое, что дашборд, направленный на правильный источник, и разница невидима снаружи.

Последовательность, которая работает

  1. Проведите инвентаризацию источника, включая подписки и задачи обновления.
  2. Сначала наведите порядок с владением в источнике. Миграция контента, принадлежащего ушедшему человеку, переносит проблему вместо того, чтобы её решить.
  3. Переносите идентичность, затем проекты, затем контент, затем заново создавайте расписания.
  4. Запустите пробный прогон. Прочитайте его. Затем утвердите.
  5. Снимите инвентарь «после» в тот же день, пока план ещё свеж в голове.

Владение в первую очередь это шаг, который люди пропускают, потому что он кажется отдельным проектом. Это также шаг, который превращает двухнедельную миграцию в четырёхнедельную, если его пропустить, и причина, по которой офбординг и миграция это одна и та же дисциплина, увиденная с двух концов.