スプレッドシートで運用している業務をシステム化し始めるのにBigQuery - Google Spreadsheet連携が便利
結論
- Google SpreadsheetのBigQuery連携機能はめちゃくちゃ便利
- システムに取り込んだデータで、スプレッドシートと同等の活用ができるようになると、システム化もスムーズに進められる
はじめに
業務システムを作るにあたって、既存の業務がスプレッドシート(たとえばExcel、Google Spreadsheet)で運用されていることはよくあります。
なにぶん、スプレッドシートは手っ取り早く業務の残タスク管理や進捗管理、データを記録するのにとても便利です。
システム化で求められること
システム化する以上は、スプレッドシートをそのままデータベースに放り込むのではなく、より良いシステムを作ることが求められます。
- 正規化されたデータ
- 使いやすいUI
- 効率的な業務フロー
- ユーザーのミスを防ぐ仕組み
- etc...
どこから手をつけるか
スプレッドシートで管理されているデータの多くは、システム化する上でその不正確さに悩まされがちです。
データの重複、不整合、誤入力…など。
システム化にあたっては、既存のデータのクリーニングが必要ですし、早急にユーザーの入力をシステムで制限しておかないと、開発が追いつくまでにどんどんデータが汚れていきます。
まずは、データの入力/編集部分をシステム化することでこれらのデータの汚損が生じるのを防ぐことから始めたいものです。
スプレッドシートは強力すぎる
しかし、いざこれをシステム化しようとすると、スプレッドシートでできていた細かな要件を満たすことに疲弊することがあります。
- フリーワードでの検索
- フィルタ
- 計算式による自動算出
- Lookupによる外部データとの結合
- ピボットテーブル
- etc...
これらは業務の本質とは少し遠い部分ですが、スプレッドシートの機能としては極めて強力なものです。
そして自前で実装するとなれば、どれも大変な労力を求められます。
もちろん、そのどれもが不必要なシステムをさっさと作ることができれば、それに越したことはありません。
ですが、それが難しい場合もあります。
スプレッドシート操作の難しさ
そこで、システムで管理されたデータをスプレッドシートに反映させることで、これらの機能をスムーズに提供できると考えるのは自然な発想です。
しかし、スプレッドシートに思ったようなデータを反映させることは、意外と難しいものです。
詳細は割愛しますが、Google SpreadsheetやExcelのAPIを操作するシステムを一度でも運用したことがある方なら、二度とごめんだと思うのではないでしょうか。
そこでBigQuery
Google Cloud PlatformのBigQueryは、Google Spreadsheetとの連携が非常に簡単です。
BigQueryにデータを突っ込んでおけば、スプレッドシートからSQLを発行するだけで、スプレッドシートにデータを反映できます。
これにより、スプレッドシートでできていた検索やフィルタ、計算式、Lookup、ピボットテーブルなどの機能を、システムで管理されたデータにも提供できるのです。
Google スプレッドシートで BigQuery データを使ってみる - Google ドキュメント エディタ ヘルプ
さらには、システムで管理しているデータをBigQueryに流し込むためのマネージドサービスもGoogle Cloudに用意されています。
Datastream
これを使えば、MySQL、PostgreSQLなどのデータベースからBigQueryにデータを流し込むことができます。
Discussion