**
Rubyからクエリー実行
- それではRubyからクエリーを実行してみたいと思います。
以下のスクリプトでは「総数」「HashkyeがuserA」「HashkeyがuserAでRange_keyが7月」の数をカウントしています。
1#!/usr/bin/env ruby23require 'rubygems'4require 'aws-sdk'56dynamo_db = AWS::DynamoDB.new(7 :dynamo_db_endpoint => "dynamodb.ap-northeast-1.amazonaws.com",8 :access_key_id => 'xxxxxxxxxxxx',9 :secret_access_key => 'xxxxxxxxxxxxxxx'10)1112table = dynamo_db.tables['DevTable']13table.hash_key = [:Id, :string]14table.range_key = [:DateTime, :string]1516item = table.items1718# 総数1920puts item.count2122# Hash_keyで絞込み2324puts item.query(:hash_value => "userA").count2526# Hash_key+Range_keyで絞込み2728puts item.query(29 :hash_value => "userA",30 :range_value => "2013-07-01".."2013-07-31"31).count- 他のオプションでは以下があります。
・:range_value
・:rangegreaterthan
・:rangelessthan
・:range_gte
・:range_lte
・:rangebeginswith
アイテム削除
- 次に、登録したアイテムの削除を行なってみます。
下記スクリプトではHash_keyがuserAのアイテムを全て削除します。
1#!/usr/bin/env ruby23require 'rubygems'4require 'aws-sdk'56#AWS.config(config)78dynamo_db = AWS::DynamoDB.new(9 :dynamo_db_endpoint => "dynamodb.ap-northeast-1.amazonaws.com",10 :access_key_id => 'xxxxxxxxxxxx',11 :secret_access_key => 'xxxxxxxxxxxxxxx'12)1314table = dynamo_db.tables['DevTable']15table.hash_key = [:Id, :string]16table.range_key = [:DateTime, :string]1718item = table.items1920# userAの総数カウント2122puts item.query(:hash_value => "userA").count2324# 削除2526item.query(:hash_value => "userA").each do |i|27 i.delete28end2930# userAの総数カウント3132puts item.query(:hash_value => "userA").countテーブル削除
- 最後にテーブルを削除してみます。
1#!/usr/bin/env ruby23require 'rubygems'4require 'aws-sdk'56#AWS.config(config)78dynamo_db = AWS::DynamoDB.new(9 :dynamo_db_endpoint => "dynamodb.ap-northeast-1.amazonaws.com",10 :access_key_id => 'xxxxxxxxxxxx',11 :secret_access_key => 'xxxxxxxxxxxxxxx'12)1314table = dynamo_db.tables['DevTable']15table.hash_key = [:Id, :string]16table.range_key = [:DateTime, :string]1718table.deleteいかがでしたでしょうか?
次回は『Amazon Redshift編~RubySDKパート①~』と題して、RedshiftをRubySDKから作成してみたいと思いますので、お楽しみに!