Tableauでデータを結合するよりDr.Sumでビューをつくろう【データベース】

#最初に
日本で20年以上も愛されている、国産の超高速集計データベースであるDr.Sum
世界でも日本でも大人気のセルフサービスBIツールの代表格であるTableau

2021年9月22日のDr.Sumのバージョンアップにより、この２つのツールの接続が可能になりました。

さっそく動きを見てみたくて、実際につないでみました❗️


###Dr.Sum とは

https://www.wingarc.com/product/dr_sum/

https://www.wingarc.com/product/dr_sum/ds20th-anniversary/index.html

<details><summary>【詳細はこちら】**Dr.Sum**は10億件のデータを1秒台で集計できる超高速データベースツールです。</summary><div>
高速のディスク集計と、ハイブリッドで使える超高速のメモリ集計をつかいながら、最適な運用コストでのパフォーマンスを実現します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/e8924330-f537-38f2-e276-ecdd0d96341d.png)

また、Dr.Sumは集計速度だけでなく、データベース構築経験の少ない方でもGUI操作でDBをつくったり、データを取り込んだりできます。
データベース周りにそこまで強くないぼくのような人間でも、気軽にデータハンドリングができるところが素敵です。

さて、Dr.Sumという製品は単純にデータベースがあるだけではなく、様々なオプション製品を加えることで、多様な使い方が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/12be6f13-7354-f58a-773c-b43934d30666.png)

詳しくは公式ホームページをご参照いただきたいのですが、
✅ データを抜いて
✅ データを加工して
✅ データを貯めて
✅ データを高速集計する
ことが可能となります。

[製品の一覧はこちら](https://www.wingarc.com/product/dr_sum/lineup/index.html)

</div></details>


###Tableau とは
https://www.tableau.com/ja-jp?_fsi=B8ciS5wl

https://datasaber.world/

<details><summary>【詳細はこちら】**Tableau**は世界で愛される、直感的操作でデータ分析が実現できるBIツールです</summary><div>

ぼくが思う、Tableauの素晴らしい点は２つ。
ひとつは、個人がデータを武器に価値を創造していくときの最強のツールであるという点
もうひとつは、コミュニティーという共通の目標を持つ企業をまたいだ社会の実現の両者を兼ね備えている点です。
個のスキルを高め、集団で収斂するという考えです。

ツールだけで見ても、「データを分析する」という視点に立ち、データの準備が簡単にできたり、
直感的に操作で、思考を止めずにデータの分析ができるという優れものです。

DataSaberという資格制度が特徴的で、師匠が弟子を育てる形で企業を超えたTableau文化が根付いております。
ツールの性能やそのコミュニティー、どれも世界クラスの製品です。
</div></details>

　　　

:::note warn
2021年9月22日の段階では、Dr.Sum接続はTableau PrepとTableau Onlineには対応していません。
本記事もTableau Serverとの接続を記載します。
:::


さて、冒頭からキャッチーなことを書いてしまっていますが、Tableauの結合の機能が劣っているとかそういうことではございません！
システムエンジニアの観点から、データベースの加工などのデータマートをつくる領域は、UIをつくるアプリケーション層よりも、データベース層でつくる方が、メンテナンス性が向上するよ、というお話しです。

まずはその理由について、解説をさせていただこうと思います。


#なぜDr.Sumのビューが良いのか
この記事を読んでいらっしゃるTableauユーザーの方は、全体設計のことをよくお考えになられる方だと思います。
そうでなければデータベースの必要性をなかなか感じにくいものですから・・・。

BIだけに限った話ではありませんが、ミドルウェアにはアプリケーション部分とデータベース部分があります。
アプリケーション層は現場の皆様に見えるところで、「簡単・直感的な操作」が必要になります。
データベースそうは専門知識が必要になりますが、アプリケーション側でつくる手間が省けます。

これがTableauのデータソース結合とDr.Sumのビューの関係にあてはまります。


図解すると、このようになります。

![Tableauワークブックでつくる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/37d3cc01-def3-d161-976e-2c4550976bd5.png)

上図ではTableau側で個別に自由にデータの加工ができますが、テーブル情報の何かが変わると、影響範囲は全ワークブックになり、メンテナンスが大変ですね。


![DSビューで結合する.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/313ede69-7b55-e67a-5f5f-f597b01f403f.png)

もし、同じようにデータをくっつけるのであれば、データベース側でおこなってしまった方が、メンテナンスはとても楽になります。
そしてデータガバナンス（統治）を考えても、データに詳しい人がビューをつくり、Tableauユーザーはそのつくられたビューを参照するようにすると、データガバナンスが効き、正しいデータを活用できることになります。

#Dr.Sumのビューを見てみよう
ここまで言っておいて、Dr.Sumのビューが使いにくかったら、何の意味もありません。
使い方を解説していきましょう。

まず最初に、Tableauのデータソース結合の画面です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/21c66b6e-7ec1-d6d1-0c1b-879d5f7306e9.png)
わかりやすいですねぇ。
さすがはアプリケーション層を強く意識した製品です。

この場合ですと、T売上実績_100万件というデータを中心としたスタースキーマで、マスタ結合がおこなわれています。
データ結合についても、T売上実績_100万件テーブルとM店舗テーブルで同じ名前の項目があったら、**結合の候補として挙げてくれます。**
さすがはセルフサービスBI、ユーザー現場層に向けた製品と言えます。

ではDr.Sumはどうでしょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657414/92759735-e3f6-59d3-238c-145a68c1e102.png)

ちょっとたくさんテーブルがくっついちゃっていますが、もしAccessを触ったことのある方だったら見覚えのある画面かと思います。
Accessのクエリのデザインビューに似ています。

画面真ん中で、各テーブルのキーを結合させています。
今回の場合、真ん中にあるT売上実績_100万件テーブルを中心に、各マスタを結合させています。

真ん中下のグリッドの部分は、結合した項目の中で、何を表示させるかを選択しています。
ここをいじるだけで、Tableauに公開してもよい項目、NGな項目を選択するわけですね。

一番下はSEさん向け。
どのようなSQLになるかを解説しています。
今回のように結合が複雑な場合など、どのような結合法則になっているかを確認したりします。

このようにGUIで表現することもできますし、最初からSQLをゴリゴリ書いてビューをつくることもできます。
データベース層なので、対象はSEさんやAccessのクエリが操作できる人、となります。

しかし、ビューの作成は簡単な内容なので、少し学んでいただけたら、すぐにゴリゴリ使えるような設定かなって思います。

#最後に
いかがだったでしょうか。
データの結合や加工をどこでおこなうか、これには答えはありません。
誰にとって、何が最適かというのは、その時々で考える必要があります。

Tableauをひとりでつかうのではなくみんなで使うようになってきたときに、データの加工部分はデータベース層でおこなった方が、ハンドリングが効きやすいよ、ということを覚えてくださったら幸いです。

他にもTableauとDr.Sumの関連記事を書いておりますので、ぜひご覧になってください。

https://qiita.com/Ryo---san/items/f9693757d117bdd30f1c

https://qiita.com/Ryo---san/items/9461f19aea9f2badd444

https://qiita.com/Ryo---san/items/186084aff28d25ad5ece

https://qiita.com/Ryo---san/items/0fc608c476c3f5a42e0e