2012-01-24 4 views
7

私のアプリケーション用のバックエンドWebサービスを選択したいと思います。これらのサービス(Parse、Proxomo、Cocoafish、StackMobなど)のドキュメントを読むと、スキーマレス形式でデータを格納することを提案している一方で、スキーマを事前に指定する必要があることが示されています。私はデータのスキーマが何であるかを理解しており、スキルレスは使いやすく、それぞれのメリットとデメリットを知りたいと思っています。どんな説明も大歓迎です。スキーマレスデータをスキーマを使用してデータを格納することの利点

答えて

6

最も大きな違いはスケーラビリティです。

スキーマを持つデータストレージソリューションは、スキーマフリーのデータストレージソリューションよりも配布がずっと難しくなっています。フォールト・トレランスのためのキー・バリュー・ペアの複製(スキーマ・フリー)が本当に簡単です。高速な読み取り時間と最終的な一貫性を備えた高速書き込みを容易にするために、ノード間でコピーを配布することは本当に簡単です。独自のデータベースを管理している場合は、複数のサーバーに拡張する必要がある場合にスキーマフリーソリューションを管理する方がはるかに簡単です。サービスを使用している場合、これはスキーマフリーのソリューションが通常安価で高速であることを意味します。

スキーマを使用しない場合の問題は、さまざまなデータセットやテーブルでトランザクションと一貫性が必要な場合に発生します。これはすべてコードで行う必要があります。

したがって、結論は次のとおりです。高速アクセスで大量のボリュームデータが必要な場合は、スキーマを使用しないでください。一方、データサイズと負荷がスキーマベースのシステムよりも控えめであれば、より良い結果が得られます。

どのサービスを使用するかを選択する際に役立つ必要がある場合は、アプリケーションでread/sec write/secと予想されるデータサイズ分析を行い、次に安価なソリューションを選択することをお勧めします。これらのサービスはすべてあなたの負荷に比例すると思われますが、コストが決定要因になります。

1

私はこの上の本当の専門家ではないが、私が読んだものから、ここで何私の認識です:時間の

  • ほとんどは、スキーマレスデータベースを簡単にキー/値、JSONオブジェクトを格納することができます。したがって、アプリケーション内で操作するオブジェクトをDBストレージに橋渡しするのは非常に簡単です。 オブジェクトがDBで受け入れられる形式に直接なっているため、オブジェクトがORM(Object Relational Mapper)を使用する必要はありません(ほとんどの場合、アプリケーション内にあるオブジェクトからJSONを生成するのは簡単です)

  • スキーマがない場合は、データベースに保存するオブジェクトのプロパティを簡単に調整(追加/削除)することができます。スキーマの更新やデータの移行は必要ありません。古いスキーマを新しいスキーマに変換します。

  • CONsのスキルのために、私の感想は、あなたが標準のSQLでデータを取得するために行うことができる制限を表現できないことです(あなたはどんな結合もしません)ので、 dbデータからデータを取り出し、スキーマレスエンジンによって提供されるものを確認したいとします。

+0

あなたの考えと説明に感謝しているYonel。私はWebサービスだけでなく一般的なプログラミングでもあるので、私は間違っているかもしれませんが、(3番目のポイントに戻って)スキームレスデータ格納サービスは、実際にはデータを取得するためのフィルタリングです。もう少しお待ちして、あなたの答えを正しいものとしてマークし、賞金を与えます。 – chatur

関連する問題