Technical Deep Dive from AWS Support Series [2] Analytics Profile 編
■プロフィール
アマゾンウェブサービスジャパン合同会社 サポートエンジニアリング
Asano : クラウドサポートエンジニア(Analytics Profile)
Tateno : シニアクラウドサポートエンジニア(Database Profile)
はじめに
こんにちは、Technical Deep Dive from AWS Support Series の 2回目となります。今回もインタビュアーは、シニアクラウドサポートエンジニアの Tateno がつとめます。それでは、早速 Asano さんの自己紹介を伺っていきましょう。
はい、よろしくお願いします。クラウドサポートエンジニアとして入社して 4年目になります。もともとはフリーのデータベースエンジニアとしてオンプレ環境を扱っていましたが、クラウド環境を扱いたい気持ちからデータベースプロファイルのイベントに参加したことから、ご縁があって今クラウドサポートエンジニアとして仕事させてもらっています。データベースエンジニアといっても最初からデータベースだけではなく、開発やサーバーなどの環境構築を行なっていましたが、データベースが一番好きなので徐々に Oracle を中心としたデータベースエンジニアとして仕事をしていました。
ありがとうございます。前職までの経験はどんな場面で役に立っていますか。
そうですね、開発や環境構築の経験は OS やソフトウェアのインストールや設定による通信やアプリケーションへの影響を調べる時にも、影響があるかどうかを考える時やエラーメッセージの内容からあたりをつけるのにも役立っている思います。なにより、お客様先で仕事をしていたのでお客様の状況や様子を直接見ていたので、クラウドサポートエンジニアになってからの不特定多数のお客様から文章のみで送られてくるお問い合わせの背景や状況を把握する際に役に立っていると思います。
Amazon QuickSight について
ありがとうございます。それでは、今回 Deep Dive に関してお話を伺っていくシリーズの第2弾として、今回 Amazon QuickSightについてお話いただけると伺っていますが、それに先だって、Amazon QuickSightに馴染みのない方に向けて、簡単にご紹介していただけますか。
はい。Amazon QuickSight はクラウド版のビジネスインテリジェンスサービスとなります。参照元となるデータは CSV などのフラットファイルから、Redshift、RDS などのリレーショナルデータベースをデータソースとして利用でき、異なるデータソースを結合してビジュアルを作成することができます。
また、作成したビジュアルは限られたユーザーや不特定多数のユーザーに公開することもできます。管理者、作成者、閲覧者と利用するユーザーによって Amazon QuickSight の操作権限を分けることもでき、閲覧者に公開中のビジュアルは閲覧中のユーザーに影響なく編集することも可能です。
Amazon QuickSight では 20種類以上の図、チャート、グラフなどさまざまな表現方法のビジュアルが用意されているため、売上を折れ線グラフや棒グラフで表現することや商品の売れ行きを円グラフなどで表現することもできます。
データベースにデータがあるだけだと、なかなかそのデータから有益な情報を導き出すことが難しいですし、導き出した情報を共有することも難しいですが、Amazon QuickSightだと、データから引き出した有益な情報を、簡単にその情報を必要とする人に届けることができるんですね。
はい、GUI の操作でデータの参照からデータを分析し、公開まで行うことができます。
今回の Deep Dive 事例 : Amazon QuickSightでの情報可視化の方法について
このように見ていくと、Amazon QuickSight はとても簡単に使えるツールなので、そんなに難しいお問い合わせはなさそうな気もしますが、今回、お客様からどのようなお問合せを受けたのかについて、簡単に説明いただけますか。
今回とりあげるお問い合わせは、情報をどのようにビジュアル化できるか、についてでした。お客様のアプリケーションから出力される情報としては、開始・終了した時間が Excel のような縦と横の2次元の表に時系列に並べられているものでしたが、その開始時間と終了時間の差分を求めつつ、Amazon QuickSight でビジュアル化したいという内容でした。Amazon QuickSight には複数の種類のビジュアルがありますが、お客様の要件を満たすために、どのビジュアルを使用して、どのように可視化したいのか、といった全体像がわからない状態でした。
このお客様からのお問い合わせを、どのように深掘っていったのか教えてもらえますか
最初にいただいていたお問い合わせ文中にあったサンプルデータは、以下のようなものでした。
サンプルデータでは、処理が開始された時間と、その処理が終了された時間が、同じ処理名で記録されていました。このため、アプリケーションのログなどから 1回1回の処理ごとに記録されていると考えられる状況でした。また、1秒以内で完了している処理もあるように見受けられました。実行タイミングから、日毎や時間などの定期的なバッチ処理ではなく、更に、サンプルデータで 1つの処理で複数回の時間があることから、同じ処理名で、複数の異なる処理が走っているものと考えられました。以上により、処理ごとの開始時間と終了時間、それと処理に掛かった時間を開始時間と終了時間の差分から求めた結果をあわせて、Amazon QuickSight のビジュアル上に表示したいという要件だと判断しました。
なるほど、お客様の要件を、いかに問い合わせから理解するかがポイントなんですね。
Amazon QuickSight は、2次元のデータをビジュアル化するサービスのため、お客様が実現したいビジュアルのイメージをはじめから言語化して伝えていただくことは難しいです。そのため、お客様の実現したいビジュアルを、お問い合わせいただいた文章を元に把握することが必要になることがあります。このような場合は、お客様に詳しい情報を頂く際に、Excel や PowerPoint などを使って、実現したい最終形のイメージ図をいただけるようにお願いすることも多々あります。
たしかに、そうするとお客様の実現したいイメージを元に、どのように作っていくかということを支援できますもんね。この要件は、Amazon QuickSight で簡単に実現できるものでしたか?
この要件そのものを簡単に実現する機能はありません。従って、何らかの方法でお客様の要件を実現するためのメカニズムを考える必要がありました。幸い、Amazon QuickSight はさまざまな関数が用意されているので、時間の差分や合計などを計算するフィールド(列)を追加することができます。しかし、今回は、処理の開始時間と終了時間が縦に並んでいるため、フィールドを追加するだけではお客様の求めたいビジュアルにはなりませんでした。このため、ある行と別の行が同じ処理であると判別するために、 参照元データ側で処理ごと区別するための ID列 などを追加することで、開始時間と終了時間を横に並べることができるようになりました。具体的には、以下のような方法で実現しました。
ただ、複雑な関数の組み合わせや関数の入れ子には制限があるので、可能ならデータソース側で準備しておく方が、ビジュアルに表示されるフィールドなどは、ビジュアルの表示が速くなる場合がありえます。
今回のケースだと、Amazon QuickSight なしで実現する方法もありそうですね。
そうですね、ベースとなるデータソースが 1つであれば、データの整形自体は、Amazon QuickSightを使わなくても実現できると思います。しかし、今回のユースケースでは、整形されたデータをビジュアルにして複数の人に見せたり、比較した結果をわかりやすく PDF などのレポートとして共有することが最終的な目的となっていたため、Amazon QuickSight が活躍するユースケースでした。また、複数のデータソースのデータを結合したり出来る点も大きな利点です。
複数のデータソースからデータの取得が可能ですと、データソースとAmazon QuickSight 間での接続などのトラブルも発生しそうですが、どうですか。
そうですね、接続に関しては、Amazon QuickSight 側の設定だけではなく接続先の設定に依存するところもあるため、AWS サポートとしては Amazon QuickSight のみにとらわれず、接続先を含めた知識と技術は必要になります。たとえば、Amazon QuickSight では SSL を有効にして接続しているけども、接続先の RDS では SSL が有効になっていないためにタイムアウトする、といった問題は分かりにくいトラブルです。また、接続先のデータベースユーザーでオブジェクトの参照権限がないため、Amazon QuickSight の GUI 上に接続先のテーブル一覧が表示されないなどの問題のトラブルシューティングのためには、接続先のデータソースについても知っておく必要があります。
まとめ
なるほど、AWSサポートは、サービス単体ではなく、AWSの他のサービスについての深い理解も必要としていることがよくわかりますね。ありがとうございます。最後に、今回のお客様のお問い合わせに対して、お客さまにお届けできた価値をまとめていただけますでしょうか。
はい、Amazon QuickSight を使用することで、お客様がデータベースやクエリを知らない場合や、データベースを介さないフラットなファイルであっても、データのビジュアル化や、計算させるためのフィールドの追加などについて、すべてが GUI 上で実装できます。したがって、お客様にとってはデータのビジュアル化を行う上でハードルが下がっているのですが、本当にお客様がやりたい事が何か、ということをシステムは教えてくれません。今回、縦に出力される処理のログを横に開始時間と終了時間を並べることができかつ、開始時間と終了時間の差分を計算した結果をビジュアルとして見せることができるという点を示すことを通して、お客様に Amazon QuickSight の価値をお届け出来たのではないかと思います。
ありがとうございました。今回は Amazon QuickSight を使ってお客様の情報をどのように表示するかについて、Asano さんにお話を聞きました。
クラウドサポートエンジニア について
クラウドサポートエンジニアの仕事は「技術力でお客様のイノベーションをお手伝いすること」です。日々のお問合せ対応を通じて様々なお客様の様々なユースケースに携わることができるため自然と学び続けることができる環境です。また、お客様のお問合せから見えてくる AWS サービスの課題・改善点をサービス開発チームにフィードバックすることも重要な仕事です。他にも AWS re:Invent などのイベントでの登壇・発表などクラウドや AWS の啓蒙活動も行っています。
ご興味のある方はぜひこちらのウェブサイトにお越しください!