14

gae を使用したエンタープライズ管理システムであるアプリケーションを構築しています。私は、gae とデータストアを使用していくつかのアプリケーションを構築しましたが、大量のユーザーがトランザクションを入力する必要があり、管理および管理レポートが必要になるアプリケーションは一度もありませんでした。私が最も恐れているのは、クロス集計レポートやその他の詳細なレポート (またはビジネス インテリジェンス レポートやデータ操作) を作成する必要があるときに、gae のデータストア クエリとデータ プル制限に関する山ほどの問題に直面することです。それは本当に単なるアーキテクチャ上の好みですか、それともここに量的な懸念がありますか?

過去に、Oracle/MySql/MSSql に対して C++/c#/Java を使用してシステムを構築しました (複雑な、または頻繁にアクセスされるデータベースの結果でパフォーマンスを向上させるためにキャッシング レイヤーが散りばめられています)。

リレーショナル データの古い考え方を捨てて、空に浮かぶ大きな McHashTable の新しい世界に移行することを読み続けています...しかし、新しいことが常に良いとは限りません...上記に関する洞察や経験は役に立ちます。

4

2 に答える 2

22

Cloud SQL のよくある質問から:

Google Cloud SQL または App Engine Datastore を使用する必要がありますか?

これは、アプリケーションの要件によって異なります。Datastore は、非常にスケーラブルな NoSQL キー値 > ストレージを提供しますが、SQL データベースによって提供される複雑なクエリはサポートしません。Cloud SQL は複雑なクエリと ACID トランザクションをサポートしていますが、これはデータベースが「固定パイプ」として機能し、パフォーマンスのスケーラビリティが低下することを意味します。多くのアプリケーションでは、両方のタイプのストレージが使用されています。

分散キーを使用して db エンティティに大量の書き込み (1 秒あたり最大 XXX) が必要な場合は、Google App Engine データストアが真価を発揮します。

ユーザーが作成した複雑でランダムなクエリのサポートが必要な場合は、Google Cloud SQL の方が便利です。

于 2012-06-06T15:05:44.573 に答える
6

GAEデータストアで私がもっと怖いのは、インデックス番号の制限です。たとえば、フィールドによる検索や並べ替えが必要な場合は、+1インデックスが必要です。合計で200個のインデックスを持つことができます。10個の検索可能なフィールドを持つエンティティがあり、任意のフィールドで並べ替えることができる場合、約100個の組み合わせがあります。したがって、100個のインデックスが必要です。私はgaeのためにいくつかの小さなプロジェクトを開発しました-そしてこれはサクセスストーリーです。しかし、大きなものが来るとき-これはgaeのためではありません。

キャッシュについて-gaeで実行できますが、分散キャッシュの動作は非常に遅くなります。キャッシュされた値をメモリに保持するRESTfullAPIを使用して、永続的なバックエンドのプライベートシングルインスタンスを作成することを好みます。フロントエンドインスタンスは、このAPIを呼び出して値を取得/設定します。

gaeを使って複雑なシステムを構築することは可能かもしれませんが、これは小さなアプリケーション/サービスのセットになります。

于 2012-06-06T06:09:20.783 に答える