АНАЛИТИКА ПЛЮС
Профессиональные услуги в сфере BI

Как использовать 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»), и записываете их в собственное изображение представления.

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

  1. Необходимо установить параметры изображения (код 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 Server Client в Python: экспорт визуализаций и дашбордов Tableau в .png, изображение №1

Рекомендаци

Убедитесь, что вы всегда входите в систему, когда необходимо получить что-то с сервера 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/

x

Этот сайт использует файлы cookies, чтобы облегчить вам пользование нашим веб-сайтом.

Продолжая использовать этот веб-сайт, вы даете согласие на использование файлов cookies.