Tableau Japan社主催のTableau主管部門/エンジニア向けセミナーに参加してきた #tableau

tableau-seminar-20170810_logo

Tableau Japan社よりセールス向け・エンジニア向けのセミナーが各種展開されており、その中でTableau主管部門、エンジニア向けのサイジングやPoCに関するセミナーがありましたので本日(2017年08月10日)参加してきました。

開催会場はTableau Japan東京本社@銀座。銀座通りから1つ奥に入ったところにある、

Photo_17-08-10-13-21-30.782

「大倉別館」というところにオフィスがあります。(何気に今回のセミナー参加がこちらの銀座オフィス初訪問となりました)

tableau-seminar-20170810

以降、セッション内容についてレポートします。

目次

 

Welcome & Kick Off:

  • パートナー様向けに計4つのトレーニングを実施。(初心者向け/中級者向け/上級者向け/技術者向け)
  • 参加者自己紹介
  • Tableauについて

 

Tableau Serverデモ:

  • Tableau Serverをなぜ使うのか?→情報共有・運用の自動化
  • ファイルベース共有の選択肢
    • ファイルの特性に応じた共有方法の選択
    • 汎用形式のファイルはTableauの良さを生かせない。
    • ワークブック:データ自体は持っていないのでアクセス可能な手段を持っている必要がある
    • パッケージドワークブック:任意時点でのデータを含んだ形のもの、ファイル単体で閲覧可能
  • Tableau Server機能概要
    • 共有基盤:分析結果、データ
    • 分析基盤:ブラウザ上での操作
    • アクセス管理:ユーザー管理機能、サイト構造、BI on BI
    • 様々な活用:他サービスへの組み込み、カスタマイズ
  • デモ実演:サブスクライブの動作実演
    • サブスクライブ(情報通知)、パブリッシュ、ログイン、アラート、Web上での編集、Tableauデータのダウンロード、共有
    • データソースから新しいワークブックを作成する事も出来る。単一データから複数レポートを作成する事も可能
    • ユーザ作成:画面UIから作成。CSVインポートでも対応可能。
    • 管理ビュー:ユーザーがいつ何をしたかが分かる。ユーザーのアクション等は興味深い。
  • Q&A:
    • ビューは加工編集は可能?
      • ワークブックとしてダウンロードも可能。Desktopで開ける。
      • 保存した上でワークブックを加工し、パブリッシュすれば共有も可能。

 

Tableau Server内部構造:

  • 内部構造・アーキテクチャのお話。

セルフサービスBIの意義

  • 2017年02月、ベンダーが絞られてきた。(ガートナーの評価より)市場ニーズ変化に合わせた評価基準が変わり、Tableauがニューノーマルに。
  • YouTube動画の紹介:Data Monkey/ある米国コンサル企業が作成。Desktopでは出来ない部分、本来はアナリストは分析をすべき。データのパイプラインを更新する仕組みを作っておき、ユーザーに自分から取りに行ってもらう。うまくいくかどうかはツール・環境が大事。 -

  • 現在のBIの状況:従来の製品は柔軟性がなく、複雑。分析が会社内で浸透していない
    • 分析の浸透とは?
  • 流通・小売業が計画する分析テーマを例に挙げると...
    • マーケティング:顧客愛顧分析
    • マーチャンダイジング:併買分析など
    • あらゆる階層で柔軟な分析能力が求められる:バリューチェーンを通じて全ての階層において、取り組むべき分析課題が存在。
    • 従来型と自立型の違い:自立型で打席を増やし、ヒットを増やすスタイルが今後は求められる。
    • セルフサービスBIでの役割分担
  • IT部門はフレームワークの構築・運営を担う
    • 分析環境の構築
    • データ準備、ツール提供
    • Tableau Serverの導入/設定/保守
    • セキュリティとガバナンス
    • イントラネットでのWiki、コミュニティポータル構築、運用
  • ビジネス部門は分析文化の定着を担う
    • レポート・ダッシュボードの作成
    • ベストプラクティスの開発
    • トレーニングとチュートリアル
    • 啓蒙活動・データ運用促進
    • Tableau Desktop担当者
    • tableau-seminar-20170810_01
  • セルフサービスBIでの役割分担
    • IT部門の負荷軽減
    • ビジネス部門の自立化

Tableau Serverアーキテクチャ

  • 導入してゴール、ではなく導入してからがスタート。
  • Tableauはまだキャズムを超えていない。
  • Tableauアーキテクチャ
    • tableau-seminar-20170810_02
    • インストール自体は簡単だが、内部構造は結構複雑
  • Tableau Serverのステータス:プロセス構成を確認可能(管理者権限が必要)
    • プロセスの数を増やす事でパフォーマンスを改善可能
  • 構成
    • tableau-seminar-20170810_03
    • ゲートウェイ:HTTP/HTTPSでアクセスを受ける窓口。Apacheを利用。Tableauでも内部でロードバランスしている。
    • アプリケーションサーバ(vizportal.exe):Tableau独自の実装。認証、パーミッション設定、Webインターフェースの描画
    • APIサーバ(wgserver.exe):REST APIなど
    • リポジトリ:ワークブックの保存、アプリケーションのメタ情報管理など。アクティブ/パッシブ構成
    • VizQLサーバ:サイジングにおいて重要。
    • データ接続ドライバ:各種データソースへの接続
    • データサーバ:データの一元管理、ユーザーのリクエストに合わせた処理、パフォーマンスインテンシブ。
    • データエンジン(tdeserver64):v10.5から64bit版のみとなる。抽出ファイルにまつわるものを管理。ここが今後『Hyper』と呼ばれるものに変わる予定。(Tableau Acquires HyPer | Tableau Software)
    • バックグラウンダ(backgrounder):スケジュールベースの処理(抽出・サブスクリプション)を担当。メモリをあればあるだけ使ってしまう。リソースを食い散らかす懸念がある。夜間に抽出とかなら問題ないが常時抽出を行うケースだと他プロセスと利用リソースが競合してしまう場合も。
    • キャッシュサーバ:(Tips)ダッシュボードは固定サイズで!
    • Search and Browse
  • Tableau Server プロセス
    • "ライセンス":コアを消費するか否かの目安。
    • シングルノードへの導入例
    • 2ノードへの導入例
    • プロセス数の設定
    • 処理に特化した分散構成

サイジングの考え方:

  • xxx人でサイジングしたい!→ピーク時には何人くらい使う想定?そこから進めていく。
  • サイジングに関わる要素(指標)
    • (1).ユーザーの利用頻度:低-1日1回/中-1時間1回/高-毎秒
    • (2).データの更新頻度:低:1日1回/中:1時間に1回/高:常に最新
  • 更新頻度が少ない場合であれば、キャッシュの活用を検討。
    • ユーザーの利用頻度が増えてくるのであればVizQLの追加を検討。
    • データの更新頻度が多くなる場合はBackgrounderの追加を検討。
  • スケールの方法
    • スケールアップ(1台のパフォーマンスを強化)
    • スケールアウト(台数(workerノード)を横に増やす)
  • プライマリ+ワーカー:ワーカーに作業を移譲。以降ワーカーを増やすことでシーケンシャルに性能を強化

  • 処理に特化した分散構成:処理がぶつからないようなプロセス配置。
  • ライセンス形態について
    • ユーザーベースライセンス
      • 利用登録ユーザー数に応じたライセンス体系
      • Tableau Serverの利用リソースに制限無くスケール可能
      • ユーザー数単位で販売
    • コア・ベースのライセンス
      • CPUリソース(コア数)に応じたライセンス体系
      • 登録ユーザー数に制限無く、性能が許す限り利用可能
      • 主要プロセスが稼働するマシンのコア数の総数が対象
      • Backgrounder/Data Engine/Data Server/Vizportal/VizQL Server
    • どちらのライセンスでも1つの本番環境に対して2つの非本番環境での利用が可能

 

  • 高可用性:
    • Tableau的にはいきなり高可用性を!というよりも、スケールアウトをしながら高可用性を踏まえた環境へ進めて行く
    • TableauServerの標準機能で高可用性の対応は可能。3台以上の構成とする必要がある
    • tableau-seminar-20170810_07
  • 上記構成、プライマリノードではライセンス管理のみ実施。ライセンスのアクティブ確認間隔は8時間おきとなっているので、仮にプライマリサーバが落ちたとしても最大8時間x9回, 72時間は大丈夫(言い換えれば72時間以内に復旧出来なければクラスタも落ちる)。
  • また、バックアッププライマリの構成を取ることや外部ロードバランサーの活用も可能。
  • tableau-seminar-20170810_08
  • 災害対策(DR)の方法:バックアップ・リストア機能を利用
  • Tableau Serverの配備環境
    • tableau-seminar-20170810_05
    • (1)ハイパーバイザーVMへの配備:
        大原則:リソースを固定的、排他的に割り当てる/VMWare vSphereであれば待ち時間感度(Latency-Sensitivity)の設定を『高』に変更する
    • (2)IaaSクラウドVMへの配備
      • Amazon EC2:
      • Azure:

上記解説の後、参加者間でグループ分けを行い、ケース別に『どう構成を組むべきか』というディスカッションを行いました。

tableau-seminar-20170810_06

性能検証ツール紹介:

  • 性能検証関連ツールの紹介。
  • GitHubに色々転がっているツール、便利なものも多い。(※オープンソースなのでサポート外。)
  • 性能評価上での手法
    • Windowsシステムのパフォーマンス確認:タスクマネージャー
    • ある指標でWindowsシステムのパフォーマンスを記録:パフォーマンスレコーダー
    • 特定ワークブックのパフォーマンスを記録:パフォーマンスレコーダー
    • 分散構成のTableau Serverパフォーマンスを一元的に記録:TabMon★
    • Tableau Server専用負荷テストツール:Tabjolt★
    • Tableau Server関連イベント分析:Logshark★
  • ★: GitHub上に展開されているもの。

TabMon

  • TabMon
  • tableau/TabMon: A Tableau Server performance monitoring service
  • マルチノード構成のTableau Serverを一元的に監視する事が出来るモニタツール。
    • Perfmon, Tableau ProcessのJMXカウンタを収集
    • ワークブックでビジュアル分析
  • インストールはPostgreSQLが一緒に入る形
  • 結果分析:
    • インストール後にサンプルワークブックがある
    • TabMonのPostgreSQLとTableau Server内部のPostgreSQL両方に接続
    • ※サーバ名を編集する必要があるので注意。(Tableau ServerのPostgreSQLサーバー名:ls-prod-ts-1を変更)
    • カスタムアドミンビュー(Tableau Server 内部のPostgreSQL):数あるビュー・テーブルの中からhistorical_eventsを取得
    • 幾つかのダッシュボードを標準で用意

TabJolt

  • Introducing TabJolt: A point-and-run load and performance testing solution for Tableau Server | Tableau Software
  • tableau/tabjolt: Load generator for Tableau Server
  • JMeterをベースとしてTableau Server専用負荷テストツール。テスト結果をPostgreSQLに格納
  • 要件:WIndowsマシン/Tableau Desktop9.0以降:別環境に入れておいた方が良い
  • 導入方法:
    • GitHubよりダウンロード/Tableau 10.3は10.3専用パッケージになっているので注意。
    • Windowsインストーラをサポート/実行する上で必要なコンポーネント(JRE/PostgreSQL9.5)も自動インストール/実行結果がストアされるPostgres DBもインストール時に自動作成
    • インストール後、ターゲットとなるTableau Server、Viz及びWindowsパフォーマンスカウンタ収集のアカウント情報を設定(Tableau Serverのアカウントとは異なるアカウントを設定出来る)
    • Tableau ServerのJMXカウンタ取得:C:¥tabjolt¥config¥dataretriever.configを編集して指定行のコメントを解除
  • 実行:標準で3つのシナリオが用意されている。実行はbatファイル起動
    • InteractVizLocalTest.jmx ターゲットビューをロードし、インタラクティブなロードを実施
    • ViewVizLoadTest.jmx ターゲットビューのロードのみ
    • ViewInteractVizLoadTest.jmx
  • 実行後生成されたPerformanceViz.twbファイルを開く。Key Performance Indicatorsの数値、Test Failuresでエラーがないこと等を確認

LogShark

管理・保守のお作法:

  • 「成功しているプロジェクトでのプラクティス」をご紹介。
  • 登場人物:この辺り上手く担当分け出来るかがポイント。
    • 基盤担当者
    • Tableau Server管理者
    • Tableau サイト管理者、プロジェクトリーダー
    • データドライバー
    • Consumer
  • どんな管理保守活動があるのか
  • tableau-seminar-20170810_12
  • 運用時の役割分担例
  • tableau-seminar-20170810_09

モニタリング

  • Tableau Serverプロセスステータスの表示:Tableau Server Web画面より確認可能。プロセスDownからの再起動は自動実行となる
  • tabadmin status:コマンドラインユーティリティ、各プロセスの状態を表示
  • 管理ビュー
    • プレビルト管理ビュー:Tableau Server Web画面
    • カスタム管理ビュー:Tableau ServerリポジトリDBに接続し、ダッシュボードを自作:Tableau Serverの利用状況/ユーザーの活動状況/パフォーマンス(コンテンツ観点)/オブジェクトの一覧
  • TabMon:パフォーマンス(プロセス、リソース観点)

管理ビュー

見れるもの一覧は以下:

tableau-seminar-20170810_11

カスタム管理ビュー

  • tableau-seminar-20170810_10
  • Tableau ServerリポジトリにTableau Desktopで接続し、ビューを作成
  • プレビルド管理ビューをカスタマイズ
  • コンテンツ、ユーザー、グループの棚卸しに有益
  • [注意点]
    • テクニカルサポート対象外
    • バージョン変更により仕様変更あり
    • システム時間はUTC
    • イベント情報は過去183日
    • tabadmin cleanupは過去7日間より古いhttp_requestsを削除する

Tableau Server管理タスク

  • tabadmin ziplog:ログファイルをzip
  • tabadmin cleanup:
    • 稼働時:http_requestを削除
    • 停止時:ログ・テンポラリファイルを削除
    • 日次で稼働時クリーンアップ、週次で停止時クリーンアップ
    • ログファイルのサイズが過大となり、ディスクスペースを圧迫することを抑止
    • ログはトラブルシューティング用途。監査目的としての機能設計は無し
  • tabadmin backup
    • レポジトリDB内全コンテンツ・全抽出ファイルを含めバックアップを取得
  • DR環境への同期で必要

アップグレードについて

  • こまめなアップグレードを推奨。成功事例では
    • 最低年2回のアップグレード
    • マイナーバージョン-1で追随
    • 重要な障害・脆弱性事象に遭遇したら、速やかに対応メンテナンスリリースへバージョンアップ
  • アップグレードに関するポイント
    • テスト環境を用意し、バックアップからのレストアをテスト
    • ディスク容量不足に注意
      • オンラインヘルプ「不要なファイルの削除」を参照
      • tabadmin cleanup, tabadmin ziplogsによりディスク容量を空ける
    • 分散構成の場合、作業手順に注意
    • 重要なワークブックについてはローカルコピーを確認の上、保持しておく
    • コンテンツが見えない場合、インデックスの再構築により解決するケースあり
      • tabadmin reindex

サイト構成

  • サイトをまたげるのはユーザーのみ。
  • それ以外の要素についてはサイトをまたげないので注意。(データソースすらもNG)
  • あまり使わない方が良いかも?(身も蓋も無いw)/ハードな制約として製品上デザインされている。過度のサイト分けは避けるべき
  • サーバ管理者とサイト管理者の分担・権限移譲が成り立つ場合はメリット
  • サイト分けを行う一般的なパターン
    • 人事・給与関連情報の切り離し
    • ボードメンバー(取締役会)向け

グループ

  • Tableau Server内の認可設定はプロジェクト←→グループで行うべき
  • ADからグループとユーザーをインポートし、以降同期させる事ができる
  • 人事異動に伴うグループ・ユーザーの管理も大きな負担となる可能性がある
  • 極力、ADグループでTableau Server内のグループを作成し、Tableau Server内の独自グループの作成は最小限に抑える。
  • カスタム管理ビューから各種リスト取得も可能。以下はその一例
    (permissions_templates)
     - (capabilities)
     - (groups)
     - (projects)
    

コンテンツ管理の着眼点

  • データオブジェクトの重複抑制
    • データソースとワークブックを分割するようにしていく
    • パブリッシュされたデータソースからワークブックを作成
    • データの一元性と分析・可視化の多様性
    • データソース作成・ユーザーへの提供がCoEの役割
  • 問題ワークブックの特定
    • データを抱え込んでいる(data connectionのdb classがexcel_direct, textscam dataengine)
    • workbookのsizeが大きい
  • 使われていないワークブック・データソースを削除する
    • 閲覧・接続されていない
    • データも更新されていない(data_connectionsのupdated_atで判定)
    • 運用ルールとして確立する

データソースの活用イメージ

tableau-seminar-20170810_13

データ自動更新プロセスの確立

tableau-seminar-20170810_14

組み込み・APIについて:

こんな事はないか?

  • WebページにVizを埋め込んでシームレスに連携したい
    • Javascript API
  • サイト、ユーザー、パーミッション等などの設定を何度もGUIで繰り返さなければならない
    • REST API
  • 抽出作業を別のマシンで行いたい
    • Extract API(Tableau SDK)
  • 別のサーバを指定するようにワークブックを変更する必要がある
    • Document API
  • Web上のデータを取り込みたいが、コネクタが無い
    • Web Data Connector
  • モバイルアプリを作成したい
    • Mobile App Bootstarp

Javascript API

  • Tableau JavaScript API
  • API Reference
  • 埋め込みコードを使用してVizを簡単に埋め込む事が出来る。
  • その他色々出来る
    • (写真)
  • 必要なもの
    • サーバ上のViz
    • HTMLページの記述スキル
    • Javascriptライブラリ:tableau-2.js
    • Javascriptの記述スキル

REST API

  • Tableau Server REST API
  • 3つのP
    • Provisioning:プロビジョニング
    • Permission:パーミッション
    • Publish:パブリッシュ
  • 使用方法
    • Tableau ServerのWebリクエストを送信
    • レスポンスはXML
    • CRUD操作(POST/GET/PUT/DELETE)を実施可能
  • 必要なもの
    • Tableau Server: 十分なパーミッションのある認証資格情報
    • REST API: HTTPをサポートするプログラミング言語スキル

Document API

Web Data Connector(WDC)

  • Web データ コネクタ
  • Webでアクセス出来るデータをTableauに取り込むためのコネクタ
  • WDC開発によるお客様サービスで「データの変換と利用可能なデータを制御」や「抽出の作成」等が行えるようになる
  • 以下のリソースについてはコネクタが作成されている。
    • tableau-seminar-20170810_15
  • WDC 2フェーズモデル
  • 作成フロー
    • 1.Web上に取り込みたいデータがある
    • 2.取り込みたいデータ用のWDCがあるかを確認
    • 3.無い場合、WDCを作成
      • WDC SDKを取得し、WDCライブラリ、シミュレーター、サンプルコードを入手
      • Web Data Connector Home
      • SDKに含まれるサンプル及びAPIリファレンスを参照しつつ、html,jsを開発
      • WDC API Reference
      • SDKに含まれるWDCシミュレータを使いテスト実施
    • 4.Tableau Desktop実行
  • 必要なもの
    • Web上のデータソース
    • Webページ
    • WDC SDK
    • WDCライブラリ

まとめ:Tableau開発関連プラットフォームの一覧

tableau-seminar-20170810_16

まとめ

全体を踏まえての質疑応答を経てセミナーとしては終了。

というわけでTableau ServerのサイジングやPoC等に関する各種トピックの解説セミナーのレポートでした。広範に渡るトピックについて比較的網羅性のあるまとめ情報を収集・整理する事が出来、実りの多いセミナーであったと思います。Tableau Japanの皆様、ありがとうございました!