最近、QuickSightを使ってグラフ化することが業務で増えてきています。
ただ、BIツール自体を含め、初めて使うツールだったので、細かいところで躓くことが多い。
私が実際に体験した躓き、エラーなのでかなり初歩的なこともあるかとは思います。
小さなエラーなのかもしれないけど、具体的な事例として紹介していきますので、同じように悩んでいる方にとっての手助けになればうれしいです。
今回のエラー
今回、QuickSightを使っていく中で、データセットの読み込みにいくつかの行でエラーが生じてしまいました。
ただ、エラー行があっても正常に読み込めている行もあり、QuickSightのグラフ描画は正常に行えていました。
しかし、ある日突然、グラフ自体が描画されなくなってしまいました。
そこで、調べてみると、データセットの中で無効な行として、スキップされた行が多すぎることによるエラーでした。
具体的な数字は把握してませんが、エラー行があまりに多すぎるためのエラーであることが分かりました。
QuickSightからエラーを確認することができるのですが、確認すると以下のようになって、スキップされた無効行は10,000行越えになっていました。
データセットを読み込んだ当初は、エラー行が出ていても、表示されていたので、あまり詳しい使い方も把握してませんでしたのでそのままでした。
また、データセットを追加したときは、何行インポート済みとか表示が出ますが、ポップアップ的な表示ですので、エラーが何行分出てるのかなかなか気づくことができませんでした。
エラー内容の確認
まずは、QuickSight上でなぜエラーが出ているのかを確認していきます。
①データセットのエラー行確認
QuickSightのサイドメニューから該当のデータセットをクリックします。
最初に読み込むときに、このようにデータセットの詳細を確認したり、編集することを知らなかったので、もう少しわかりやすいダッシュボードにしてほしいなと思うところではあります。
データセットをクリックするとそのデータセットの概要が読み込まれます。
ここで、ステータスを見ると「完了」となっていますが、エラー行があることが分かります。
このデータセットは先ほどのエラー原因で表示したものとは違うものですが、読み込みが完了しているものの、スキップ行が2,000行以上あることに注意が必要です。
ステータス「完了」となっていると、エラー行はあるものの該当行はスキップされ、グラフなどが描画可能な状態です。
今回の私の場合も、当初はこのようなデータでしたが、日に日に溜まるデータから少しづつスキップ行が増えていっておりました。
スキップ行の数や要因を把握されていればいいですが、放置しておくと、突然、データ表示できなくという可能性が生じてしまいます。
②エラー詳細を確認
このままだとエラー行・スキップされた行があることしかわからないので実際にどこでエラーが出ているのかを確認していきます。
データセットの詳細から「更新」タグに切り替えます。
そして、読み込みの履歴から、スタータス「完了」をクリックしましょう。
エラーがある場合、詳細のダイアログが出現し、どの列の何行分がエラーが生じていて、エラーになっているのか確認することができます。
また、ここにエラー行ファイルをダウンロードとあるので、こちらをクリックするとcsvファイルとしてエラーが発生してる要因の詳細が確認するとができます。
ちなみに、ダウンロードしたエラー行ファイルは以下の通りです。
内容的にモザイク処理が多くて申し訳ありませんが、どんな内容が記載されているかを簡単に説明します。
ファイルは、1行ごとにエラーの内容、エラーが生じたカラム名、以降各カラムのデータがカンマ区切りで記載されています。
今回のエラー原因もう少し探ってみると、エラーの内容に「NUMBER_PARSE_FAILURE」と記載があるので、数値フィールドが数字型じゃないよというエラーです。
エラーが発生しているカラム名は、JOB_IDという職群を数字として管理しているカラムでした。
実際の値は、数字だったのですが、元になっているデータベースでは、型をLONINTという長い桁数に対応できる数値の型でした。
QuickSightでは読み込める型に制限があり、これが、エラーの本質的な原因であったようです。
エラーの詳細や対応する型については、QuickSightの公式ドキュメントをご確認いただければと思います。
今回の対策
エラーの解消は様々なあります。
一番手っ取り早いのは、QuickSight側で読み込みの型を決めることです。
QuickSightでは、データセットの内容を自動的に型判定してくれている機能があります。
文字列であったり、数字・日付・緯度経度といった型に対応しています。
これらを自動割り当てではなく、データセットの編集から変更することも可能です。
LONINTを数値型として編集することでスキップされていた原因をつぶすことができるはずです。
取得したデータセットの見直し
ただ、今回の場合は、そう簡単にいかず、CSVファイルやSQLのVIEWを作成するときに、エラー吐いていた列をそもそも読み込まないという対策を取りました。
エラーが吐いてる列に対して、必要・不要の判定はそれぞれ異なると思いますので、適宜対応いただければと思います。
また、ここでエラーの原因が分かってるカラムであれば問題ありませんが、原因がはっきりしないエラーが残っていると、日々溜まるデータなので、またいつかエラーがたまりグラフが描画できなくなってしまうことになってしまします。
私の場合は、CSVのエクスポートを修正して、改めてデータセットに読み込むことで、以下のようにすべての行がインポートされ、スキップ行がないデータセットを作ることができました。
おわりに
QuickSightはAWSのサービスの中でもBIツールという他と若干ジャンルが異なるサービスでありますので、エラーが生じたときにググってもあまり情報がヒットしないように感じました。
今回のエラーは、スキップ行がある一定の数を超えてからのエラーで発見が遅れました。 結果として、元のデータを修正する必要があり、多くの手間を要する結果となってしましました。
データセットを追加したら、まずはデータセットにスキップ行が表示されていないか確認するように心がけてみて下さい。
コメント