Расчеты в R, визуализации в Tableau - как правильно интегрировать эти два? - PullRequest
0 голосов
/ 08 ноября 2018

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

Из того, что я знаю, я мог бы сохранить все файлы data.frames до .Rdata и загрузить их в Tableau, но в долгосрочной перспективе это кажется громоздким, в то время как вся программа должна быть максимально автоматизирована.

Второй вариант, который я узнал, - это читать данные в Таблице, подключаться к R через Rserve и вызывать простые сценарии R из Tableau. Это был бы вариант, но:

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

Таким образом, мой вопрос заключается в том, каков наилучший способ интеграции R и Таблицы, чтобы после того, как я выполнил весь анализ в R, я мог только обновить данные в подготовленной ранее панели инструментов Tableau с несколькими графиками?

1 Ответ

0 голосов
/ 14 ноября 2018

Существует два основных подхода к совместному использованию таблиц и R, которые подходят для разных вариантов использования. Первый подход заключается в использовании R upstream для подготовки и анализа данных, которые затем предоставляются Tableau для использования при создании и распространении визуализаций. Второй подход заключается в интерактивном подключении Tableau к R через RServe. В этом случае Tableau использует R для эффективного вызова функций и возврата значений, которые Tableau затем может включить в визуализации. Хорошим примером было бы то, что Tableau отправляет значения данных в R, которые затем могут быть оценены с помощью ранее обученной модели классификатора. R обеспечивает оценку модели; Tableau предоставляет интерактивную визуализацию.

Кажется, ваш случай относится к первой категории - использование R upstream для получения данных, которые передаются в Tableau. В этом случае вы можете сохранить данные в любом формате (табличном), к которому Tableau может подключиться: csv, Rdata, таблицы базы данных, xlsx, shp. Ваш выбор.

Можно также обратить внимание на преобразование сгенерированных данных в формат извлечения данных из таблицы (был .tde, теперь .hyper). Это ускорит анализ и упростит публикацию данных. В Tableau есть API-интерфейсы, позволяющие Python (и Java, C и т. Д.) Создавать экстракты, а также утилита командной строки для Windows, которая создает экстракты.

Если ваша цель состоит в том, чтобы автоматизировать процесс ETL, вам следует использовать инструмент подготовки таблиц, который может преобразовать ваш файл Rdata в извлечение без необходимости написания сценария. Последняя тема, которую необходимо рассмотреть, - сделать ваши данные доступными для людей и рабочих книг с помощью Tableau Server. Когда вы будете готовы к этому шагу, у вас будет несколько вариантов публикации и обновления данных на сервере Tableau. Либо с помощью запуска сервера по расписанию, либо путем запуска обновления после выполнения сценария R. Существует еще один API, который полезен в этом последнем случае, известный как Tableau REST API, и Tableau также опубликовала библиотеку с открытым исходным кодом для github, которая упрощает использование REST API из Python. Tableau объявила о планах, чтобы Tableau Server выполнил потоки подготовки таблицы в 2019 году.

Интерактивный сценарий использования RServe во многих случаях великолепен, но, похоже, это не то, что вы ищете. Одно замечание: эта функция предназначена для интерактивного использования. Если у вас есть длительные вычисления в R, скажем, для обучения сложной модели ML, вам, как правило, было бы лучше сделать это в качестве отдельного шага и включить Tableau в микс, когда вы хотите создавать и совместно использовать интерактивные визуализации.

...