2015-05-20 5 views
2

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

Наша установка заключается в том, что у нас есть сервер данных Unix, который каждую неделю создает два файла csv (общий размер 1 ГБ), который мы зажимаем, переносим на настольный компьютер Tableau и используем для создания выписных файлов таблицы (файлы tde). В настольном настольном компьютере Tableow мы используем «Редактировать источник данных», чтобы указать нашу книгу в новых файлах tde, и мы публикуем книгу на сервере Tableau (под управлением Windows) в виде twbx. (И как дополнительное усложнение, мы также используем один из файлов tde с предыдущей недели в качестве третьего источника данных).

Мы хотим автоматизировать этот процесс, поэтому в идеале я запустил бы скрипт на сервере Tableau для копирования zip-файла с сервера данных на сервер Tableau, разархивирования, извлечения и указания книги на сервер на новые тэды , Это не кажется возможным, так что мой лучший вариант?

Вот некоторые подходы, я Рассмотренные:

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

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

  3. 2, но использовать tabcmd для создания новых томов на сервере Tableau - не работает, потому что tabcmd не имеет опции «-original-file», которую делает рабочий стол Tableau.

  4. Напишите программу, которая использует API для извлечения данных Tableau для создания tde и запускает это на сервере Tableau. Я не уверен, сколько усилий было бы, но что более важно, tde, похоже, недоступен на сервере как tde (он хранится в другой форме).

  5. Реструктурируйте, как данные обрабатываются на нашем сервере данных: у нас есть MySQL, работающий на этом сервере, и может поместить данные csv в этот db, а затем запустить обычное извлечение извлечения с помощью tabcmd на сервере Tableau. Я думаю, что это сработает, но предположительно означает, что мы передаем данные 1 ГБ (или более?) Через SQL-запросы, а не 50 МБ. Также нам нужно создать «последнюю неделю» моментальный снимок данных для нашего третьего источника данных). Данные не поддаются инкрементным обновлениям - старые записи могут меняться, а также добавлять новые записи. Это больше похоже на обходное решение, чем я хотел бы сделать.

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

Я что-то не хватает? Есть ли более простой способ? Я исключил 2,3 и 4 выше, но реально ли 1, 5 или 6?

Мы используем сервер Tableau 8.2.

Большое спасибо всем, кто может помочь.

ответ

1

в версии 9, вы можете использовать утилиту командной строки для извлечения данных таблицы, чтобы создать, обновить или добавить к выписке. См. Документацию. В версии 8 вы можете написать свою собственную программу для этого, используя API Data Data Extract.

В версии 9 вы можете опубликовать извлечение с использованием API REST. В версии 8 вы можете опубликовать ее с помощью утилиты tabcmd. Нет необходимости редактировать или переиздавать книги, если они используют опубликованный источник данных, - который публикует источник данных отдельно, а затем подключается к опубликованному источнику данных из книг. Таким образом, вы можете обновлять каждый самостоятельно по мере необходимости.

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

+0

Большое спасибо за ответ. Утилита команды извлечения данных tableau делает то, что нам нужно, но я ошибся в своем вопросе, чтобы сосредоточиться на самих экстрактах. Я добавлю ответ, обобщающий, что мы сделали. – JoA

3

В конце концов, решение для нас (предлагаемое поддержкой Tableau) заключалось в установке Tableau Desktop на том же компьютере, на котором мы запускаем сервер Tableau. Это означает, что у нас есть утилита для извлечения данных таблицы, но также, что важно, что пути к файлам, видимые на Tableau Desktop и Tableau Server, идентичны.

Ранее мы создали книгу и выдержки данных на рабочем столе на другой машине. Даже с теми же файловыми путями к файлам csv (на разных машинах) утилита для извлечения данных не смогла обновить выдержки - она ​​не могла найти исходные файлы данных csv. Но создание рабочей книги и ее источников данных (извлечение файлов csv на серверной машине) с помощью Desktop на серверной машине означает, что утилита для извлечения данных может обновлять источники данных, а Tableau Server видит эти обновления.

Другой способ сделать это - разместить исходные исходные файлы данных в общем местоположении и использовать пути UNC для их устранения. Мы не хотели этого делать, поскольку для запуска на сервере сервера Active Directory требуется установка, что, по-видимому, означало, что нам нужно было отключить и переустановить сервер таблиц.