Skip to main content

お世話になります。

日付を結合句としてブレンドを行う際について2つ質問がございます。

何卒宜しくお願いします。

 

①以下図はサンプルスーパーストア同士を紐づけていますが、

カスタムで日付を紐づける場合、様々なパターンがありますが、

どのように使え分けるのでしょうか。

同一カラム名にして自動で紐づけてしまえば、

どのようなパターンでも対応でき、使い分けなど意識する必要は

無いのでしょうか。

 

日付のブレンドについて②実データのため、お見せ出来ず恐縮ですが、

作成中のワークブックがあり、日付のカラム名を3つのデータソースで同じ文言にして、ブレンドリレーションシップ自動でそれぞれを紐づけています。

プライマリのソースAの日付をディメンションとして利用し、

ソースA,B,Cそれぞれのメジャーを一つの表に表示しようとしているのですが、

ソースCのデータのみ表示がされません。(空白になります)

ソースBと同じ条件なはずなのですが、ソースBのメジャーは表示されます。

ディメンションからソースAの日付を外すと全てのメジャーが表示されます。どのようなケースが考えられますでしょうか。

ふわっとした質問で恐縮ですが、思いつきで構いませんので、

情報を頂けると助かります。

2 respostas
  1. 12 de jul. de 2023, 14:14

    ① 単にデータソースAの日付とデータソースBの日付との間でブレンドリレーションシップを設定するときは、同じ名前にして自動で紐付ける形で基本的には問題ありません。片方のデータソースに日付がない、例えば『データソースAには日付データがあり、データソースBには年と月がそれぞれ数値型で存在する』といったケースでは、A日付の年とBの年、A日付の月とBの月を紐付けるときにカスタムが必要になります。

     

    ② 実際のデータを見てみないと確かなことは言えませんが、よくあるパターンをひとつ。データブレンドはプライマリ集計に対してセカンダリ集計を左外部結合するイメージです。プライマリ由来のディメンションに存在しないメンバーはセカンダリから表示できなくなります。ここで考慮しなければならないのは、集計後に結合するため、ビュー上にどのディメンションが配置されているかとどのフィールドでリンクされているかによって結合の挙動が異なることです。

     

    仮にソースAの日付が{1月1日, 1月2日, 1月3日}のデータを、ソースCの日付が{1月15日, 1月16日, 2月27日}のデータを持ち、両方の日付フィールドが自動でブレンドリレーションを構成されているとします。

    ① 単にデータソースAの日付とデータソースBの日付との間でブレンドリレーションシップを設定するときは、同じ名前にして自動で紐付ける形で基本的には問題ありません。片方のデータソースに日付がない、例えば『データソースAには日付データがあり、データソースBには年と月がそれぞれ数値型で存在する』といったケースでは、A日付の年とBの年、A日付の月とBの月を紐付けるときにカスタムが必要になります。 ② 実際の 

    ここでAをプライマリとし、Aの日付を入れた状態でCの値を表示しようとしても出てきません。これはビュー上に個別の日付があるため日単位で結合しようとしたが、Cには1月1日~1月3日に該当する日付が無く結合できないためです。

    image 

    ここでビュー上からAの日付を除去すると、Cの値が表示されるようになります。これは日付別の集計を行わなくなり単にACそれぞれの集計値を表示するからです。データペイン上で自動的に日付のリンクが切れていることが分かると思います。(SQL的には集計時に「GROUP BY 日付」を行わなくなったと思ってよいです)

    image 

    ここでデータペインの日付リンクを手動でオンにするとどうなるかというと、Cの値が消えます。ビュー上には日付ディメンションがないものの、リンク指定によって結合前に一旦日付で集計することで結合相手がいなくなってしまうためです。

    image 

    ではAの日付をビューに再配置して年月にすると... 今度は1月だけが正しく表示され、Cの2月のデータは出てきません。これは日付のブレンドリレーションを自動にしておくと『ビューの粒度に合わせて自動的にブレンドの粒度も変える』という調整が働くためで、ここでは日単位ではなく月単位で集計した後に結合をすることになり、Aは1月のデータしか持っていませんからCも1月のデータだけが表示されてCの2月は消えるというわけです。

    image 

0/9000