こんにちは! JQです。
前回は『Amazon DynamoDB編~DynamoDBをはじめてみよう!パート④~』ということで、DynamoDBをRuby SDKからからデータをインプットしてみました。
今回は『Amazon DynamoDB編~DynamoDBをはじめてみよう!パート⑤~』と題して、DynamoDBをクエリーを実行してみたいと思います。
DynamoDBの準備
「PrimaryKeyType」が「Hash and Range」のテーブルを作成
1. 今回は分かりやすいようにRange_key有りの上記のテーブルを作成します。
以下の名前とタイプで作成してみます。
※今回はIndexは利用しません。
Hash : Id :String
Range : DateTime:String
※以前の記事『Amazon DynamoDB編~DynamoDBをはじめてみよう!パート①~』を参考にして下さい。
サンプルデータのインプット
2. 次に、簡単なサンプルデータをインプットするスクリプトを実行します。
Hash_keyには配列の値をランダムに登録、Range_keyである「DateTime」では登録するデータが1日ずつ増えていきます。
また、分かりやすいように番号も登録しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#!/usr/bin/env ruby require 'rubygems' require 'aws-sdk' #AWS.config(config) dynamo_db = AWS::DynamoDB.new( :dynamo_db_endpoint => "dynamodb.ap-northeast-1.amazonaws.com", :access_key_id => 'xxxxxxxxxxxxxxxxxx', :secret_access_key => 'xxxxxxxxxxxxxxxxxx' ) table = dynamo_db.tables['DevTable'] table.hash_key = [:Id, :string] table.range_key = [:DateTime, :string] date = Time.now user = ["userA","userB","userC"] for i in 001..100 do if (i % 10) == 0 then date = date + 24*60*60 end table.items.create("Id" => user.sample, "DateTime" => "#{date.strftime("%Y-%m-%d")}", "number" => i) end |
クエリーの実行
WEBコンソールからクエリーの実行
それでは、WEBコンソールからクエリーを実行してみましょう!
3. 該当のテーブルの「Browse Items」ページで「Scan」から「Query」に変更します。
4. Range_keyでは以下の方法を選択出来ます。
5. Hash_keyが「userA」の情報だけ取得してみます。
6. さらにRange_keyを利用して7月の日付のみを取得してみます。
「Range_key」を「between」にして「2013-07-01」~「2013-07-31」を入力してクリックしてみます。
いかがでしたでしょうか?
次回は『Amazon DynamoDB編~DynamoDBをはじめてみよう!パート⑥~』ということで、クエリをRubyから実行してみたいと思います。
お楽しみに!