AppSheet アプリでは、テーブルが 1 つのテーブルソースを持つものとして定義されています。通常そのテーブルソースは任意のワークシート名が付いたスプレッドシート ファイルですが、データベース テーブルなどのテーブルソースである可能性もあります。
データ パーティションを使用する際は、次のことを行います。
- テーブルの行を多数のテーブルソースにパーティショニング(または分割)する
- これらのさまざまなテーブルソースを、アプリエディタを使ってアプリのテーブル定義に登録する
- どのテーブルソースがどのユーザー用であるかをシステムが判断するためのパーティション式を提供する
たとえば、従業員 10,000 名分のタイムシート エントリが登録されたテーブルがある場合、そのデータを 10 個のシートまたはパーティションにパーティショニングして、それぞれに 1,000 名分のデータを持つようにできます。パーティション式は、USEREMAIL()
または USERSETTINGS()
の値に基づいて各ユーザー用の特定のパーティションを識別します。
データ パーティションは、データを馴染みのあるスプレッドシート システム(Google スプレッドシート、Excel、Smartsheet など)の形式で維持しつつアプリをスケーリングできる、高度なメカニズムです。ただし、データセットを物理的に複数のシートに分割しているため、データのメンテナンスやレポートにおける管理上のオーバーヘッドが増える可能性があります。
データ パーティショニング: 複数のワークシート
データソースが何であるかにかかわらず、データを同じワークブックまたはスプレッドシート内の複数のワークシートにパーティショニングできます。テーブルの設定を行うをご覧ください。
データ パーティショニング: 複数のファイルやソース
データソースが何であるかにかかわらず、テーブルをファイルやソースにパーティショニングできます。テーブルの設定を行うをご覧ください。
データ パーティショニング: 規模の最大化
異なる複数のデータ パーティショニング メカニズムを組み合わせることができます。データは複数のスプレッドシート ワークブックにパーティショニングでき、そのそれぞれを複数のワークシートにパーティショニングできます。それぞれのワークブックに同じ名前のワークシートがあることが重要です。セキュリティ フィルタを使うことで、モバイル デバイスに送信されるデータ量がさらに減少する可能性があります。この組み合わせにより、アプリの規模が最大限に引き上げられます。
アプリの各ユーザーが必要としているのが、テーブル全体の比較的小さなサブセットのみである限り、基になるデータはこの方法でほぼ永久的にスケーリング可能です。Smartsheet プラットフォームのユーザーは、Smartsheet が定める行数上限である 20,000 行を超えたスケーリングを簡単に行えます。Google スプレッドシート プラットフォームのユーザーは、Google が定めるセル上限である 1,000 万セルを超えたスケーリングを簡単に行えます。
データ パーティショニング: その他のシナリオ
データ パーティショニングは主に規模の大きな状況でパフォーマンスを高めるための機能ですが、比較的一般的なシナリオにおいて、デプロイ規模を調節するために便利に使われるメカニズムにもなり得ます。時折、パフォーマンス以外の理由から、データセットを物理的に別々のコンテナ(単一の Google アカウント ソースからアクセス可能な単一のデータベースまたはスプレッドシート ファイルのテーブル)で維持する必要があるケースがあります。たとえば、あるアプリが異なる 5 社のクライアントで使われている場合、各クライアントのデータをそれぞれ別のシートに保管することが重要であるかもしれません。しかし構築するアプリは 1 つにして 5 社全社で使ってもらいたい場合には、データ パーティションが便利なソリューションとなります。構築、維持、配布するアプリは 1 つでも、各クライアントには自社のデータのみが表示され、各クライアントのデータセットはすべて物理的に区別された状態で維持されます。