DOMOSalesforceSnowflake 

Fivetran-snowflakeを活用した 経営管理情報の高度化

本取り組みの背景

弊社の基幹業務システム(特に商談管理、受注管理、PJ予算・実績・工数管理、勤怠管理など)は、Saleseforceを利用しています。一方で、今後の弊社の成長にあたり、各セールスパイプラインの可視化、タイムリーなアサイン管理、PJ別の収益性管理、各職掌に応じたKPI管理の徹底が必要になってきます。そのため、経営管理情報を一元的に集約及び可視化可能なプラットフォームを構築し、職掌分担に応じた管理指標の徹底を行き届かせることに取り組みました。
そこで、実施するにあたって以下を前提としました。

1.システム運用役務コストを最小限に

社内の情報システム部のリソースが潤沢ではなく、なるべく新しい取り組みに集中していきたいこともあり、サーバー監視、エラー監視も含め、いわゆるシステム運用作業を抑制するために、フルサーバレス・フルマネージドでの構成を検討

2.アジリティの高いアーキテクチャー

パフォーマンス面だけでなく、ライセンス価格面においても、データ量増加や利用ユーザー数増加に向けた将来を見据えた最適な形を検討

3.パフォーマンスかつ自由度の高いダッシュボード

上流システムで入力されたデータがタイムリーにダッシュボードに反映され、かつユーザビリティ的に遜色ないパフォーマンスと多様な軸により、管理指標を分析できること

4.管理指標定義の徹底 (メタデータ管理の徹底)

管理指標が部署毎で揺れ動かないよう(例えば、稼働率の場合、有給休暇をどのように取り扱うのか など)定義した上で、データモデルとして整理して保持させること

利用ソリューションの検討

本取り組みを実現する上で、利用するソリューションとしては、以下3つを検討しました。

1.Salesforce内にデータを一元管理

上流システムのデータとしてSalesforceが主たるシステムのため、データをSalesforce内に集約し、ダッシュボードもSalesforceの機能を利用することを検討。しかし、以下がノックアウト条件となり、今回の取り組みでは不採用。

・ダッシュボードを利用するすべてのユーザが、Salesforceで受注管理を行う訳ではなく、ライセンスフィーとして割高
・Salesforceのダッシュボードは、データ軸の掛け合わせに限界があり、自由度が低い
・販管費も含めた予算策定は、スプレッドシートを利用しており、Salesforceはダッシュボードに特化システムではないので、予算計画情報を連携して表示させることには不向き

2.DOMOにデータを連携し、可視化

SupershipグループでDOMOを利用していたため、DOMOの活用を検討。スプレッドシートのデータをシームレスに連携でき、グラフ描画時のパフォーマンスも高い。しかし、以下の理由により、今回の取り組みでは不採用。

・全従業員向けとなった場合、ライセンスフィーが割高
・今回の利用目的として、ただデータを可視化するだけでなく、開発アジリティの高いデータ構造にし、データを一元的に管理するDWHを構築する必要性があるため、DOMOでは不向き
・ダッシュボードだけでなく、クエリを利用した様々な用途も想定すると、DOMOは不向き

3.Snowflakeにデータを一元化し、Tableauにより可視化

スプレッドシートやsalesforceの情報をsnowflakeに連携した後、Tableauにより可視化。不要なIF構築工数や管理工数削減のため、IF基盤としてはFivetran、Tableauは、パフォーマンス・チューニングなどの対応はできないが、今回の目的に照らし合わせ、Tableau Onlineを利用する形での全体ソリューションを今回の取り組みでは採用

アーキテクチャーの全体像

Fivetran

自動でデータパイプラインを構築するSaaS型のクラウドサービス
下図は、Salesforce上の一部のデータを対象としたFivetranの設定画面。連携対象を選択するだけで、自動的にsnowflakeにテーブルを作成し、連携してくれます

 

Fivetranで連携したデータについては、下図のように対象のスキーマ上に、snowflake上にテーブルが生成されます。

気をつけるべきPOINT

・スプレッドシートのデータ連携は、カラム順がバラバラでsnowflakeに連携される
・連携元のテーブル名に”_”が含まれている場合、Fivetran上で自動的に置換される
・Salesforce上で計算して作られている項目は、連携されない
・Fivetranは、追加や変更されたデータのみに対して課金されるが、スプレッドシートの場合は、更新された際に全行更新となるため、行数が多い場合は考慮が必要

Snowflake

Fivetran上でも、データ変換は可能だが、今回の設計としては、rawデータをsnowflakeに入れ、snowflake上でデータ変換をする形での実装としました。Tableauで参照するためのデータマートの構築は、以下2点の理由から

・データをなるべくリアルタイムに近い形で参照を行う
・バッチエラーなどの障害監視を極力少なくする

基本Viewで構築し、パフォーマンスが悪い場合のみ、Serverless Taskで物理テーブルに書き出すという構成にしました。

dbt Core

運用が進むに連れて、設計書のメンテナンスがされておらず、データ処理がブラックボックス化されている。データ項目の意味がわからず、活用が進まない、あるいは数字として間違った使われ方をしている。といったことは、苦しくも少なからず発生しているのが現状ではないでしょうか。弊社では、dbt CoreをELTの標準ツールとして定めており、データの依存関係やテーブル定義、データの詳細内容を管理することとしています。

Tableau

本格的に、全社内でTableauによるダッシュボード展開をしていく場合、対象のダッシュボードをどの役職まで見せるのか、同じダッシュボードでもどのデータまで見せるのか、といった権限管理の設計に苦心することが多いのではないでしょうか。
今回、Tableauのロールとsnowflakeのロールベースのアクセス制御を利用し、対象画面へのアクセスやアクセスした画面に対する参照可能なデータの制御を実施しました。

本取り組みを振り返って

1.基幹システムの要件を知っているメンバーの参画が必須

当たり前の話ではあるのですが、Salesforce内のテーブルやカラム構造、アドオン項目の場合は特に、対象のデータがどのような用途で利用されているかが、元々の業務知識なしでは全く判断できません。本取り組みでは、元々Salesforceの構築に関わった業務メンバーが主体となり、PJを推進したため、項目の意味(例えば、日付の扱い方など)を的確にダッシュボードの要件に落とし込み、開発をスムーズに進めることができたと考えています。


2.理想に近い形でTCOを抑制

従量課金型であるsnowflakeとダッシュボード利用はとても親和性が高く、snowflakeのキャパシティとTableauのライセンス利用という形で、ユーザー数増加時にもコストインパクトは最小限に抑えることが出来たと思います。
また、今回フルマネージドの構成を取っているため、システム運用業務としてはほとんど発生せずに、既存の情報システム部メンバーへの引き継ぎも最小限で行うことができたといえます。


3.ダッシュボードのパフォーマンスはトレードオフである部分も

勤怠実績やアサイン予定表などは、フィルターも各ダッシュボードで7個ほどあり、画面表示までに10秒以上かかる画面も結果として存在しています。snowflake側のクエリは1秒未満で返してくれているので、Tableau側の描画にどうしても、時間がかかってしまう問題があります。Tableau Serverに載せ替え、パフォーマンス・チューニングをすることも検討は可能ですが、当初の目的通り、システム運用工数は可能な限り最小化することとしているため、今回はパフォーマンス要件として許容しています。

いかがだったでしょうか? どうしてもパフォーマンスとコスト(役務コストも含む)はトレードオフになる部分はありますが、今回はSaaSのみによる経営に関わる必要な管理情報の高度化事例を紹介しました。

このページをシェアする: