divinorum-webb / tableau-api-lib

An API library that allows developers to call on the methods listed in Tableau's REST API documentation.
MIT License
96 stars 34 forks source link

Clone subscriptions #25

Closed gretchenjewell closed 3 years ago

gretchenjewell commented 3 years ago

No code listed for clone subscriptions. Is this intentional or do you have something you could share?

divinorum-webb commented 3 years ago

Hey @gretchenojewell all of the utils.cloning code is experimental and while some of the cloning methods are functional, most is not.

What I can share about the underlying idea is this: 1) you define a TableauServerConnection for your source server 2) you define a TableauServerConnection for your destination server 3) you query schedules for your source server 4) you create schedules with the same properties on your destination server 5) you query subscriptions on the source server 6) you create subscriptions on the destination server that mirror the source server's subscriptions

The idea was interesting, but I found there were too many variables outside of the control of this library to make this bulletproof as open source code that end-users could run with.

If you are cloning subscriptions from one environment to another, then this library can still help by providing the following: 1) the querying section of the library offers functions out of the box that will return Pandas DataFrames describing your schedules, workbooks, views, and subscriptions. 2) you can iterate over rows in those DataFrames using the .iterrows() method to systematically loop through items that exist on the source server, using those details to publish to the destination server.

I hope that helps, and sorry to tease you with the existence of the experimental cloning section in this library. I will consider removing this entirely to help avoid any confusion in the future.

gretchenjewell commented 3 years ago

Elliott, I love you stuff. Please don't pull anything down, we like your thought process and it helps us work through our problems.

Wrre3currently migrating from online to an aws server so we're trying to figure out how to maintain subscriptions and custom views for our users. We have hundreds set up .

On Thu, Apr 22, 2021, 2:05 PM Elliott @.***> wrote:

Hey @gretchenojewell https://github.com/gretchenojewell all of the utils.cloning code is experimental and while some of the cloning methods are functional, most is not.

What I can share about the underlying idea is this:

  1. you define a TableauServerConnection for your source server
  2. you define a TableauServerConnection for your destination server
  3. you query schedules for your source server
  4. you create schedules with the same properties on your destination server
  5. you query subscriptions on the source server
  6. you create subscriptions on the destination server that mirror the source server's subscriptions

The idea was interesting, but I found there were too many variables outside of the control of this library to make this bulletproof as open source code that end-users could run with.

If you are cloning subscriptions from one environment to another, then this library can still help by providing the following:

  1. the querying section of the library offers functions out of the box that will return Pandas DataFrames describing your schedules, workbooks, views, and subscriptions.
  2. you can iterate over rows in those DataFrames using the .iterrows() method to systematically loop through items that exist on server, using those details to publish to the destination server.

I hope that helps, and sorry to tease you with the existence of the experimental cloning section in this library. I will consider removing this entirely to help avoid any confusing in the future.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/divinorum-webb/tableau-api-lib/issues/25#issuecomment-825070205, or unsubscribe https://github.com/notifications/unsubscribe-auth/ATFOOM7YKJVYI3NI4CVYI6TTKBQOFANCNFSM43MW7BMQ .

divinorum-webb commented 3 years ago

Ah, I understand. This migration from Tableau Online to Tableau Server is particularly tricky because you cannot generate a site export and then restore this in your new environment.

It might be worth contacting Tableau Support and asking about their "Content Migration Tool". A year ago I had some discussions with their engineering team, and they were discussing some features in development that could migrate certain content from Tableau Online to Tableau Server. It's a bit of a long shot, but if that tool is available then it could potentially be very useful in your migration.

gretchenjewell commented 3 years ago

Thanks for the tip! I've spoken with them on it but they won't confirm that it will move subscriptions. They say "theoretically " it will.

All good, but we love your library! I'm a novice at best but it's still saved us time.

On Thu, Apr 22, 2021, 4:26 PM Elliott @.***> wrote:

Ah, I understand. This migration from Tableau Online to Tableau Server is particularly tricky because you cannot generate a site export and then restore this in your new environment.

It might be worth contacting Tableau Support and asking about their "Content Migration Tool". A year ago I had some discussions with their engineering team, and they were discussing some features in development that could migrate certain content from Tableau Online to Tableau Server. It's a bit of a long shot, but if that tool is available then it could potentially be very useful in your migration.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/divinorum-webb/tableau-api-lib/issues/25#issuecomment-825161612, or unsubscribe https://github.com/notifications/unsubscribe-auth/ATFOOM5KENYI7IWU3FCSFPLTKCA7PANCNFSM43MW7BMQ .