分析しやすいデータ構造を作る1 – 「分析しやすい」データ構造とは

目次

・「分析しやすい」データ構造とは
テーブルの関連付け
テーブルの連結
テーブルのJoin

「分析しやすい」データ構造とは

こんにちは。Deckです。

Qlik Senseは初心者にも簡単にデータ分析ができるように作られたソフトウェアですが、それでもテーブル数が増えアプリ作成がある程度の規模になるとそれらを分析しやすい構造に組み上げるのは必須といえます。

そこで今回の記事では「分析しやすいデータ構造とはどんなものか」「データ構造を作るためにテーブルを操作する方法」を解説します。

そもそも、Qlik Senseでの「分析しやすい」データ構造とは次の2つの条件をよく満たすものと言えます。

  1. データ構造がQlik Senseにとって扱いやすい形であること
  2. データ構造を人間が見たとき、つくりが理解しやすいこと

1については言うまでもありませんね。データ構造がQlik Senseで扱うことができないと分析が立ちいかなくなってしまいます。

そして2も重要です。データの集計自体を行うのはQlik Senseの役目とはいえ、その仕組みを作るのは人間です。

その両方のバランスをとってこそ「分析しやすい」データ構造を作ることができます。

テーブルの紐づきから見るデータ構造

「分析しやすい」データ構造と「分析しにくい」データ構造の例を挙げると、例えばこうなります。

上はちょっと極端な例ですが、「分析しやすい」データ構造のほうがよりスッキリしていることがわかると思います。

良い例であるデータ構造は次のようなルールに従って作られています。

  • 分析の中心となるファクトテーブルを1つ、ファクトテーブルに紐づくマスターテーブルを作る
  • 関連付けされたテーブル同士は1つの項目で紐づけ、「$Syn」テーブルが作られないようにする
  • テーブル同士の関連付けをループさせない

それぞれについて、改善点を図で説明しながら解説します。

ファクトテーブルとマスターテーブル

データ構造の中心と言えるファクトテーブルトランザクションテーブルとも呼ばれ、売上明細や販売計画など「何が起こったか」「何をする予定か」、いわゆる時系列に従ったデータを表します。

ファクトテーブルを複数取り込むことになった場合、それらは連結によって1つにまとめることが望ましいです。

マスターテーブルはファクトテーブルから参照するためのテーブルです。

「年月日から曜日を取り出す」、「複数の商品をカテゴリにまとめる」など用途に沿ったテーブルを用意しましょう。

上の例で問題になっているのはファクトテーブルが「売上」「予算」の2つに分かれたまま取り込んでいることです。

テーブルの関連付け、「$Syn」テーブル

テーブル同士の関連付けは1つ項目のみで紐づくことが望ましいです。

Qlik Senseではテーブルの関連付けが多対多で紐づくことはできませんが、このような場合は自動的に「$Syn」テーブルによって多対多の関連付けを解消してくれます。

ただし、本来ならば不必要な「$Syn」テーブルがあることで構造がややこしくなりますし、あまり多くの「$Syn」テーブルがあるとパフォーマンスにも悪影響があります。

ループ構造

このように関連付けがループするとテーブルを跨いだ集計時にルートが定まらないため関連付けが切られてしまいます。

図の赤い点線の部分は疎結合と呼ばれ、関連付けを利用することができません。

ループのあるデータ構造では集計時に予想外の結果が生じる可能性もあります。データ構造にループを発生させないように心がけましょう。

まとめ

上に書いたポイントに従ってデータ構造を構築すればテーブル数が増えたとしてもモデルが破綻することはないでしょう。

次回からの記事ではデータ構造を形作る「関連付け」「テーブルの結合(Concatenate)」「テーブルのJoin」を解説します。

分析しやすいデータ構造を作る2 – テーブルの関連付け

QlikSenseを体験してみませんか?

アイウェイズコンサルティングでは毎月QlikSenseの無料ハンズオンセミナーを開催しています。 初めてQlikSenseをご利用される方を対象に、QlikSenseって何?ってところからQlikSenseと他のBIとの違いについてもわかりやすくご説明させて頂いております。