Экспорт данных из Python в Tableau напрямую

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

Есть ли способ, которым я могу просто взять return значение моего сценария Python и положить его прямо в таблицу?

Вопрос похож на Экспорт данных из Python в таблицу с использованием JSON?, но они спрашивают о формате Json, и ответом было использование CSV. Я хочу пропустить шаг CSV, если это возможно. Данные, которые я возвращаю, будут в табличном формате.

2 ответа

Решение

Рассмотрите возможность использования TabPy. Возвращает значения, созданные скриптами, в виде вычисляемых полей в книге.

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

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

Простой способ сделать это, не используя формальную базу данных, - это последовательно загружать CSV в одно и то же место с тем же именем. Затем, когда Tableau открывается с уже существующим соединением, все, что нужно, это щелкнуть "обновить".

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

Убедитесь, что ваш текущий экстракт Tableau представляет собой "Источник данных Tableau", а затем используйте "Утилиту командной строки для извлечения данных Tableau", чтобы передать данные в Tableau. Вы используете os.system или подпроцесс для вызова исполняемого файла таблицы. Одно предостережение - эта вещь работает только на Windows.

https://onlinehelp.tableau.com/current/pro/desktop/en-us/extracting_TDE.htm

Загрузка примера csv-файла с сайта Tableau:

C:\Program Files\Tableau\Tableau 2019.1\bin>tableau addfiletoextract --server https://our_server_name --username OurServerSignIn --password "OurServerPwd" --project "New Animations" --datasource "CurrentYrOverYrStats" --file "C:\Users\user1\Documents\DataUploadFiles\AprMay.csv"

Одной из существующих опций на экране "Подключение" Tableau Desktop является "Соединитель веб-данных", который может подключаться к любому типу веб-сервера и получать данные через хорошо документированный протокол. Я подозреваю, что это будет включать веб-сервер, работающий на локальном хосте, написанный на Python.

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

Вам, конечно же, придется оставить этот скрипт Python работающим, ожидая соединений от Tableau.

Другие вопросы по тегам