Betts
1
はじめまして、先日QuickSightを使用し始めた者です。
構成としてはAurora(ここに全てのデータが格納)とダイレクトでQuickSightを繋げてけています。
Auroraにあるデータからビジュアライズ化は成功しておりますが、あるデータがJSON形式であったためパースする課題が出てきました。
計算フィールドでParseJsonがあるのですが、データセットがSPICE形式でもあるため、グレーアウトしておりQuickSight上での解決が難しい状況にあります。
調べたところGlueジョブというサービスもあるようなのですが、最適な方法があればと思い投稿させて頂きました。
何か解決方法がないか、皆様のお知恵を貸して頂けないでしょうか。
宜しくお願い致します。
@Betts
お問い合わせありがとうございます。
「分析」の計算フィールドからだと、parseJson関数は使用できないので、データセットレイヤでの計算フィールド使用をご検討下さい。
データセットの計算フィールドですが、データセットの編集 > データセットの編集画面の左上にある「追加ボタン」> 「計算フィールドを追加」で作成することが可能です。
2 Likes
Betts
3
@yusukez
ご返信ありがとうございます。
「計算フィールドを追加」で作成することができました。
重ねての質問になり大変恐縮ですが、コードを書いたことがほとんどなく(勉強中)、以下のようなJSON形式から各値(POやSTなど)をパースしたいのですが、コードはどのようになりますでしょうか?
{“Time”:20XX-XX-XX", “Adata”:{“PO” :10, “ST”:10, “SD”:10},“Bdata”:{“MS”:10,“MP”:10}}
Timeはid1に該当し、string型
Adataはid2、Bdataはid3に該当し、object型
抽出したいPOやST等はnumber型
上記リンクを参考にしています。
お力添え頂けますと幸いです。
宜しくお願い致します。
詳細について追記いただきありがとうございます。
共有いただいたJSONを見る限り、Nested JSONのように見受けられます。
現状QuickSightではNested JSONはサポートされていないため、別の方法で実現する必要があります。
ノーコードで実現する場合、AWSのデータ加工サービスであるGlue Studioを利用する方法が考えられます。下記に実装手順例を記載いたします。
①S3に下記のような該当ファイルをCSV形式などでアップロードします。
data
{ "Time": "20XX-XX-XX", "Adata": { "PO": 10, "ST": 10, "SD": 10 }, "Bdata": { "MS": 10, "MP": 10 } }
②Glue StudioのVisual ETLでS3のファイルからJSONをパースする加工処理を定義します。「Extract JSON Path 」変換を使って、画像のように設定することでPO,STなどの値をパースすることができます。
③GlueJobを実行すると、JSONのパース処理が実行され、指定のS3パスに加工済みのデータが格納されます。QuickSightからこのS3パスをデータソースとすることで、意図されたデータをQuickSight上で可視化することができます。
Glueという別のサービスを使う方法にはなりますが、Glueはノーコード、ローコードでデータ加工を実現できるサービスで、QuickSightでは困難な複雑なデータ加工も実現できます。
Glueによるデータ加工に関しては、11/20(水) 12:00~13:00に「QuickSight Learining Series」でもご紹介する予定ですので、よろしければご視聴ください。
3 Likes
Betts
5
@miyahona
早々にありがとうございます。
Glueというサービスで解決できる可能性があるとのこと、承知いたしました。