damienlesage, Thanks for posting this. Our group is doing this as well and need to address this if it's not supported. I wasn't aware and will need to confirm with more info.
I'm pretty sure the point is to start using the REST API. With that in mind probably being the case we're already looking at making changes to move down this road anyway. Pushes our timeline up a bit though.
Is there an API function to refreshextracts not currently listed in the documentation. We have created many tabcmd 'refreshextracts' scripts currently running on unix. Moving the strategy to Windows for particular groups is not highly desired. Any advice/updates?
Yes we want to move to the API as much as possible. Unfortunately, the REST API doesn't allow us to append a TDE file to a published TDE.
We can do that with TabCmd and this is a feature we are using on production.
It looks like a deal breaker until we find a good alternative. Are you having a similar issue?
Damien - It seems that we're having very similar issues. This might be a deal breaker for us as well. Can anyone from Tableau comment on this or provide some alternative solutions that we're not seeing? **Aside from moving things over to Windows using the tabcmd.
http://onlinehelp.tableau.com/v9.0/api/rest_api/en-us/help.htm#REST/rest_api_concepts_publish.htmIt looks like the solution is to use the new improved REST API to publish updated TDE or TDX files as data sources to Tableau Server -- setting overwrite=true if necessary.
This allows us to publish a TDE to replace the old one, but not to append to an existing TDE.
We have several extracts that are big and we prefer to add only the new data during the workings days because this would take too much time to upload the entire file.
This part of the solution though and we are starting to test it at the moment.
3 of 3 people found this helpful
Hi Damien and Michael,
We rewrote tabcmd in java for 9.0 for a lot of reasons (we hope you like them), but we definitely *didn't* rewrite tabcmd in 9.0 to break Linux compatibility!
The old tabcmd was just a bunch of ruby files that could then be run directly using ruby on a Linux system. This was a nice trick that worked great and we're glad folks did this.
Now that tabcmd is 100% java, it requires a real Linux java launching program which fortunately would be pretty simple to write but unfortunately doesn't exist yet. I want to assure both of you that tabcmd remains and always will be cross platform in nature. We definitely didn't do anything to tie it to Windows.
It is true that you can use the REST API to do many of the things that tabcmd can do and I encourage you to use it when you can.
We will work out to "support" Linux tabcmd, but I'm not sure what that will look like right now. Stay tuned.
Can we expect that for Tableau 9.0 or will it be in a next release?
Let me get it work on Linux and update you
1 of 1 people found this helpful
Running on Linux is actually pretty simple. The hardest part is that you do need to be able to run either the server installer or the tabcmd installer to get the tabcmd jars. But after you do that, here are the instructions:
1) Create a local copy of C:\Program Files\Tableau\Tableau Server\9.0\extras\lib to $HOME/lib.
2) Create a ~/.tabcmd directory. This is used for logs, session storage and file uploads.
3) Create the following bash script:
java -Xmx64m -Xss2048k -Djsse.enableSNIExtension=false -Dpid=$$ -Dlog.file=$HOME/.tabcmd/tabcmd.log -Dsession.file=$HOME/.tabcmd/tabcmd-session.xml -Din.progress.dir=$HOME/.tabcmd -Dconsole.codepage=$LANG -Dconsole.cols=$COLUMNS -cp "$HOME/lib/*" com.tableausoftware.tabcmd.Tabcmd "$@"
This assumes that the JRE is correctly installed and available in the path, and that bash is available. This should work with non-ascii UTF-8 characters in the command line arguments assuming that your terminal supports them, but this isn't well tested (at all really), so please post your experiences.
We will try to package this up so that it's more turnkey, but we have no idea when that will be released or what it will look like. But this these instructions should do for now.
Please let us know how it goes!
Hello Jeff, thanks for the quick response, it works well on linux
[tfoldi@pwnlq0787v01 tabcmd]$ uname -a
Linux pwnlq0787v01 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
[tfoldi@pwnlq0787v01 tabcmd]$ ./tabcmd.sh
Tableau Server Command Line Utility -- 9000.15.0304.1722
I tried first with java -jar, but the app-tabcmd-latest-jar.jar misses the Main-Class definition.
Works great on Centos 6.5. Thank you for putting this out.
As a side note I did notice that when I installed tabcmd with the tabcmd installer the "lib" directory we need to copy over can be found at "~\Tableau\Tableau Server\9.0\lib" and not at "~\Tableau\Tableau Server\9.0\extras\lib". I am sure most folks will figure that out quickly but for those who didn't like me this may save a few minutes. Thanks again Jeff.
I found this worked nicely on Mac and linux, except for the --password-file option for some reason.
./tabcmd.sh login -s https://myserver -t mysite --username myuser --password-file tmpfile
===== Signed out
===== Creating new session
===== Server: https://myserver
===== Username: myuser
===== Site: mysite
===== Connecting to the server...
===== Signing in...
Exception in thread "main" com.tableausoftware.tabcmd.ResponseException
I'm sorry for that issue! I can repro so we'll fix it. If you want a workaround, make sure your password file has no EOL characters (\n or \r\n) in it. Most text editors will automatically add those to your file, so you'll have to get creative to remove them, but then the --password-file option will work. Again, we'll fix this issue pronto so you don't have to do that in the future.