Google AppSheetは、迅速にアプリケーションを構築できる便利なツールですが、データ量が増えるとそのパフォーマンスがどう変化するのか気になる方も多いかと思います。
今回は、AppSheetが大規模データにどの程度対応できるのか、具体的には100万レコードというデータ量に対する動作検証を行いました。
このブログでは、検証の目的や方法、そして実際に行った速度検証の結果について詳しくご紹介いたします。
特に、100万レコードのデータを使った際のAppSheetの動作がどうなるか、体感をお伝えしますので、AppSheetをの速度やデータ量について疑問がある方の参考になれば幸いです。
AppSheetの速度検証概要
今回の検証では、AppSheetが大規模なデータに対応できるかを確かめるため、次のような主要な速度指標を測定しました。
- アプリが起動し同期(sync)が完了するまで時間
- データ追加から同期(sync)が完了するまで時間
- データ編集から同期(sync)が完了するまで時間
- データ削除から同期(sync)が完了するまで時間
検証事項1:アプリ起動時間の計測
まず、アプリが起動するまでにどのくらいの時間がかかるかを測定しました。
これは、アプリの初回起動時に特に重要で、データ量が増加するにつれて起動時間にどのような影響があるのかを確認しました。具体的には、AppSheetがアプリを完全に立ち上げ、データの同期が完了するまでの時間をストップウォッチで計測しました。
検証事項2:データ追加、編集、削除の速度計測
次に、実際に取引データを追加したり、既存のデータを編集したり、削除した際に同期(sync)が完了するまで時間を計測しました。
データが増加することで、これらの操作がスムーズに行われるか、または遅延が発生するかを確認しました。
これらの動作が、データ量でどのように変化するのかを3つの異なるデータ量で結果を比較しました。
検証の準備
今回の速度検証では、Googleスプレッドシートをデータソースとして使用しました。Googleスプレッドシートのセル数は、1つのシートで最大1000万セルまで利用可能です。
この制限を考慮し、速度検証を行うための環境を整えました。
使用したデモアプリ
今回の検証には、取引データを記録するデモアプリを使用しました。このアプリは、3つのテーブルをRef関数で連携させて構成されています。またバーチャルカラムを2つ使い計算と参照をさせています。
速度検証のデータ量
検証で利用するデータ量は次の3つです。
- 15万レコード(105万セル)のデータ量
- 30万レコード(210万セル)のデータ量
- 100万レコード(700万セル)のデータ量
続いては検証結果についての結果です
Googleアップシートの速度検証!
では、実際の速度はどうであったのか?それぞれの結果をレポートします。
15万レコード(105万セル)の検証結果
15万レコードでは、アプリの起動時間はおよそ6.6秒で、データ追加や編集、削除の操作も10秒以内に完了しました。
この程度のデータ量であれば、通常業務で使用するには全く問題ない範囲で、操作にストレスを感じることはありませんでした。
シンクの速度も速く、データの同期が数秒で完了するため、体感的にもほとんど遅延を感じない動作となりました。
30万レコード(210万セル)の検証結果
30万レコードでは、起動時間が約15秒と、15万レコードの倍以上かかるようになりました。
しかしながら、データ追加や編集、削除の操作に関しては、17秒前後と、わずかに遅くなる程度で、操作感に大きな違いは感じませんでした。
多少の待ち時間は発生しましたが、実際の業務に支障が出るほどの遅延ではなく、このデータ量でも十分に実用的な範囲でした。シンク時間も長くなりますが、30万レコードではまだ許容範囲内です。
100万レコード(700万セル)の検証結果
最後に、100万レコードを使用したアプリの動作を確認しました。
ここでは、起動に約1分以上かかり、データ追加や編集、削除の操作もそれぞれ1分以上の待ち時間が発生しました。
操作中はアプリのレスポンスが遅く、もっさりとした動作になってしまい、快適に操作できる状態ではありませんでした。
特にシンクに時間がかかり、操作を行うたびにかなりの待ち時間が発生しました。100万レコードという膨大なデータ量では、AppSheetの通常の使用には不向きであることが明らかになりました。
アップシートの導入支援から開発まで専門チームがサポートします
各データ量ごとの速度比較
上記の検証結果から、以下のようにデータ量ごとに速度が大きく異なることが分かりました。
データ量 | アプリ起動 | データ追加 | データ編集 | データ削除 | 体感時間 |
---|---|---|---|---|---|
空のアプリ | 1.9秒 | 1.8秒 | 2.0秒 | 1.5秒 | 瞬時 |
15万レコード | 6.6秒 | 11.1秒 | 10.2秒 | 10.9秒 | 数秒 |
30万レコード | 15.6秒 | 17.4秒 | 17.9秒 | 16.4秒 | 若干遅延 |
100万レコード | 64.7秒 | 60.1秒 | 62.7秒 | 63.7秒 | 長い遅延 |
体感的な操作感の違い
15万レコードまでは、操作感に大きな遅延はなく、スムーズに作業が進められました。
30万レコードでも、若干の遅さは感じるものの、業務で使用する範囲では十分許容範囲内と言えるレベルです。
しかし、100万レコードになると、全ての操作が遅くなり、アプリを操作している際にストレスを感じるほどの遅延が発生しました。
このため、100万レコード以上のデータを扱う場合は、速度改善策を講じる必要があると感じました。
速度改善策
AppSheetで大量のデータを扱う際、データ量が増えるとどうしても速度に影響が出てしまいます。
そこで、データ量を減らす工夫やデータベースの活用によって、速度改善を図ることができます。以下では、特に効果が期待できる3つの改善策をご紹介いたします。
フィルター適用によるデータ量削減
最も手軽にできる改善策の一つが、フィルターを適用して読み込むデータ量を削減することです。
AppSheetでは、セキュリティフィルターを利用することで、必要なデータだけを読み込むように設定できます。例えば、100万件の取引データ全てをアプリに読み込むのではなく、最近1年以内のデータや特定の条件に合致するデータだけを読み込むようにすることで、アプリのパフォーマンスを向上させることが可能です。
セキュリティフィルターを利用すると、バックエンドのデータ自体には影響を与えずに表示するデータを絞り込むことができます。これにより、AppSheetのデータ同期や操作が高速化し、ユーザーが体感する遅延が大幅に減少します。
古いデータの削除と保管
次に、データの物理量を減らすために、古いデータを削除したり、別の場所に保管するという方法も効果的です。すべてのデータを一つのスプレッドシートやAppSheetで管理し続けると、どうしてもデータ量が増え続け、アプリの速度が低下します。不要なデータや、すでに使い終わった過去のデータは、別のシートやデータベースに移動させ、必要に応じてアーカイブすることが推奨されます。
例えば、AppSheet内で過去3年以上のデータは必要ないという場合、古いデータをGoogleドライブや他のストレージに保存し、アプリ内では最新のデータだけを保持することで、速度の改善が期待できます。
BigQueryの活用方法
さらに大規模なデータを扱う際には、Google BigQueryの利用も検討するべきです。
BigQueryは、Googleが提供するクラウドデータベースサービスで、非常に大容量のデータを効率的に処理できる設計がされています。特に、100万レコード以上のデータを管理する場合には、BigQueryを使うことでAppSheetのパフォーマンスを大幅に向上させることができます。
ただし、BigQueryを使えば必ずしも速度が劇的に改善するわけではありません。
適切なクエリ設計が必要であり、またクエリコストがかかるため、使用する際にはデータ構造やアクセス頻度を考慮して慎重に設計を行うことが重要です。効率的にデータを取得し、AppSheetとの連携を最適化することで、速度改善が期待できます。
フィルター適用した速度改善の検証
今回はもっとも簡単なフィルターを適用し、データ量を削減した場合、アプリの動作がどのように変わるのかを検証しました。
100万レコードのデータから5万レコードに絞り込むフィルターをかけて、その結果を比較しました。
5万レコードにフィルターをかけた場合の改善状況
100万レコードのデータに対してフィルターを適用し、5万レコードのみを表示するように設定しました。これにより、アプリ起動時間やデータ追加、編集、削除の操作時間が大幅に短縮されました。
フィルター適用前には、アプリの起動に1分以上かかっていましたが、フィルター適用後は、半分以下の時間でアプリが起動しました。また、データの追加や編集、削除にかかる時間も同様に大幅に改善されました。
元データが100万件もなければもっと早くなっているはずです。
フィルター前後の数値比較
以下の表は、フィルター適用前後の速度を比較した結果です。
データ量 | アプリ起動時間 | データ追加時間 | データ編集時間 | データ削除時間 | 体感時間 |
---|---|---|---|---|---|
100万レコード(フィルター前) | 64.7秒 | 60.1秒 | 62.7秒 | 63.7秒 | 長い遅延 |
5万レコード(フィルター後) | 13.5秒 | 21.7秒 | 26.5秒 | 19.6秒 | 若干遅延 |
この結果からもわかるように、フィルターを適用することで、100万レコードという大規模データでも問題なく動くようになりました。もっとデータが少なければ、AppSheetが通常の業務で使用するのに十分な速度で動作します。
速度は対策次第で改善できる
AppSheetで大規模データを扱う際、データ量の増加による速度低下が課題となりますが、今回の検証で示したように、フィルターを使ったデータ量の削減や、古いデータの整理、そしてBigQueryの活用によってパフォーマンスを改善することが可能です。
これらの速度改善策を組み合わせて、最適なAppSheet運用を実現することをお勧めします。
アップシートの導入支援から開発まで専門チームがサポートします
まとめ
今回の速度検証を通じて、AppSheetがどのように大規模なデータに対応できるか、またその限界や最適化の方法について明らかになりました。検証結果を踏まえ、AppSheetを活用する際の適切なデータ量や、パフォーマンスを向上させるための実用的な提案を以下にまとめます。
15万~30万レコードが実用的な範囲
もちろんこれはお客様の環境、アプリの作り方によって変わりますが、今回の検証では、15万レコードから30万レコードまでが、実際の業務で快適に使用できる範囲であることが確認されました。
15万レコードの場合は、アプリの起動やデータの追加・編集・削除が非常にスムーズに行え、30万レコードでも多少の遅延はあるものの、許容範囲内で業務に支障をきたすほどではありませんでした。
一方、100万レコード以上のデータになると、アプリの動作が遅く、日常業務で使用するにはストレスを感じるレベルに達します。このため、15万から30万レコード程度が実用的な範囲であると考えられます。
アプリのパフォーマンス向上に向けた提案
AppSheetを活用する際、データの増加に伴う速度低下を防ぐためには、定期的なデータ整理と最適化が重要です。
特に、頻繁に利用されるアプリでは、適切なフィルター設定やデータのアーカイブなどを組み合わせ、スムーズな操作環境を維持することが必要です。また、データ量が増え続ける場合には、早期にBigQueryや他のデータベースを活用することを検討することをお勧めします。
大量データ対応の導入コンサルティングも支援
もし、大量のデータを扱う必要がある場合には、最適なフィルター設定やデータ管理方法、BigQueryの活用法などを具体的にご提案させていただきます。より効率的なAppSheet運用を目指し、スムーズな業務フローをサポートいたします。
当社では、AppSheetを活用した開発代行、内製化を支援する「AppSheetマジック」というサービスを提供しています。
このサービスでは、AppSheetの導入から運用、そして今回ご紹介したような速度改善策の実施まで、幅広くサポートいたします。特に、大規模データを取り扱う場合でも快適にアプリを運用できるよう、カスタマイズやデータベース連携の設計を行い、最適な解決策を提供いたします。
AppSheetを使った業務改善や、今回の検証結果についてご興味がある方は、ぜひ当社までお気軽にご相談ください。AppSheetを最大限に活用し、より快適なアプリ環境を構築するお手伝いをさせていただきます。