計算フィールドはデータセットと分析のどちらでも作成が可能ですが、どちらで作ると何がよいのか明確に理解ができておりません。
現在の利用方法としては、分析でパラメータの紐づけを行いたい場合にデータセットで計算フィールドを作成して項目を追加する、という理解でおります。
SPAICEではなくAthenaやRedshiftと接続して利用しており、以下のようなことがあるのではないかと推測しています。
データセットの計算フィールドは項目の利用有無にかかわらずSQLに含まれるため、計算が煩雑になり処理が重くなる。
分析の計算フィールドの場合は項目を利用したときのみ計算される。
このようなことはあるのでしょうか?
計算フィールドの追加を行う際、どのようなケースで、データセット・分析どちらで利用すべきか、教えていただきたいです。
1 Like
Wakana
2
@optarc.yamaji
ご質問いただき、ありがとうございます。
計算フィールドはデータセットと分析の両方で作成可能ですが、データセットで作成すると、そのデータセットを使用する全ての分析で汎用的に利用できる、というメリットがあります。ただし、データセットでは集計処理は実施できないため、集計処理の計算フィールドをデータセットで作成しても、実際の計算は分析時(ダッシュボードロード時)に実施されます。(以下、英語のドキュメントの記述になります)
今回ご利用を検討いただいているのは、分析上のパラメータ値にしたがって、計算フィールドによる処理を実施したい、ということでしょうか?パラメータはデータセットでも作成でき、分析のパラメータとマッピングでき、データソース側へのクエリーでも使用いただけますが、そういった処理をご検討いただいておりますでしょうか?
一般的には、上記英文のドキュメントにも記載されている通り、データセットで作成された計算フィールドはデータセット作成時に処理され、SPICEの場合SPICEにその結果を含めた計算フィールド項目ができます。同計算処理を分析上で実施した場合と比べ、ダッシュボードロード時のパフォーマンスを向上することができます。ただ、ご指摘いただいように、SPICEではなく、AthenaやRedshiftへの直接クエリーの場合は、ダッシュボードロード時も、データセットで定義されたデータをクエリーで取得するので、分析で計算フィールドを定義している場合は、ビジュアルで使用している否かで計算処理が発生するのに対し、汎用化されたデータセットの場合は、全てのビジュアルロード時にて計算処理が発生してしまいます。そのような場合は、実施したい計算処理に依存しますが、大きな計算で汎用的に実施したい要件ではデータソース側で実施した方がいいかもしれません。
1 Like
今回検討しているのは、元のテーブルに項目を保持しきれておらず文字列計算を利用した計算フィールドをデータセットに複数作成を行っているのですが、4年分のデータを保有してますが6ヶ月以上のデータはタイムアウトになってしまうため、パフォーマンスの観点で確認をさせていただきました。
元のテーブルで作成するとしても、現在はカスタムSQLで結合で計算をさせているため、データセットで計算フィールドを作成しても結果は変わらないのかなと思いました。
しかし、一部でしか利用していない項目については、分析で計算をさせたほうがパフォーマンスは良さそうであると理解しました。
1 Like