NoSQLデータベース用の抽象レイヤーを作成することについてはquestions in the pastでしたが、提供されるほとんどの機能を失うことなく実際には可能ではなかったほどです。DynamoDbとAzureテーブルの抽象レイヤーに問題がありますか?
これは最近、MicrosoftのAzureテーブルストレージとほぼ同じように見えるAmazonのDynamoDbの導入によって変更されたので、私はオープンソースの抽象化レイヤーを検討しています。誰もが抽象概念を愛しているのは、雇用主にこれらの「新しい」技術を採用するよう説得しようとするときに、より多くの力を与えるからです。
は、私の知る限り
AzureTable.RowKey == DynamoDB.HashKey
AzureTable.PartitionKey == DynamoDB.RangeKey
を言うことができるように誰もが発生する可能性があると私は、この抽象化レイヤーを作成することにより、どのような機能を失う可能性がどのような問題が見えますか?
両方が同じ方法でデータを分割して表示され、そのクエリは類似しています。
私が気づいた最初の事は、MicrosoftのC#のSDKは、AmazonのC#のオブジェクトの永続化フレームワークはHashKey
とRangeKey
プロパティに属性を使用し、一方、TableServiceEntity
から派生するクラスを必要とすることです。
この抽象レイヤーの作成を進めても、オープンソースで利用できますか? –
Azureテーブルはワイドカラムストアであり、AWS DynamoDBはドキュメントストアであるため、これはいい考えではないと思います。この場合、Azureテーブル対AWS SimpleDB、またはAWS DynamoDBとAzure DocumentDBを考慮する必要があります。 –
2012年以降、多くの変更がありました。Azure DocumentDBは当時存在しませんでした。 – Tim