Skip to main content

リレーションシップに関してです。

ソースデータを読み込み複数データにて​リレーションシップを作成する場合レイアウトに従い型変換した後行っています。

リレーションシップに関して​型変換することで値がうまく変換できないこと・意図しないデータができることを考えると型変換前のデータでリレーションシップを作成した方が

よいでしょうか。

どのような事象が発生したかというと、元データが文字列の年月(YYYYMM)であったものが型変換(文字列から日付)したところ、YYYYMM01となってしまいました。

対応として、型変換せず​文字列でリレーションシップ作成

シートにて計算式で年月を​date関数を用いて年月を日付型にしてVIZを作成しました。

このやり方が妥当であるのかご教示いただければと思います。​

1 Antwort
  1. 7. Juni 2022, 14:42

    局所的な話からすると、Tableauの​日付型は必ず年月日の日レベルまで持ちます。これはソフトウェアとしての仕様で、日付型に変換するということは「変換する人は年月日を扱いたい」という前提があることになります。その前提が無いのであれば日付型への型変換を行うべきではありません。

    そしてリレーションシップについては​、これは通常のテーブル同士の結合(JOIN)も同様ですが、パフォーマンスやメンテナンスの観点からすると、計算をせずに関係を決定できる(リレーションを組むことができる)のであれば計算をしないほうがよいです。特に日付関数のうちDATE関数とDATEPARSE関数はロケーションによって異なる結果を返すことがありますので、特別な理由がない限り、仰るように「​型変換することで値がうまく変換できないこと・意図しないデータができることを考えると型変換前のデータでリレーションシップを作成した方がよい」というのが多くの場面で正解に近いと言えます。妥当性となると総合的な判断になるので断定は難しいですが、今回の対応は少なくとも間違ったやり方ではないと思います。

    個人的には、元データの時点で年と月はフィールドを分けて数値で持っておいたほうが​何かと便利なんじゃないかなとは思いますが。日付・年月を文字列や6桁8桁の数値で持つと加減算が面倒なので...。

0/9000