Tableau Prep を快適に利用するためにフロー設計時に知っておきたい 3 つのポイント

Tableau Prep を使ったデータ準備作業で、知っておくと準備作業やデータ分析の時に得をする 3 つのポイントを紹介します。

今回の記事では、Tableau Prep を快適に動かすために、フロー設計時に知っておきたい 3 つのポイントをご紹介したいと思います。

同じ処理結果を得るにしても、出来るだけ処理効率を良くすることを意識してフローを作成することで、処理パフォーマンスが劇的に変わって来るケースもありますので、是非ご参考ください。

Point 1: サンプルで利用するデータ量を減らしてフロー設計作業をスピードアップ

Tableau Prep では、接続したデータソースからデータを読み込む際に、デフォルトでサンプリングが有効になり、データを部分的に取得します。このため、データペインに表示されるデータは必ずしもデータの全量ではないということには注意が必要です。これはフローを設計する際のパフォーマンスを考慮したデザインを採用しているためです (実際に「フロー実行時」には、データの全量が読み込まれ全データに対する処理が実行されますのでご安心ください)。

接続ノードで「データサンプル」のタブを確認すると、フローに含めるデータ量として、デフォルトである「規定のサンプル量」の他にも「すべてのデータを利用」や「固定の行数」が選べることがわかります。

前処理設計に利用するデータの網羅性を優先する場合 (例えば、存在するすべてのデータを確認して、個別の変換やグルーピングを行いたいなど)、「すべてのデータを利用する」を選択する必要があるかも知れません。しかし、含まれるデータの内容を個別に確認する必要が無く、全体の一部のみを利用してフローのデザインができる場合は、「固定の行数」で十分少ない行数を指定する事で、フローをデザインする時に読み込むデータ量を減らし、処理を軽くすることができます。

とりあえず少量のデータでフローの設計をサクサク進めたいという場合は「固定の行数」を選択してみることをお試しください。

Point 2: 出来るだけ早い段階で必要なデータに絞り込む

不必要なデータをできるだけフローの早い段階で除外し、フローの中で処理するデータを出来るだけ少なくするということは、フローを設計する上でとても重要なポイントです。

例えば、過去 12 カ月分のトランザクション表のデータがあって、マスターデータと結合したとします。結合の後でやはり直近の 1 カ月分のレポートしか見ないことがわかり、最終結果として直近 1 カ月のみのデータにフィルタリングした場合、過去の 11 カ月分のデータとその結合処理は実は必要のない処理だったことになります。このような無駄が発生しないように、できるだけ接続の段階で不要なデータをフィルタリングしてしまいましょう。

Tableau Prep では接続時にデータソースから読み込まれたデータは Tableau Prep 内の Hyper キャッシュに格納されます。フローで処理されるデータ量と利用されるリソースを最小限に抑えるためには、データソースに最初に接続する「インプットステップ」にて必要なデータのみをフィルタリングするのが効果的です。以下に「インプットステップ」で「オーダー日」を今日の日付から直近 30 日に絞る計算式フィルターを作成する様子を表しています。
また、列についても、分析に必要のない列をこの段階で削除してしまえば、後続の処理もシンプルに見やすくなるので、フローの可読性の観点からもお勧めです。

Point 3: 分析に必要なレベルにデータを集計する

データを可視化する際に、適切な粒度にデータを集計してから分析を行うというのも、重要なポイントです。

例えば、24 時間 5 年間 10 分毎にセンサーから取得された気温データがあるとします。ここで、5 年間の気温の変化傾向 (たとえば地球温暖化の傾向があるかなど) を観察したいと言った場合に、たとえ 10 分単位の詳細な変化のデータがあったとしても、逆に細か過ぎて分析には適さない場合があります。

このような場合はデータの前処理段階で、データを 1 日の単位で集計し、逆に粒度を荒くすることで可視化もしやすくなりますし、同時に処理行数を減らしてパフォーマンスを向上させることができます。下の例は、10 分毎に取得されたデータ (上段) と 1 日毎に平均を集約した気温 (下段) の 5 年間の推移です。1 日毎に平均を集約することで傾向も見やすくなりますし、取扱うデータ量が 144 分の 1 に減っています。

また、集約処理と結合処理がある場合は、どちらを先にするか、その順番も重要です。処理のパフォーマンスを考えた場合、必ず集約処理を先に持ってくるように心がけます。下の例のようにトランザクションデータを大きなレベルに集約してから、マスターデータと結合することで、処理データ量が小さくなり、結合処理のパフォーマンスが劇的に改善するケースもあります。

以上、Tableau Prep を快適にご利用いただくためのポイントをご紹介しました。
フローの無駄をできるだけ少なくして、より快適に Tableau Prep をご利用いただくヒントになれば幸いです。