[アップデート] Amazon QuickSight が Google スプレッドシートデータセットを作成できるようになりました
いわさです。
Amazon QuickSight の今朝のアップデートで、なんと Google スプレッドシートをデータソースにしたデータセットを作成できるようになりました。
Google スプレッドシート上にデータ原本を保存していて、それを何かしら BI ツールで可視化したいシーン、あると思います。
これまで QuickSight では Google スプレッドシートはサポートされておらず、BigQuery を経由した場合でも次のブログのようにいくつか課題がある状況でした。
QuickSight のデータソースタイプとしてサポートされたので使ってみました。その様子や注意点を紹介します。
データソース作成
データセット作成画面で新規データソースから作成しようとする際に、「Google Sheets」が選択できるようになっています。これかぁ。
データソース作成時はまずデータソース名だけ入力します。
その後、OAuth で QuickSight から Google スプレッドシートに接続をしにいく形になるので、ここで Google アカウントによる認証と認可操作を行います。
次に後述するのですが、OAuth で取得されたトークンは AWS Secrets Manager のシークレットとして管理される仕組みになっています。QuickSight としては新しいやり方ですね。
Secrets Manager のシークレットが自動で作成される
前述のとおり OAuth のトークンが Secrets Manager 上で管理されるようになります。
このあたりは Amazon QuickSight が勝手にやってくれるので、前提として QuickSight のサービスロールが Secrets Manager を操作できる必要があります。
QuickSight 管理メニューの権限管理からデフォルトロールであれば「AWS SecretsManager Write」という権限を追加できるようになっていますのでこちらを有効化します。(カスタムロールの場合はAWSQuickSightSecretsManagerWriteAccess
マネージドポリシーをアタッチしましょう)
権限周りがうまくいっていればデータソースが作成され、そのタイミングで次のように新しいシークレットが自動作成されています。
シークレットの中身ですが、次のようにアクセストークンとリフレッシュトークンが格納されていました。
この感じから、定期的に QuickSight がシークレットの値を更新しそうですね。
Secrets Manager が作成されるので、その料金がかかるという点を認識しておきましょう。
データセット作成
データソースが作成できたら、それをもとにデータセットを作成します。
データセット作成の流れとしては統合された Google アカウントのドライブ上からファイル検索ができますので、対象のスレプットシートを選択します。
私はよくブログを書いていまして、諸事情によりその投稿データみたいなものを集計することがありまして、スプレッドシート上に吐き出しています。
これを分析してみます。
普通の CSV ファイルとかより少し SPICE へのロードに時間がかかる印象です。
66行のデータを読み込むのに 2~3 分かかりました。
ワークロードに採用する際はどの程度 SPICE への読み込みに時間がかかるのか計測したほうが良さそうです。
また、データセット編集画面も他のデータソースよりローディング時間が長い気がしました。タイムアウトが発生する場合があるので気をつけましょう。
なおモードは SPIDE モードのみサポートされているようで、ダイレクトクエリは選択出来ませんでした。
なんとか読み込めたら、あとは通常のデータセットと同じです。フィールド定義を変更したり、計算フィールドを追加したり。
もちろん最終的には分析に利用可能です。
シートごとにデータセットを作成する
スプレッドシートでは複数のシートを扱うことがあると思いますが、1 データセットでの読み込み対象は 1 シートとなっています。
例えば次のように複数シートでデータを管理している場合を考えてみましょう。
この場合はデータセット作成時にシートを選択出来ます。
次のように「ブック名#シート名」という形でリストされるので、その中から対象シートを選択する仕組みになっています。
計算式などは値に変換後取り込まれていた
スプレッドシートではよく計算式を使うと思います。
このあたりの挙動ですが、計算式が文字列取り込みされてしまったりしないのか、値で取り込まれるのか、あるいは計算フィールドに変換してくれるとか気になったのですが、値として取り込みされます。
例えば次のように if 関数で分岐させて文字列を出力するようなセルの場合を見てみましょう。
データセット編集画面を見てみると、関数評価後の値が文字列値として表示されていますね。関数が期待どおり動作しています。
また、私はよくGOOGLETRANSLATE
という翻訳関数を使うのですけども、IF
みたいなシンプルな関数ではなくそういった特殊な関数でも試してみました。
結果としてこれらも問題なく計算後の値が取り込まれていました。Google シートのデータソースページを見てみましたが、とくにサポートされている関数などの制限事項もなかったのですべての関数が使えそうですね。
さいごに
本日は Amazon QuickSight が Google スプレッドシートデータセットを作成できるようになったので使ってみました。
個人的に、スプレッドシート上のデータを QuickSight で可視化したい時があったのでこれは嬉しいアップデートです。
QuickSight のネイティブコネクタとしてサポートされたということで活用の幅が広がりそうですね。ぜひみなさん使ってみてください。