9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google DataStudio (DataPortal) にてデータソースの統合はJOINではない!

Posted at

背景

Google DataStudio (DataPortal) にてデータソースの統合機能を利用していますが、想定外のことが発生したりしますので、ちゃんと整理しようと思っています。

結論

結論からというと、Google DataStudio (DataPortal) にある「統合」は、リレーショナルデータベース(RDB)の結合(JOIN)ではなくて、Blending(ブレンディング)のイメージに近いです。ブレンディングについては、Tableau(タブロー)というBIツールにもありまして、公式サイトにのせてある説明がわかりやすいので、Tableauのブレンディングの説明を参考してみてください。簡単に言うと、GAの統合は、各データソースで指定されたキーなどで一度集計されてから結合するイメージです。
GA_001_ 統合とは.png

Dummy データの用意

Google DataStudio (DataPortal) の統合機能は、よりわかりやすく説明するため、二つのdummyデータ(Data_1とData_2)を用意しています。いくつかの操作の上、仕組みを理解するとのアプローチをします。

↓Data_1↓

yyyy_mm date client_id
2018_12 2018/12/03 7361
2018_12 2018/12/13 14726
2018_12 2018/12/23 22091
2019_1 2019/01/02 29456
2019_1 2019/01/12 36821
2019_1 2019/01/22 44186
2019_2 2019/02/01 51551
2019_2 2019/02/11 58916
2019_2 2019/02/21 66281
2019_3 2019/03/03 73646
2019_3 2019/03/13 81011
2019_3 2019/03/23 88376
2019_4 2019/04/02 95741
2019_4 2019/04/12 103106
2019_4 2019/04/22 110471
2019_5 2019/05/02 117836
2019_5 2019/05/12 125201

↓Data_2↓

yyyy_mm date user_id
2018_11 2018/11/28 123
2018_12 2018/12/04 126
2018_12 2018/12/10 129
2018_12 2018/12/23 135
2018_12 2018/12/28 138
2019_1 2019/01/12 141
2019_1 2019/01/12 144
2019_1 2019/01/22 150
2019_1 2019/01/27 153
2019_2 2019/02/02 156
2019_2 2019/02/11 159
2019_2 2019/02/11 162
2019_2 2019/02/21 165
2019_3 2019/03/23 180
2019_4 2019/04/09 189
2019_4 2019/04/12 192
2019_4 2019/04/12 195
2019_5 2019/05/03 201
2019_5 2019/05/12 204

いずれも、yyyy_mm (年月)、date (日付)、user_id (ユーザーid)との3つフィールドがあり、Google Analyticsのデータのように、ユーザーの訪問データが作られています。

計算フィールドの作成

  • 「Data_1」にて、uu_client_idを作っています。計算式はCOUNT_DISTINCT(client_id) です。
  • 「Data_2」にて、uu_user_idを作っています。計算式はCOUNT_DISTINCT(user_id) です。
    image.png
    image.png

基本の検証

  • まず、年月ごとに、何人がいるかという検証を行います。
    image.png
  • 検証結果:問題ありません。Data1の2018/12に三人がいて、実際も「3」となっています。他の年月の人数も問題なく見えます。Data2の方も同様に正しく集計されています。
    image.png

統合の検証

  • ここで、GA側の統合は「JOIN」なのか、「Blending」なのか検証していきます。
  • それぞれのデータソースに、検証用フィールドを作ります。
    • 「Data_1」にて、row_counts_data1を作ります。計算式はCOUNT(yyyy_mm) です。
    • 「Data_2」にて、row_counts_data2を作ります。計算式もCOUNT(yyyy_mm) です。
  • それで、Data_2とData_2は、「yyyy_mm」を統合キーとして統合します。先程作っていたフィールドを後ほど使うため、「指標」にも入れます。
    image.png
  • 統合の設定画面を閉じて、作っていたフィールドを、「件数」という集計方法にします。
    image.png
  • そうすると、こんな結果になります (集計方法:件数)。
    image.png
  • もう一つのパターンを見てみましょう。集計方法を「合計」にしてみます。
    image.png
  • こんな結果になります (集計方法:合計)。
    image.png
  • 説明:集計を件数にすると、全て「1」となっています。ただし、GAの統合がRDBの「JOIN」であれば、件数が「1」にならないはずです。RDBの「JOIN」なら、下記のようなイメージとなります。「yyyy_mm」が同じ部分は結合されて、キーが一意なっていない部分は、複数行となります。
  • image.png
  • つまり、「2018_12」に該当する件数は12件となるはずです。他の年月についても、「1」ではない件数です。(ここで省略しています。)
  • 上記の結果に基づいて、集計の件数はすべて「1」となっているのは、Google DataStudio (DataPortal) の統合が「Blending」といえるでしょう。各データソースにて集計されてから、JOINが行われます。下記の図を参考してください。なお、集計方法を「合計」にしても「最大値」にしても「最小値」にしても、結果も変わりません。興味がある方は、是非試してみてください。結果が変わらない理由は、Blendingというのは集計されてから結合するので、すでに年月の粒度で集計されていた数字に対して、更に年月の粒度での「合計」や、「最小値」や、「最大値」などの集計方法でも、結果が変わりません。
    image.png

まとめ

  • Google DataStudio (DataPortal)の統合は、JOINではなくて、Blendingという仕組みだと見られます。
  • 統合されたデータにて分析をした時、予想外の集計にならないようにちゃんと仕組みを理解していきましょう。次の記事は、予想外の集計について紹介します。
9
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?