OSX(Mojave) でも tabcmd を使いたい(備忘録)

みんな大好きTableau 😊

Tableau Desktopから作成したVizやデータソースを毎度手動でパブリッシュするのが面倒😢自動化したい🥺

そんな願いを叶えるのが、Tableau Desktop上で行う操作をコマンドライン上で実行することができる tabcmd です👏

しかしながら困ったことにこの tabcmd、Windows/Linux用しか用意されていません😨

この記事は tabcmd をOSXで利用するための備忘録です✨

① tabcmd (Linux用)のダウンロード

公式サイト よりtabcmd(Linux用) をダウンロードします。

Tableau Serverとバージョンを合わせる必要があるので、適宜必要なバージョンのtabcmdを用意してください。(この記事では、tableau-tabcmd-2019-2-2_all.deb を利用します。)

② 必要ファイルの抽出

用意した tableau-tabcmd-2019-2-2_all.deb を展開し、更に中にある data.tar.gz を展開します。

展開したファイルのうち、opt/otableau/tabcmd/bin/tabcmd が今回必要なスクリプトです。

お好きな場所に移動してパスを通しておきましょう。

$ tar xvzf tableau-tabcmd-2019-2-2_all.deb
$ cd tableau-tabcmd-2019-2-2_all
$ tar xvzf data.tar.gz
$ cp opt/otableau/tabcmd/bin/tabcmd ./

③ tabcmd の実行

あとは、スクリプトを実行するだけです。

$ tabcmd
Tableau Server Command Line Utility -- 20192.19.0718.1543

tabcmd help             -- tabcmd コマンドのヘルプ
tabcmd help <a command> -- 特定のコマンドのヘルプを表示
tabcmd help commands    -- 利用可能なすべてのコマンドをリスト

tabcmd help <a command> | commands
コマンド オプション:
グローバル オプション:
      --[no-]cookie             サインイン時にセッション ID
                                を保存しません。後続のコマンドを実行する際には、再度サインインが必要になります。指定しない場合
                                、既定ではセッション ID が保存されます
   -c,--use-certificate         クライアント証明書を使用してサインインしてください
   -h,--help                    tabcmd のヘルプを表示
      --no-certcheck            SSL 証明書を検証しない
      --no-prompt               パスワードの入力を求めない
      --no-proxy                HTTP プロキシを使用しない
   -p,--password <PASSWORD>     指定された Tableau Server パスワードを使用
      --password-file <FILE>    ファイルから Tableau Server パスワードを読み込む
   -s,--server <URL>            指定された Tableau Server URL
                                を使用します。プロトコルが指定されていない場合は、http:// であると見なされます
   -t,--site <SITEID>           指定した Tableau Server サイトを使用します。空の文字列 ('')
                                を指定すると、既定のサイトが強制的に使用されます
      --timeout <SECONDS>
                                サーバーがコマンドの処理が完了するまで待機する時間を秒単位で指定します。既定では、サーバーから
                                応答が返ってくるまで待機します
   -u,--username <USER>         指定された Tableau Server ユーザー名を使用
   -x,--proxy <HOST:PORT>       指定された HTTP プロキシを使用

ログイン後にコマンドが叩けるようになるので、ログインします。

./tabcmd login -s https://*****.online.tableau.com -u *****@hogehoge.com

証明書関連で怒られる場合には、証明書検証をスキップするオプション --no-certcheck を付与。

./tabcmd login --no-certcheck-s https://*****.online.tableau.com -u *****@hogehoge.com