hiroki
1
データセットの結合に関する質問です。
想定した結果にならず、原因および実現方法をご教授いただきたいです。
■やりたいこと
以下2つのデータセットA・Bを結合して、結合結果(希望)の形にしたい。
(完全外部結合で実現可能と考えていました。)
・データセットA
日付(A) |
カラムA |
2024-03-05T09:00:42.928Z |
10 |
2024-03-05T09:01:12.794Z |
20 |
2024-03-05T09:01:30.701Z |
30 |
・データセットB
日付(B) |
カラムB |
2024-03-05T09:00:50.827Z |
A |
2024-03-05T09:01:22.515Z |
B |
・結合結果(希望)
結合句…日付(A) = 日付(B)
日付(A) |
カラムA |
日付(B) |
カラムB |
2024-03-05T09:00:42.928Z |
10 |
|
|
|
|
2024-03-05T09:00:50.827Z |
A |
2024-03-05T09:01:12.794Z |
20 |
|
|
|
|
2024-03-05T09:01:22.515Z |
B |
2024-03-05T09:01:30.701Z |
30 |
|
|
・結合結果(実際)
日付(A) |
カラムA |
日付(B) |
カラムB |
2024-03-05T09:00:42.928Z |
10 |
|
|
2024-03-05T09:01:12.794Z |
20 |
|
|
2024-03-05T09:01:30.701Z |
30 |
|
|
データセットの更新タブを見たところ、データセットBと同数の行がスキップされていました。
私の考え方が間違っているのでしょうか。
ご教授いただけますと幸いです。
頂いたデータをCSV化しファイルアップロードからデータセットを作成し試してみましたが、問題なく所望の結合ができているようです。
dateフォーマットが正しく設定されてないのかもしれません。一度ご確認ください。
私の環境では yyyy-MM-dd'T'HH:mm:ss.SSSZZ
となっていました。
1 Like
hiroki
3
ご確認ありがとうございます。
私の環境でもファイルアップロードからであれば結合できることを確認できました。
dateフォーマットについては、
元データがstring型「2024/03/06 12:35:18.543」の形式で、これを「yyyy/MM/dd HH:mm:ss.SSS」指定してdate型に変換しています。
「yyyy-MM-dd’T’HH:mm:ss.SSSZZ」や「yyyy/MM/dd HH:mm:ss.SSSZZ」は「行が無効です」になってしまい変換できませんでした。
また、string型のまま結合してみましたが結果は変わりませんでした。
スキップされてしまうデータセットBに着目すると、
データセットBはカスタムSQLを使用してAthenaからselectしてきています。
この場合に、結合できない、といった制約はありますでしょうか。
Wakana
4
解説いただき、ありがとうございます。
データセットBは、カスタムSQLを使用してAthenaからデータを取得し、SPICEに格納したデータセットでしょうか?結合対象のデータセットAですが、データソースは何でしょうか?
hiroki
5
データセットBは、カスタムSQLを使用してAthenaからデータを取得し、SPICEに格納したデータセットでしょうか?
→はいそうです。
結合対象のデータセットAですが、データソースは何でしょうか?
→Athenaです。こちらもSPICEに格納しています。
(補足ですが、AthenaはS3にあるCSVファイルを取得しています。)
QuickSight上での結合を諦め、クエリでテーブル結合してselectしたところ希望の形で出力することができました。(これをデータセットCとする。)
しかし、そのデータセットCにデータセットD(データソースはS3)を結合したところ、データセットCからデータセットBの情報が抜け落ち、データセットA+Dの形になってしまいました・・・
(データセットCとDは左外部結合)
情報が断片的で文字だけでは状況が掴みづらいとは思うのですが、
なにか無理なことを行っていますでしょうか。
@hiroki 様
データセット A,B,C を Athena をデータソースとして作成し、データセット D を S3 をデータソースとして作成したところ、以下のような挙動になり、特にデータセット B 相当のデータが消えてしまうことはなく、想定されている通りに結合が実現可能であることを確認しました。
直接的な問題の解決案を提示できず申し訳ありませんが、私の環境での検証結果とスクリーンショットを添付させて頂きます。
・データセットAとデータセットBを完全結合
・データセットC(AthenaでAとBを日付でFULL JOIN)とデータセットDを左結合
3 Likes
@hiroki 様
その後いかがでしょうか?解決しておりますでしょうか?もし解決しているようでしたら、返答の下にあるチェックボックスをクリックし、Solutionを選択いただけると助かります
2 Likes
hiroki
8
返信遅くなり申し訳ありません。
検証してくださりありがとうございました。
貴社環境では再現しなかった旨承知いたしました。
まだ解決には至っていませんので、
弊社のクエリ情報等また改めて追記いたします。
2 Likes