Как использовать Tableau Server Client в Python: экспорт визуализаций и дашбордов Tableau в .png
Что такое клиент сервера Tableau?
Tableau Server Client (TSC) — это библиотека, используемая в Python. Использование библиотеки TSC помогает упростить взаимодействие с Tableau Server/Online при помощи кода. Работая с библиотекой TSC, можно делать практически все то же, что и с REST API, включая публикацию книг и источников данных, создание пользователей и групп, запросы к проектам, сайтам и многое другое.
В основном запрос на экспорт визуализации используется, когда нужно получить статичное изображение из рабочей книги Tableau, опубликованной на Tableau Server/Online.
Требования Tableau Server Client
Перед использованием Tableau Server Client в Python, необходимо установить его в свою систему (важно: убедитесь, что у вас установлен Python 3.5+.)
Можно загрузить Anaconda и использовать среду Spyder (как мы это делаем в этой статье)
Установка Tableau Server Client
Рекомендуемый способ установки этой библиотеки — через pip. Поэтому мы будем использовать именно этот способ установки библиотеки.
Запустите команду (в окне команд anaconda):
pip install tableauserverclient
Написание программы для получения всех источников данных
Для начала работы необходимо войти в систему, используя свои учетные данные Tableau Server/Online. Важно: вам придется входить в систему каждый раз, когда вам нужно что-то получить с помощью библиотеки. Итак, есть два способа входа в систему:
1. Использование учетных данных для входа в Tableau Server:
import tableauserverclient as TSC tableau_author = TSC.TableauAuth ('USER_NAME', 'PASSWORD', 'SITENAME') tableau_server = TSC.Server ('http://SERVER_URL', use_server_version=True) tableau_server.auth.sign_in(tableau_author)
‘USER_NAME’— имя пользователя, которое вы используете для входа в Tableau Server.
‘PASSWORD’ — пароль, который вы используете для входа на свой сервер Tableau.
‘SITENAME’– сайт Tableau Server по адресу: http://localhost/#/ site /sales/views/profits
‘SERVER_URL’ — http-адрес вашего сервера: http://localhost
Use_server_version = True позволяет вам использовать версию сервера по умолчанию, к которой у вас есть доступ.
2. Использование токенов Tableau (вам нужно будет создать их на своем сервере Tableau на странице настроек «My Account»):
import tableauserverclient as TSC tableau_token = TSC.PersonalAccessTokenAuth ('TOKEN_NAME', 'TOKEN_VALUE', 'SITENAME') tableau_server = TSC.Server ('http://SERVER_URL', use_server_version=True) tableau_server.auth.sign_in(tableau_token)
‘TOKEN_NAME’ — имя токена личного доступа.
‘TOKEN_VALUE’ — значение токена личного доступа.
‘SITENAME’ – сайт по адресу: http://localhost/#/ site /sales/views/profits
‘SERVER_URL’ — http-адрес вашего сервера: http://localhost
Use_server_version = True позволяет вам использовать версию сервера по умолчанию, к которой у вас есть доступ.
Второй вариант удобен, когда вам нужно поделиться своим кодом с другими и вы не хотите, чтобы они видели ваши учетные данные.
Получение идентификатора визуализации и просмотр изображения
Далее, чтобы получить конкретную визуализацию, вам нужно получить идентификатор этой визуализации на Tableau Server/Online.
with tableau_server.auth.sign_in(tableau_token): view = tableau_server.views.get_by_id ('xxxx') print(view.name)
Здесь вы снова входите в систему с токеном, который вы добавили выше. На экране вы увидите имя визуализаций вместе с их идентификаторами. У вашего сервера может быть много идентификаторов, но использование этого метода поможет вам легче найти идентификатор, поскольку он автоматически прикрепляется к имени визуализации. Этот идентификатор будет полезен на следующем шаге.
Получив идентификатор визуализации в Tableau, которую вы хотите получить, убедитесь, что он правильный. Это можно сделать, используя:
with tableau_server.auth.sign_in(tableau_token): for view in TSC.Pager (tableau_server.views): print(view.name) print(view.id)
После того, как вы проверили имя представления, вы можете преобразовать визуализацию Tableau в изображение:
with tableau_server.auth.sign_in(tableau_token): tableau_server.views.populate_image(view) with open ('. /view.png', 'wb') as v: v.write (view.image)
С помощью этого кода вы снова входите в систему, а затем заполняете изображение визуализацией, которую хотите получить. Далее необходимо дать этому изображению имя, сохраняя данные в том виде, в котором они записаны в файле данных (определение для «wb»), и записываете их в собственное изображение представления.
Готово, но что, если вам нужен только частичный/отфильтрованный вид изображения? Для этого можно использовать параметры визуализаций. Для этого есть несколько шагов:
- Необходимо установить параметры изображения (код Python для установки разрешения) :
view_image_options = TSC.ImageRequestOptions(imageresolution) = TSC.ImageRequestOptions.Resolution.High, maxage=1)
Разрешение изображения поможет установить тип разрешения (высокое/низкое) для изображения визуализации. Maxage — это максимальное количество минут, в течение которых изображение будет храниться в кэше на сервере перед обновлением. Он может увеличиваться только до 240 минут, и если вы добавите 0, он автоматически будет считаться 1 минутой.
2. Установите параметр для фильтрации представления (настройки параметра для фильтрации визуализации Tableau):
view_image_options.vf('Category', 'Office Supplies')
Здесь первый аргумент — это имя параметра, а второй аргумент — это значение параметра.
3. Получите отфильтрованное изображение вашей визуализации, используя код Python:
with tableau_server.auth.sign_in(tableau_token): tableau_server.views.populate_image(view, view_image_options) with open ('. /view.png', 'wb') as v: v.write (view.name)
В результате у вас должно получиться кастомизированное изображение визуализации. Это изображение будет сохранено в пути к каталогу, который вы указали для скрипта. Ниже приведен пример изображения, полученного путем фильтрации дашборда Superstore. Можно увидеть, что дашборд отфильтрован по канцелярским товарам.
Рекомендаци
Убедитесь, что вы всегда входите в систему, когда необходимо получить что-то с сервера Tableau при помощи Tableau Server Client. Скорее всего, вы получите сообщение об ошибке, если не выполните этот шаг. Убедитесь, что у вас есть доступ к книге Tableau и визуализациям/дашбордам внутри нее (если вы не являетесь владельцем книги). Наконец, если вы хотите изменить набор параметров для изображения, вам придется повторно запустить параметры изображения (view_image_options), а затем изменить указанный параметр фильтрации визуализации (view_image_options.vf). Это упрощенная версия получения изображений визуализаций и дашбордов Tableau, описанная в TSC.
Ссылка на источник: https://www.tessellationtech.io/how-to-use-tableau-server-client-in-python/