SimpleDB
Amazonが提供しているWebServiceの一つであるSimpleDBに関するTipsを記載します。
概要
SimpleDBとはAmazonが提供している非リレーショナル型のデータストアです。
公式はこちら。
RDBと同様にクエリが利用できますが、RDBでは無いのでSQLライクのクエリであり、又、様々な制約が存在します。
- JOINは存在しない。
- ORDER BYで指定できる項目は1項目のみ、且つ、Where句で指定されている必要がある。
- データ取得条件には含めたくないがソート条件に含めたい場合は、"select * from dom where attr is not null order by attr;"のようにします。
- プライマリキーで条件を絞り込む場合は、itemName()と指定します。itemNameではなく括弧を含めた形でなければなりません。
- "select * from dom where itemName()='aa';"
詳しくはデベロッパーズガイドを参照して下さい。※ 英語のみ
用語
- Domain
- ドメイン。
RDBでいうところのテーブルに当たります。 - Attribute
- アトリビュート。
RDBでいうところのカラム名に当たります。
マルチバリュー対応なので、一レコードに対して複数の値を設定することが可能です。
又、可変となりますので、1レコード目にはAttribute:Aが存在するが2レコード目にはAttribute:Bが存在しないこともあります。 - item
- アイテム。
RDBでいうところの値になります。
値は全てString型となりますので、日付型を利用する場合はAmazonから提供されているAWS-SDKのSimpleDBUtilsクラスのエンコードメソッド、デコードメソッドを利用します。 - itemName()
- アイテムネーム。
RDBでいうところのプライマリキーになります。
制限事項
SimpleDBにはデータ量に関する制限事項が存在するので、利用する際はその制限事項に抵触しないように気をつける必要があります。
ストレージの制約
Attirbute | 最大量 |
---|---|
ドメイン | 100アクティブドメイン |
ドメインサイズ | 10GB |
ドメイン毎のattribute数 | 1,000,000,000 |
item毎のattribute数 | 256 |
attributeサイズ | 1024byte |
ストレージの制約
Attirbute | 最大量 |
---|---|
クエリ結果により返されるitem数 | 2500 |
クエリ実行時間 | 5秒以内 |
クエリpredicateのattribute nameの数 | 1 |
predicateに対する比較演算 | 20演算 |
クエリ展開に対するpredicates | 20 |
利用に当たって
AmazonからSDKが提供されています。
- http://aws.amazon.com/code
- http://docs.amazonwebservices.com/AWSJavaSDK/latest/javadoc/index.html
- 又、eclipseのプラグインも提供されています。※ SimpleDB専用ではなくAmazonWebServiceのプラグインの一部です。
- http://aws.amazon.com/jp/eclipse/
コメント