Amazon DynamoDB編~DynamoDBをはじめてみよう!パート⑥~

**

Rubyからクエリー実行

  1. それでは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
  1. 他のオプションでは以下があります。

・:range_value

・:rangegreaterthan

・:rangelessthan

・:range_gte

・:range_lte

・:rangebeginswith

アイテム削除

  1. 次に、登録したアイテムの削除を行なってみます。

下記スクリプトでは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. 最後にテーブルを削除してみます。
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から作成してみたいと思いますので、お楽しみに!

この記事を書いた人

aws-recipe-user