2012-04-13 4 views
1

NoSQLデータベース用の抽象レイヤーを作成することについてはquestions in the pastでしたが、提供されるほとんどの機能を失うことなく実際には可能ではなかったほどです。DynamoDbとAzureテーブルの抽象レイヤーに問題がありますか?

これは最近、MicrosoftのAzureテーブルストレージとほぼ同じように見えるAmazonのDynamoDbの導入によって変更されたので、私はオープンソースの抽象化レイヤーを検討しています。誰もが抽象概念を愛しているのは、雇用主にこれらの「新しい」技術を採用するよう説得しようとするときに、より多くの力を与えるからです。

は、私の知る限り

AzureTable.RowKey == DynamoDB.HashKey 
AzureTable.PartitionKey == DynamoDB.RangeKey 

を言うことができるように誰もが発生する可能性があると私は、この抽象化レイヤーを作成することにより、どのような機能を失う可能性がどのような問題が見えますか?

両方が同じ方法でデータを分割して表示され、そのクエリは類似しています。

私が気づいた最初の事は、MicrosoftのC#のSDKは、AmazonのC#のオブジェクトの永続化フレームワークはHashKeyRangeKeyプロパティに属性を使用し、一方、TableServiceEntityから派生するクラスを必要とすることです。

+0

この抽象レイヤーの作成を進めても、オープンソースで利用できますか? –

+0

Azureテーブルはワイドカラムストアであり、AWS DynamoDBはドキュメントストアであるため、これはいい考えではないと思います。この場合、Azureテーブル対AWS SimpleDB、またはAWS DynamoDBとAzure DocumentDBを考慮する必要があります。 –

+0

2012年以降、多くの変更がありました。Azure DocumentDBは当時存在しませんでした。 – Tim

答えて

1

ここで比較を確認していますが、Comparing Windows Azure Table Storage and Amazon DynamoDBを見て、私はあなたに抽象化しようとしていることを尋ねました。
コミュニティがあなたが達成しようとしていることの良識を持ち、あなたがそれを完璧にするのを助けてくれるようにするために、クラスと拘束を作成するときに選んだトレードオフを提示してください。
私の頭の上から、私はあなたが把握すべきいくつかの質問を提起するでしょう:
1.どのようにオブジェクトのサイズの違いを強制しようとしていますか? (1MB/64KB)
2. DynamoDBのプロビジョニングされたスループットをどのように抽象化しますか?
3. Azure Table Storageには256属性の制限がありますか?

幸運

+0

理想的には、私はAzureまたはAmazon EC2に、コードを再因子化することなく展開できるようにしたいと考えています。私の雇用主は、特定のベンダーに縛られていないソリューションを受け入れる可能性が高くなります。 – Tim

+0

DynamoDBを使用する私のプロジェクトでは、効率的に使用するには多くのアプリケーションコードが必要です.DBレイヤの抽象化は少し冗長に見えます –

関連する問題