Как использовать Python для получения данных через REST API Tableau

Как использовать Python для получения данных через REST API Tableau

12 января 2024 г.

Вы ищете способ программного доступа и получения данных с сервера Tableau? Python может стать мощным инструментом для автоматизации этого процесса с помощью REST API Tableau.

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

Подключение к серверу Tableau и аутентификация

Сначала нам нужно настроить среду Python и установить необходимые библиотеки. Мы будем использовать библиотеку tableauserverclient для взаимодействия с сервером Tableau через его REST API.

Вот как настроить первоначальную аутентификацию и подключение к серверу Tableau:

import tableauserverclient as TSC

tableau_auth = TSC.TableauAuth('USERNAME', 'PASSWORD', site_id='')
server = TSC.Server('http://SERVER_URL', use_server_version=True)
server.auth.sign_in(tableau_auth)

После аутентификации мы можем начать доступ к данным с сервера Tableau. В следующих примерах показано, как получить информацию о представлениях, проектах и ​​книгах.

Получение просмотров

В Tableau представления — это отдельные визуализации или диаграммы, созданные в книге Tableau. К ним могут относиться гистограммы, линейные графики, диаграммы рассеяния, круговые диаграммы, карты и другие типы визуального представления данных. Представления создаются путем перетаскивания полей из панели данных на холст представления и настройки макета и свойств.

На сервере Tableau пользователи с соответствующими разрешениями могут совместно использовать эти представления, получать к ним доступ и управлять ими. Получение представлений через REST API Tableau с использованием Python означает доступ к информации об этих визуализациях, хранящейся на сервере Tableau.

# view
views = []
for view in TSC.Pager(server.views):
    views.append(view.name)

print(views)

Извлечение проектов

В Tableau проекты используются для организации связанного контента, такого как книги, источники данных, представления и другие ресурсы, и управления им. Они позволяют группировать контент и контролировать доступ на основе разрешений пользователя. Каждый проект может иметь уникальные разрешения, что упрощает управление и безопасность различных типов контента.

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

Распечатать названия всех проектов

С помощью первого фрагмента кода вы можете вывести названия всех проектов, используя следующий код:

# project get
with server.auth.sign_in(tableau_auth):
    # get all projects on site
    all_project_items, pagination_item = server.projects.get()

    print([proj.name for proj in all_project_items])

Создайте фрейм данных, содержащий все атрибуты проекта

Ресурсы проекта для Tableau определены в классе ProjectItem. Класс соответствует ресурсам проекта, к которым вы можете получить доступ с помощью REST API Tableau Server. Помимо имени, он также имеет content_permissions, описание, id и parent_id атрибуты.

Если вы хотите сохранить их все в кадре данных, вы можете использовать следующий код:

# project get
with server.auth.sign_in(tableau_auth):
    # get all projects on site
    all_projects, pagination_item = server.projects.get()

    df_projects = pd.DataFrame({
        'name': [project.name for project in all_projects],
        'content_permissions': [project.content_permissions for project in all_projects],
        'description': [project.description for project in all_projects],
        'id': [project.id for project in all_projects],
        'parent_id': [project.parent_id for project in all_projects]
    })

Извлечение книг

Ресурсы книги для Tableau определены в классе WorkbookItem. Класс соответствует ресурсам книги, к которым вы можете получить доступ с помощью REST API Tableau. Некоторые методы книги принимают в качестве аргументов экземпляр класса WorkbookItem. Элемент книги определяет проект.

Напечатать названия первых 100 книг

С помощью первого фрагмента кода вы можете напечатать имена всех книг, используя следующий код:

with server.auth.sign_in(tableau_auth):
  all_workbooks_items, pagination_item = server.workbooks.get()  
  # print names of first 100 workbooks
  print([workbook.name for workbook in all_workbooks_items])

Извлеките все книги и сохраните их в фрейме данных.

Если количество книг превышает 100, вы можете использовать server.workbooks.all() вместо server.workbooks.get() для получения всех книг.

Следующий фрагмент кода позволяет получить все книги. В дополнение к четырем упомянутым атрибутам вы можете обратиться к классу WorkbookItem для получения дополнительной информации.


Спасибо, что нашли время, чтобы вместе со мной изучить информацию, связанную с данными. Я ценю ваше участие. Если эта информация окажется для вас полезной, я приглашаю вас подписаться на меня или связаться со мной на LinkedIn. Приятного изучения!👋


Также опубликовано здесь< /эм>


Оригинал