TABLEAU REST API: Учебники по TABLEAU-API-LIB

Создание веб-перехватчиков Tableau Server, чтобы предупреждать вашу команду, когда извлечение завершается неудачно или успешно

Как настроить веб-перехватчики с помощью Python и REST API в Tableau

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

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

Я уже продал вас на вебхуках? Если вы все еще читаете, давайте подробно рассмотрим некоторые пошаговые инструкции по их настройке на собственном сервере Tableau.

В этом руководстве рассматривается использование пакета Python tableau-api-lib и он является частью серии о том, как использовать Tableau Server как бочонок, что дает вам контроль над REST API Tableau Server.

В этих руководствах предполагается, что у вас уже установлен Python 3. Если у вас еще нет Python 3, это поможет вам начать: Руководство по установке Python.

Подготовка сцены

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

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

Увы, моя прачечная не поддерживает веб-крючки. Но Tableau Server умеет! Итак, давайте посмотрим, что мы можем с ними сделать.

Шаг 1: убедитесь, что у вас установлен tableau-api-lib

Даже если вы являетесь профессионалом в этих уроках, сделайте себе одолжение и загрузите последнюю версию библиотеки. Он обновляется регулярно.

pip install --upgrade tableau-api-lib

Новичок в этом материале Python? Не переживай, быстро поймешь. Следуйте этому руководству по началу работы. В этом руководстве вы узнаете, как подключиться к серверу Tableau с помощью tableau-api-lib.

Шаг 2: подключитесь к своей среде Tableau Server

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

from tableau_api_lib import TableauServerConnection
from tableau_api_lib.utils.querying import get_webhooks_dataframe

tableau_server_config = {
        'my_env': {
                'server': 'https://YourTableauServer.com',
                'api_version': '<YOUR_API_VERSION>',
                'username': '<YOUR_USERNAME>',
                'password': '<YOUR_PASSWORD>',
                'site_name': '<YOUR_SITE_NAME>',
                'site_url': '<YOUR_SITE_CONTENT_URL>'
        }
}

conn = TableauServerConnection(tableau_server_config, env='my_env')
conn.sign_in()

Интересный факт: вы также можете использовать токены личного доступа, если вы используете Tableau Server 2019.4 или новее. Если вы все о токенах доступа, ознакомьтесь с моей статьей о том, как их использовать.

Шаг 3: ознакомьтесь с поддерживаемыми событиями веб-перехватчика

Согласно документации Tableau, следующие события поддерживаются веб-перехватчиками:

В этом руководстве мы сосредоточимся на аспектах извлечения и обновления. Давайте приступим к настройке веб-перехватчиков, которые позволяют нам делать что-то, когда обновление книги или источника данных запускается или завершается успешно / завершается неудачно.

Шаг 4. Изучите некоторые полезные методы веб-перехватчика, доступные вам

Методы веб-перехватчика tableau-api-lib обеспечивают удобный контроль над конечными точками перехватчика, поддерживаемыми Tableau Server. Эти методы включают:

  1. create_webhook
  2. query_webhook
  3. query_webhooks
  4. test_webhook
  5. delete_webhook

Для получения подробной информации о каждой из этих конечных точек вы можете прочитать документацию Tableau или просмотреть строки документации, встроенные в tableau-api-lib:

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

Шаг 5: получите бесплатный тестовый URL-адрес для тестирования ваших веб-перехватчиков

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

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

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

URL, который я использую для этого руководства, находится на том веб-сайте webhook.site:

Мой URL-адрес - это строка, которая частично заблокирована синим маркером. Если вы следите за новостями дома, просто скопируйте этот URL, и мы будем использовать его на следующем шаге.

Шаг 6: создайте несколько веб-перехватчиков

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

  1. Веб-перехватчик, который срабатывает при начале обновления источника данных.
  2. Веб-перехватчик, который срабатывает при успешном обновлении источника данных.
response = conn.create_webhook(
webhook_name='webhook_datasource_refresh_started',
webhook_source_api_event_name='webhook-source-event-datasource-refresh-started',
url='https://webhook.site/<YOUR_STUFF_GOES_HERE>')

Вот ответ, который я получаю от Tableau Server после отправки запроса на создание веб-перехватчика:

Теперь, если мы начнем обновление источника данных, этот веб-перехватчик отправит полезную нагрузку по URL-адресу, который мы указали при создании веб-перехватчика.

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

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

response = conn.create_webhook(
webhook_name='webhook_datasource_refresh_succeeded',
webhook_source_api_event_name='webhook-source-event-datasource-refresh-succeeded',
url='https://webhook.site/<YOUR_STUFF_GOES_HERE>')

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

Ответ для этого веб-перехватчика выглядит примерно так же, как и раньше:

Шаг 7: убедитесь, что веб-перехватчик работает

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

Я начну обновление отсюда:

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

И через несколько секунд (Snowflake не играет в игры) мы получаем подтверждение, что обновление извлечения прошло успешно:

Шаг 8: легко запрашивайте существующие веб-перехватчики

Что-то, что вы можете захотеть сделать быстро и легко, - это запросить существующие веб-перехватчики. Вы можете сделать это с помощью конечных точек API веб-перехватчика, но tableau-api-lib предоставляет удобную функцию, которая делает это за вас и упаковывает результаты в Pandas DataFrame:

webhooks_df = get_webhooks_dataframe(conn)

Подведение итогов

Это все вводное руководство по веб-перехватчикам Tableau Server. Я надеюсь, что это станет хорошей отправной точкой для интеграции их в свои рабочие процессы!

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

Консолидированный код

Используйте эту суть GitHub в качестве шаблона для интеграции этого руководства в свои рабочие процессы.