こんにちは! JQです。
前回は『DtynamoDB編~Localを試してみる①~』と題して、DynamoDB Localを試してみました。
今回は『DtynamoDB編~Localを試してみる②~』と題して、DynamoDB LocalをBotoで試してみたいと思います。
1.Botoのインストール
先ずはBotoのインストールを行います。
1 2 3 |
$ sudo apt-get install python-setuptools $ sudo easy_install pip $ sudo pip install boto |
確認してみます。
1 2 3 4 5 6 7 |
$ python Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import boto >>> boto.Version '2.29.1' |
2.DynamoDB Localに接続
DynamoDB Localに接続してみます。
※keyは無視されますが、設定しておく必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ python Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from boto.dynamodb2.layer1 import DynamoDBConnection >>> conn = DynamoDBConnection( ... host='localhost', ... port=8000, ... aws_access_key_id='anything', ... aws_secret_access_key='anything', ... is_secure=False) >>> conn DynamoDBConnection:localhost >>> conn.list_tables() {u'TableNames': []} |
3.Table作成
Tableを作成してみます。
1 2 3 4 5 6 7 8 9 10 11 12 |
>>> from boto.dynamodb2.table import Table >>> from boto.dynamodb2.fields import HashKey, RangeKey >>> from boto.dynamodb2.types import NUMBER >>> Table.create( ... 'devkc', ... schema=[HashKey('dev_id'), RangeKey('timestamp', data_type=NUMBER)], ... throughput={'read': 5, 'write': 2}, ... connection=conn ... ) <boto.dynamodb2.table.Table object at 0x7f6e1d438990> >>> conn.list_tables() {u'TableNames': [u'devkc']} |
4.ItemのPut
続いてItemをPutしてみます。
1 2 3 4 5 6 7 8 9 |
>>> import uuid >>> import time >>> table = Table('devkc', connection=conn) >>> item = Item(table, data={ ... 'dev_id': str(uuid.uuid4()), ... 'timestamp': time.time() ... }) >>> item.save() True |
確認してみます。
1 2 3 4 5 |
>>> result = table.scan() >>> for d in result: ... print d['dev_id'], d['timestamp'] ... 00c322d5-3f6f-4617-b2b3-dd4d82d73b1f 1402992399.76725101470947265625 |
Localでも問題なく動作しています。
いかがでしたでしょうか?
次回もお楽しみに!!!