Tableau Bridge for Linuxやってみた

Tableau Bridge for Linuxやってみた

こんにちは、Tableau SEのShintaroです。今回はTableauのバージョン2023.3で追加されたTableau BridgeをLinuxで動かす検証手順のようなものを紹介したいと思います。前提情報は下記となります。クラウド→AWSOS→CentOS 7 with HVMスペック→m5.xlarge (4vCPU, 16GB)ストレージ→150GiB検証したデータソース→MySQL、PostgreSQL、Redshift作業PC→Macでのターミナルまた、具体的なアーキテクチャーはこのようになっています。Bastionは踏み台のことで、Tableau DesktopからはVPNを通じて各データソースにアクセスできるよう設定しておきました。今回はあくまでTableau BridgeをLinuxで動かすまでの手順のご紹介となりますので、AWSでの構築については割愛します。1点重要な情報としては、Tableau Bridgeは基本的にはアウトバウンド通信しかしないので、Bridge→DB/DWH(アウトバウンド)、およびDB/DWH←Bridge(インバウンド)の許可、およびTableau Cloudへのアクセス、つまりインターネットへのアウトバウンド許可は必須となってきます。Tableau CloudのIPアドレスについては、Podごとに異なり、こちらに記載がありますので、ご参照ください。なお、実際の運用では、AWSやLinuxはもちろん、Dockerの知識は必要となり、オーケストレーションしていこうとするとKubernetesの知識もあると良いかもしれません。ただし、今回のやってみた!はそこらへんがよくわからない方に向けてもなるべく丁寧に記載していきます。では開始!(0) AWSで各サービスの起動これは言わずもがななので、はしょりますが、各サーバーや、サーバーを介したDB/DWHへの接続は確認しておきましょう。(1) 作業PCからBastion→CentOSへアクセスssh -i [キーパス] ec2-user@[パブリックIP] ssh -i [キーパス] centos@[内部IP]これも言わずもがなでしょうか。もしここから・・・という場合はsshのコマンドの意味をインターネットでご確認ください。 アクセスできたら、ユーザーがcentosとなります。(2) Dockerエンジンのインストールもし、Dockerエンジンがすでにインストールされているイメージを利用してEC2を立ち上げた場合はここはスキップで構いません。また、 Dockerがアップデートされたらここはうまくいかなくなる可能性もあるので、ホームページでチェックしたほうが無難となります。最初にリポジトリを設定し、sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoDockerをインストールします。sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginバージョンを指定する場合は、 yum list docker-ce --showduplicates | sort -rRead More

管理ビュー for User Engagement

管理ビュー for User Engagement

SalesforceでTableauのSEを担当しているShintaroです。はじめての投稿となります。今回はTableau Serverの管理ビューのご紹介となります。いきなりですが、Tableau Serverの管理者の方、管理ビューはどのくらい使っていますか?管理ビューはTableau Server内のサイトやプロジェクトにおいて、様々な種類のアクティビティをモニタリングできます。https://help.tableau.com/current/server/ja-jp/adminview.htm管理ビューにはプレビルト管理ビューとカスタム管理ビューがあり、プレビルト管理ビューはあらかじめ様々な単位のダッシュボードが用意されており、手軽に各単位のKPIをチェックすることができます。例えば、ビューのパフォーマンスやユーザーのアクション、ロード時間や使用量の統計値などです。https://help.tableau.com/current/server/ja-jp/adminview_bucket.htm一方、カスタム管理ビューは、リポジトリ(あらゆるユーザーインタラクション、抽出の更新などに関するデータを格納している内部のPostgreSQL)にアクセスして、御客様自身で管理ビューを作ることができる機能となっています。今回は後者のカスタム管理ビューについて取り上げますが、やっぱり御客様自身で・・・とはいってもリポジトリはデータ構造がやや複雑で、よくお問合せをいただきます。リポジトリに接続して、データを見ていくのは少しハードルが高く、慣れが必要ですよね。Tableauのコミュニティでは、様々な観点での管理ビューのテンプレートに関してインターネット上に転がっていますが、今回はユーザーエンゲージメントという観点で弊社のSEメンバーで作ったテンプレートをご紹介します。まずTableauを通じたデータドリブン文化の醸成の道のりには、Tableauをどう社内で定着化させるか、という課題があり、Tableau Serverの使用状況を的確に把握する必要があります。そんな中で既定のプレビルト管理ビューでは、各ユーザーのアクションは特定できるものの、どのワークブックがどのくらい見られているか、あるいはどのユーザーが積極的に活用、あるいは逆に課題感を感じ、あまり活用をしていないかを探るには使い勝手が悪いです。今回は、そういった課題に対し、「Tableauが定着し、安定飛行ができるまで」の点で、「対象となるロール・ユーザ・部門の利用が目標に達しているか・達していない場合、利活用の濃淡により対策を打つためのドリルダウン」を意思決定としたテンプレートとなるワークブックをご用意しました。管理ビューテンプレートの利用方法(PDF)はコチラテンプレートのダウンロードはコチラ(組織テーブルを導入したテンプレートはコチラ)ワークブックは3つのダッシュボードで構成されています。① ユーザーエンゲージメントの指標分析こちらはいわゆるまとめのようなダッシュボードになっており、・全体としてどのくらいのユーザーがいるか・それぞれのロールでのワークブックへのアクセス率はどうか・アクセス率の推移は計画どおりかのような情報を知るために活用するよう設計されており、ロール別のアクセス率や推移を確認可能です。② ワークブックの閲覧数分析こちらはワークブック単位で着目したダッシュボードとなっており、閲覧数とユニークユーザー数をワークブック単位で追える内容になっています。主に、・ユーザーはワークブックにアクセスしているか・よくアクセスされている、またはアクセスされないワークブックはどれかなどを把握でき、例えば公開してから閲覧数が伸び悩んでいるワークブックを特定し、改善を促す等の措置を施すことに使えます。③ ワークブック所有者の貢献度分析こちらは非常にユニークです。ワークブック所有者という軸とアクセス数という軸でパブリッシャーを4象限に分割しています。・Creator/Explorerライセンスの中でも良く利用しているユーザー、または期待通りの利用に至っていないユーザーの把握(セグメントで定義)・各セグメント別のユーザーに対して、より利用率を上げてもらう為に、どのようにアクションするべきかなどの利用シーンが想定され、Tableauチャンピオン候補、トレーニング育成候補、適切なKPIの設定を支援する候補のパブリッシャーを特定できるので、ユーザーエンゲージメント向上に大いに期待できる可能性があります。また、あらかじめ下記のような組織テーブル(サンプル)を用意し、データを追加することで例えば部門別の使用状況把握や改善施策のアクションなどができるようになります。いかがでしたでしょうか。なお今回のものはあくまでテンプレートで、そのままご活用いただくのも結構ですし、こちらのテンプレートをもとに、カスタマイズをして管理ビューを使いこなしていただけると幸いです。Read More

Tableau Metadata APIを使ってみよう!

Tableau Metadata APIを使ってみよう!

 Tableau Server/Onlineには各種API機能がありますが、今日はあまり目立たない存在のMetadata APIについて取り上げたいと思います。なかなか便利なAPIですのでTableau Server管理者やコンテンツ管理者の方はぜひご一読ください。Tableau Metadata APIとは、こちらのヘルプに概要が書かれていますが、ワークブックやデータソースのつながりを、APIを通じて取得できるものです。データカタログの機能を持つData Management Add-onと同じタイミングでリリースされましたが、実はAdd-onライセンスがなくてもこのAPIは使えます。利用するにはサーバでの準備が必要です(Tableau Onlineは常にONなので準備不要)。まずバージョンが2019.3以上のサーバを利用していること、そしてサーバでmetadata-servicesがアクティベートされていることです。アクティベートしていないと、API呼び出し時にこんなエラーがでます。管理者ユーザでサーバにログインし、以下のコマンドを打って機能をアクティベートしましょう。tsm maintenance metadata-services enableしばらくするとメタデータAPIサービスが起動されます。GUIでAPIが有効になったかを確認しましょう。Metadata APIはGraphiQLという技術を使っており、UIも搭載しています。Tableau ServerのURLの後半を変更してUIを呼び出します(リンク等がないので手動でURL欄に打ち込んでください)http://(またはhttps://)サーバ名/metadata/graphiql/表示された画面でGraphQLクエリを記述することにより、メタデータ検索が行なえます。左側のペインに試しに以下を打って再生ボタンを押してみましょう。最初に表示されているコメントは全部消してしまってOKです。query{  workbooks{    name  }}右側にサーバ上のワークブック名がずらっと出てくるはずです(このサーバでは2つしかブックがないため2つだけ表示)このGUIを使って自分が欲しい情報を、GraphQLクエリを使って取ってくることができます。補完機能が充実しているので手打ちで色々試すと面白いですよ。GraphQLはオブジェクト間のつながりをもとにデータを芋づる式に取ってきますので、例えばサーバにパブリッシュされたワークブックの全カラムを取ってきて、そのカラムに紐付いているワークブックをとってきて、等をクエリとして書いていきます。参照可能なオブジェクトを補完機能が教えてくれます。例えば「workb」と打つだけで、ワークブックを取るための候補が出てきます。名前が取りたければ中括弧のあとにnameと入れれば出力されます。試しに以下を貼り付けて実行してみてください。そのサーバにある「ワークブックの名前とオーナー」から「そのワークブックが参照しているデータソース」と「そのワークブックが参照しているデータベース」の名前を出し、さらに「データベースのテーブルの名前」も出します。query{  workbooks {    id    name    owner {      id      name    }    upstreamDatasources {      id      name Read More

Tableau Prepで半角カナを全角カナに変換(Pythonを利用)

Tableau Prepで半角カナを全角カナに変換(Pythonを利用)

Tableau Prep Builderはデータクリーニングのために様々なクリーニング作業ができますが、「半角カナから全角カナに変換」というメニューは有りません(2020年2月現在)。今回のブログでは、前回作ったPython環境を使って、半角全角変換処理を実施したいと思います。 なお、今はまだTableau Prep Builderだけでは半角全角変換はできませんが、こちらの投票サイトより機能リクエストができるので、是非標準機能として搭載されるよう皆さん投票をお願いします。 では手順をご紹介します。 Tableau Prepを起動し、半角カナが含まれているファイルやデータベースを入力として定義します。 今回はサンプルスーパーストアのデータで、製品名の一部を半角にしてみました。半角にしたのは「パック」と「コンロ」だけで、その他のカナは全角です。 Pythonを呼び出すには、「スクリプト」を配置します。+をクリックして「スクリプト」を選択します。最初は赤い!アイコンが出ますが、気にせず設定を続けます。 「接続タイプ」の「Tableau Python(Tabpy) Server」を選択します。つぎに「サーバー」の「Tableau Python(Tabpy) Serverに接続」ボタンをクリックします。 「サーバー」にlocalhost、「ポート」に9004を入力します。ユーザやパスワードは空欄でかまいません。「サインイン」ボタンをクリックします。 スクリプトを準備します。下記青字を全部コピーし、メモ帳やエディタに貼り付けて保存してください。今回は「製品名」というフィールドを半角から全角に変換するスクリプトを用意しました。単純に1列のデータで半角を全角に変更するだけなら、2箇所あるdf['製品名']をご自身のデータの列名に変更するだけでOKです。任意のフォルダに名前をつけて保存します。今回私はc:\python\hankaku_zenkaku.pyという名前で保存しました。 import mojimoji def hankaku_zenkaku(df):     df['製品名'] = df['製品名'] .apply(mojimoji.han_to_zen, ascii=False, digit=False)     return df 最後にPythonのスクリプトを参照します。先程保存した.pyのファイルを参照し、「関数名」には先程のスクリプトの関数名、defの後の「hankaku_zenkaku」を入力します。 すべてを入力すると自動的にスクリプトが実行され、アイコンの上の!マークが消えます。「製品名」の値を確認すると、もう全角に変換されています。 今回のテストでは少し意地悪に「パック」という文字で変換してみました。半角カナは「パ」等の文字を2文字にしてしまうため、それを全角に変換するのは処理として難しいのですが、ちゃんと1文字の「パ」に変換してくれていました。 半角全角の変換には「mojimoji」を利用しました。前回の手順でpython上にmojimojiと、mojimojiを動作させるために必要なものをインストールしていました。そうするとスクリプトを数行用意するだけで文字の変換をPythonに実行させることができました。 今回はTableau Prep BuilderとPythonを連携させ、半角カナを全角カナに変換する処理を作りました。古いシステムからデータを取ったら半角カナばっかりで困っている、という方、クリーニングのフローの途中で半角を全角に変換する、などに是非活用してみてください。 Read More

Tableau+Python連携環境(Tabpy)をDockerで作ろう

Tableau+Python連携環境(Tabpy)をDockerで作ろう

Tableau Desktop、Tableau Server、Tableau PrepとPythonを連携できる、というのをご存知の方もいらっしゃると思いますが、連携させるための環境をつくるのに尻込みされている方々、こちらの手順で簡単に環境をつくることができます。コンテナ技術のDockerを使って、Tabpyサーバを作ってみましょう。 まず、環境を作りたいマシンにDockerをインストールします。今回は私のPC(Windows 10)に環境を作ります。 Dockerのダウンロードはこちらから。 インストーラーを実行します。選択項目はすべて初期値のままでOKを押下。 再起動が完了すると以下のような画面があらわれ、Dockerの環境が整います。 再起動が完了すると以下のような画面があらわれ、Dockerの環境が整います。 次にDockerファイルを準備します。DockerファイルはDocker上につくるコンテナイメージを定義したテキストファイルです。メモ帳やエディタ等を使って作成します。 今回はCent OSにPython3とTabpy、そしてTabpyを使って全角半角の文字変換を行いたかったのでそのライブラリを入れるように書きました。よくわからなければとりあえずこのままの状態で、下記青字部分をコピーし、メモ帳に貼り付けてPC内のフォルダにDockerfileという名前で保存しましょう。 # Cent OSをベースイメージとして使用 FROM centos:latest # Tabpyとその前提パッケージ、半角変換のためのmojimojiとその前提パッケージをインストール RUN yum install -y python3 RUN yum install -y gcc-c++ RUN yum install -y python3-devel RUN python3 -m pip install --upgrade pip RUN pipRead More

Tableau Prep Conductor を使って見よう!

Tableau Prep Conductor を使って見よう!

みなさん、こんにちは bashii です。 Tableau 2019.1 の発表にて、Prep Conductorが発表になりました。さて、”Prep Conductor"とはいったいどのようなものなのでしょうか? (以下資料はβ版の画面を利用しています。実際の2019.1の画面とは異なる可能性があります。当資料はTableau社の正式なレビューを受けていません。最新技術情報の共有を目的とした一技術文書としての公開となります。) ◇ Prep Conductor とは何ですか? Tableau はTableau Prepというデータ準備のツールを提供しており、PC上で複雑なデータ前処理をフロー化してバッチ実行するプロダクトを提供しています。前処理した結果は、CSV、Tableau の抽出、またはTableau Serverにデータソースとしてパブリッシュし、Tableau Desktopから可視化、分析をすることができます。可視化をする際に複雑な前準備を完了した状態の結果に対してアクセスすることで、大元のデータソースへのアクセス処理を回避し、分析処理のパフォーマンス向上が望めます。 一言でいえば、「Prep Conductor 」はいままでPC上で実行していたPrepフローをサーバー側で一括管理、スケジュール実行する機能です。 例えば… ① 当日の売り上げを夜間に締めて、マスターデータや他のデータと結合して前処理し、分析用のデータソースを作成、パブリッシュしておく (Prep Conductorでバッチのスケジュール実行) ② 翌日の朝、ユーザーに①で前処理しておいたデータソースを提供し自由に分析してもらう (Tableau Desktop または Tableau Server の Web-Edit を利用する)といった運用を考えるとイメージが付きやすいでしょうか。 なお、Prep ConductorはTableau Server / Tableau Online のコンポーネントとして含まれます。(別途ライセンスを有効化することで利用可能となります。)ですので、PrepRead More