こんにちは! JQです。
前回は『Amazon DynamoDB編~DynamoDBをはじめてみよう!パート⑤~』ということで、DynamoDBでクエリーを実行してみました。
今回は『Amazon DynamoDB編~DynamoDBをはじめてみよう!パート⑥~』と題して、DynamoDBにRubyからクエリーを実行してみたいと思います。
事前準備
※前回の『Amazon DynamoDB編~DynamoDBをはじめてみよう!パート⑤~』で作成したデータを利用します。
クエリー実行
Rubyからクエリー実行
1. それではRubyからクエリーを実行してみたいと思います。
以下のスクリプトでは「総数」「Hash_kyeがuserA」「Hash_keyがuserAでRange_keyが7月」の数をカウントしています。
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 27 28 |
#!/usr/bin/env ruby require 'rubygems' require 'aws-sdk' dynamo_db = AWS::DynamoDB.new( :dynamo_db_endpoint => "dynamodb.ap-northeast-1.amazonaws.com", :access_key_id => 'xxxxxxxxxxxx', :secret_access_key => 'xxxxxxxxxxxxxxx' ) table = dynamo_db.tables['DevTable'] table.hash_key = [:Id, :string] table.range_key = [:DateTime, :string] item = table.items # 総数 puts item.count # Hash_keyで絞込み puts item.query(:hash_value => "userA").count # Hash_key+Range_keyで絞込み puts item.query( :hash_value => "userA", :range_value => "2013-07-01".."2013-07-31" ).count |
2. 他のオプションでは以下があります。
・:range_value
・:range_greater_than
・:range_less_than
・:range_gte
・:range_lte
・:range_begins_with
アイテム削除
3. 次に、登録したアイテムの削除を行なってみます。
下記スクリプトではHash_keyがuserAのアイテムを全て削除します。
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 27 28 29 |
#!/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 => 'xxxxxxxxxxxx', :secret_access_key => 'xxxxxxxxxxxxxxx' ) table = dynamo_db.tables['DevTable'] table.hash_key = [:Id, :string] table.range_key = [:DateTime, :string] item = table.items # userAの総数カウント puts item.query(:hash_value => "userA").count # 削除 item.query(:hash_value => "userA").each do |i| i.delete end # userAの総数カウント puts item.query(:hash_value => "userA").count |
テーブル削除
4. 最後にテーブルを削除してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/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 => 'xxxxxxxxxxxx', :secret_access_key => 'xxxxxxxxxxxxxxx' ) table = dynamo_db.tables['DevTable'] table.hash_key = [:Id, :string] table.range_key = [:DateTime, :string] table.delete |
いかがでしたでしょうか?
次回は『Amazon Redshift編~RubySDKパート①~』と題して、RedshiftをRubySDKから作成してみたいと思いますので、お楽しみに!