Относится к экстрактам

Публикация книг Tableau с помощью Tableau Desktop довольно проста и понятна. Но когда дело доходит до их программной публикации через вызовы API, это может быть головной болью. В одном из моих проектов я должен публиковать книгу на сервере на лету на основе некоторого пользовательского ввода. Затем пользовательский ввод решает, какие данные следует заполнить в книге. Структура книги во всех случаях была одинаковой, разница заключалась только в данных. Я перепробовал много способов, и в этом уроке позвольте мне рассказать о самом простом из всех 😃

Основная идея, лежащая в основе этого, состоит в том, чтобы создать одноразовую информационную панель (скелет или шаблон) через рабочий стол Tableau, загрузить упакованную книгу (файл .twbx), изменить данные в упакованной книге и опубликовать ее через API. Итак, приступим ...

Настраивать

pip3 install tableauserverclient
pip3 install hyperapi

Импорт

import os
import shutil 
from zipfile import ZipFile
import tableauserverclient as TSC
from tableauhyperapi import *

Шаг 1. Создайте шаблон книги в Tableau Desktop

Это однократный процесс. Просто создайте панель управления с фиктивными данными на Tableau Desktop и загрузите упакованную книгу (.twbx). Назовем это шаблонная книга. Сохраните это в каталоге вашего проекта. Все последующие шаги будут выполняться программно.

Шаг 2. Разархивируйте книгу шаблонов и создайте ее копию

Обратите внимание, что файл twbx - это не что иное, как некая форма zip-файла. С этим подойдут обычные операции по распаковке zip-архива.

Шаг 3. Обновление гиперфайла новыми данными

Hyper - это механизм обработки данных, используемый tableau начиная с версии 10.5. Раньше использовался формат .tde. Подробнее о гипердвигателе здесь.
Для простоты можно представить Hyper как своего рода SQL-файл. В терминах Tableau это называется выдержкой. Hyper API использует запросы на основе SQL для взаимодействия с файлом .hyper. Наш файл рабочей книги (.twb) запросит данные у гипер-файла. Кроме того, схема (или определение таблицы) в новом файле должна согласовываться с гиперфайлом, содержащимся в книге шаблонов.

Шаг 4. Изменение файла TWB, резервное копирование

В файле twb вы можете изменить заголовок панели инструментов, имя книги и т. Д. Это можно сделать с помощью взлома XML или простого поиска и замены в Python.
После этого нам нужно заархивировать содержимое и изменить расширение на. twbx

Последний шаг: опубликуйте книгу

Давайте наконец опубликуем только что созданную книгу на сервере таблиц.

Вы можете найти полный код в этом репозитории на github.

Это все было с моей стороны. Любые отзывы / мысли, не стесняйтесь публиковать в разделе ответов здесь. Хотел бы их услышать! Если вам нравится общаться со мной в социальных сетях, вот мой идентификатор LinkedIn и twitter.

Если вы найдете эту статью полезной и интересной, дайте мне знать, хлопнув в ладоши 👏.