Google Apps Scriptを用いてのデータベース管理について
Google Apps Scriptの概要について
GooGle Apps Scriptは、Google社が提供している言語になります。Google社が提供しているサービスと連携をとることができ、自身の作業に応じて、仕様を変更することが出来ます。また、無料で使用でき、開発環境も不要なので、コストの面でも利便性が高く、基本のベース言語はJavaScriptであることから、比較的習得が容易なので、使いやすいというメリットもあります。また、Google社が提供しているGoogleスプレッドシートを用いて、そのスプレッドシートをデータベース化することもできます。
Googleスプレッドシートをデータベース化して使用し、Google Apps Scriptで連携をとることが出来れば、作業の効率化、データ管理の制度向上が見込めます。この記事の前半ではGoogle Apps Scriptを使って、データベース化したGoogleスプレッドシートとの連携メリットについて記載し、後半では前半の方法で対処出来ないときの他の方法について記載していきます。
Googleスプレッドシートをデータベースとして使用するメリット
Googleスプレッドシートを用いてデータベース化するということにはどのようなメリットがあるのでしょうか?以下にメリットを記載しています。すべてに共通していることは、いかに効率よくデータを扱えるようにするのかという部分です。それを踏まえたうえで、ご参考までによろしくおねがいします。
①データ管理がしやすい
エンジニアが用いるデータベースとしては、PostgreSQLやMySQLなどが思いつくとは思いますが、エンジニア向けではあるので、エンジニア以外は操作が難しいというデメリットがあります。一方でGoogleスプレッドシートはエクセルのような表・列として扱うことができるので、エンジニア以外の職種の方も操作・管理がしやすいというメリットが生まれます。
②データの視覚化が容易である
Googleスプレッドシートには、エクセルの基本的な機能は備わっているので、エクセルで操作可能なテーブル・表・グラフの作成が可能です。データの視覚化という視点でも非常に有用なものになっています。
③SQLと似たような操作でデータの検索が可能
Googleスプレッドシートには、SQLとよく似た言語であるQuery関数を利用することが出来ます。これを利用することにより、検索・抽出速度が劇的に上がり、作業の効率化に大きく貢献することができます。
以下にサンプルコードを記載しておきます。
Query( 選択範囲, ”Select 選択した列 where 条件を用いたい列=条件” )
これで、指定した条件に合ったデータの抽出が可能になります。
④Google Apps Scriptと連携が可能である
Google Apps Scriptを用いてスプレッドシートの操作が可能です。更新のタイミングでメッセージを送ってもらうようにできたりと、自分が都合よく仕様を変更することが可能です。
Google Apps Scriptを実質的なにサーバサイドとして用いることができます。
Cloud SQLとは
上記内容では、Googleスプレッドシートをデータベース化して使用するメリットについて紹介してきましたが、それでも課題点は存在します。
- データ増加によるパフォーマンスの低下
- データ保存量に制限がある(500万セル程)
- 保護・保守の観点でGoogle Apps Scriptのコード記述量増加
などがあげられます。最後の保護・保守に関しては、Google Apps Scriptで記述は可能なのですが、1つ1つのセキュリティを増やしていくとなると、累積で膨大なコードになってしまいます。とはいえセキュリティを減らしてしまうと簡単にデータを書き換えることが出来てしまうので、本末転倒になってしまいます。
そこで、Google Apps Scriptのデータベースとして用いられやすいのがCloud SQLになります。Cloud SQLはGCP(Google Cloud Platform)内で提供されているデータベースサービスになります。上記のGoogleスプレッドシートの課題点は克服できます。ただし、エンジニア向けになりますので、誰でもすぐに、簡単には扱えないのと、GCP自体別途料金がかかるので、コスト面では不利になります。
作業していく中で、Googleスプレッドシートをデータベース化させたものでは対応出来ないほどののデータベースを扱う必要があり、かつ技術面と料金面の課題をクリア出来る状況であれば、Cloud SQLを検討するのも必要かと思います。
まとめ
この記事ではGoogle Apps Scriptに関連したデータベースについて記載してきました。簡易的なアプリであれば、利便性が高いスプレッドシートをデータベース化し、Google Apps Scriptで操作する方が効率が良く、データベースの量が増えてきた場合、GCPを用いたデータベースを用いてGoogle Apps Scriptで操作する方が安全性がより増すと思います。Google Apps Scriptを用いてデータ管理を行う場合は、記載内容の検討をおすすめします。ご拝読ありがとうございました。