« Amazon SimpleDBについて調べたことをまとめました | メイン | Amazon SimpleDBをコマンドラインから使う方法 »

2010年11月18日 (木)

Amazon SimpleDBをコマンドラインから使う方法

こんにちは、大橋です。

前回、Amazon SimpleDBに関して記事を書きましたが、
今回は実際にSimpleDBに触ってみる方法を書きます。

■ まずはツールの選択

GUIベースのツールでは以下のようなツールがあります。

・AWS Toolkit for Eclipse
     http://aws.amazon.com/eclipse/
・SDB Explorer(有料、試用期間あり)
     http://www.sdbexplorer.com/

最初のものはAmazon純製ですね。
また、CUIでは以下のようなものがあります。

・Amazon SimpleDB command line interface(amazon-simpledb-cli)
 http://code.google.com/p/amazon-simpledb-cli/

他にもツールはいろいろあると思いますが、サーバ管理者としては
CUIベースでできるものがほしいので、まずはamazon-simpledb-cli
を使ってAmazon SimpleDBを操作できるようになりたいと思います。

■ amazon-simpledb-cliのインストール

【モジュールのインストール】

amazon-simpledb-cliはPerlでできています。
最初に必要な以下のモジュールをインストールします。

  • Getopt::Long
  • Pod::Usage
  • Digest::SHA1
  • Digest::HMAC
  • XML::Simple

cpanmでインストールすると簡単です。以下のようにcpanmコマンドを実行すると
インストールできます。簡単ですね。

 > cpanm XML::Simple

cpanmの使い方インストール方法は以下が分かりやすいので参考にしてみてください。
http://www.omakase.org/perl/cpanm.html

 【Amazon SimpleDB用のPerlモジュールのインストール】

次にAmazon SimpleDB用のモジュールのインストールをします。
モジュールをダウンロードして、以下のようにコマンドを打ってインストールします。

> curl -Lo amazon-simpledb-perl-library.zip http://amazon-simpledb-perl-library.notlong.com
> unzip amazon-simpledb-perl-library.zip
> sitelib=$(perl -MConfig -le 'print $Config{sitelib}')
> sudo cp -r AmazonSimpleDB-*-perl-library/src/Amazon $sitelib/

これでモジュールセットアップは完了です。

 【simpledbコマンドのインストール】

> sudo curl -Lo /usr/local/bin/simpledb http://simpledb-cli.notlong.com
> sudo chmod +x /usr/local/bin/simpledb

なお、simpledbコマンドの1行目は 「#!/usr/bin/perl」 となっています。
必要に応じて「#!/usr/bin/env perl」などと書き換えてください。

【環境変数のセットアップ】

コマンドとして実行したり、.bashrcに記載するなどして以下のようにAmazon SimpleDBのアクセスキーと秘密キーをセットアップしておいてください。

export AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxx'
export AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx'

【インストールできているか確認する】

PATHが/usr/local/binに通っている場合は以下のようにコマンドを打つと
ちゃんと実行され、ヘルプがでます。/usr/local/bin/simpledb とコマンドを
打ってもOKです。

> simpledb
Usage:
     simpledb [opts] create-domain DOMAIN
     simpledb [opts] delete-domain DOMAIN
     simpledb [opts] list-domains

     simpledb [opts] put         DOMAIN ITEM [NAME=VALUE]...
     simpledb [opts] put-replace DOMAIN ITEM [NAME=VALUE]...
     simpledb [opts] get         DOMAIN ITEM [NAME]...
     simpledb [opts] delete      DOMAIN ITEM [NAME[=VALUE]]...

     simpledb [opts] select SELECTEXPRESSION

Options:
     --help         Print help and exit.

     --aws-access-key-id KEY
                    AWS access key id
                    [Defaults to $AWS_ACCESS_KEY_ID environment variable]

     --aws-secret-access-key SECRETKEY
                    AWS secret access key
                    [Defaults to $AWS_SECRET_ACCESS_KEY environment variable]

     --max COUNT
                    Maximum number of domains/items to retrieve and list.
                    [Defaults to all]

     --separator STRING
                    Separator between attribute name and value.
                    [Defaults to equals (=)]

Arguments:
     DOMAIN            Domain name
     ITEM              Item name
     NAME              Attribute name
     VALUE             Attribute value
     SELECTEXPRESSION  SimpleDB select expression

■ amazon-simpledb-cliを使ってみる】

【コマンド書式】

基本的な書式は以下です。

> simpledb コマンド名 ドメイン名 値

【ドメイン作成】

書籍(book)ドメインを作ってみましょう。以下のようにすればドメインが作成できます。

> simpledb create-domain book

【値を何かputしてみる】

putコマンドで書籍(book)ドメインに書籍アイテムを一つ入れてみましょう。Itemの主キーとなる部分にはITEM名には
ISBN(4873110963の部分)を登録します。その他は書籍名(name)、値段(price)、著者名(author)をいれます。

> simpledb put book 4873110963 name='Programming Perl' price=5565 author='Larry Wall'

【アイテムの属性(Attribute)に2個目の値を入れてみる】

SimpleDBで1つの属性に複数の値を入れることができます。以下のようにすれば、2つ目の値が入ります。
主キーとなる部分にはISBNを指定し、追加する属性のところだけ値をいれます。

> simpledb put book 4873110963 author='Tom Christiansen'

【アイテムを更新する】

アイテムの属性に値を追加するのではなくて、アイテムそのものを入れ替える場合は以下のようにput-replacekコマンドを使います。

> simpledb put-replace book 4873110963 name='Programming Perl' price=5565 author='Larry Wall'

【Select文でアイテムを取得する】

以下のようにSelect文でアイテムの情報が取得でき、出力が得られます。
アイテムごとの最初の行がITEMのキー(この場合はISBN)です。

> simpledb select 'select name, price, author from book'
4873110963   # ISBN(主キーの部分)
author=Larry Wall
author=Tom Christiansen
price=5565
name=Programming Perl

以下のようにLike文などSQLっぽいクエリを投げることができます。

> simpledb select 'select name, price, author from book where author like "Larry%" '

likeや=, >, <, OR, ANDなどいろいろな演算子が使えます。詳しくは以下あたりから
情報をたどるといろいろなクエリが分かります。

http://docs.amazonwebservices.com/AmazonSimpleDB/latest/DeveloperGuide/index.html?UsingSelect.html

機会があれば、もう少し丁寧にクエリを解説したいですが、今回はスキップします。

【アイテムをgetする】

以下のようにITEMのキーを指定して、アイテムを1つ取得することができます。

> simpledb get book 4873110963 
author=Larry Wall
author=Tom Christiansen
price=5565
name=Programming Perl

【アイテムを削除する】

以下のようにITEMのキーを指定して、アイテムを1つ削除できます。

> simpledb delete book 4873110963

【ドメインを削除する】

最後にドメインの削除です。以下のようにdelete-domainコマンドで削除できます。

> simpledb delete-domain book

【まとめ】
以上がAmazon SimpleDBをコマンドラインから使う方法の紹介です。

一通りこれだけのコマンドが分かっていれば、デバッグするなど簡単な
オペレーションはだいぶ便利になると思います。

次回はJavaでAmazon SimpleDBを操作してみたいと思います。また、Consistent ReadやConditional Put/Deleteについても近いうちに書いてみるつもりです。

トラックバック

このページのトラックバックURL:
http://bb.lekumo.jp/t/trackback/493401/25431289

Amazon SimpleDBをコマンドラインから使う方法を参照しているブログ:

コメント

コメントを投稿

採用情報

株式会社フレクトでは、事業拡大のため、
・Salesforce/Force.comのアプリケーション開発
・HerokuやAWSなどのクラウドプラットフォーム上での
Webアプリケーション開発
をする、エンジニアを募集中です。

未経験でも、これからクラウドをやってみたい方、
是非ご応募下さい。

フレクト採用ページへ

プロフィール

執筆者:大橋 正興
株式会社フレクト 取締役

【得意分野/業務分野】

B2Cのサイト開発を主な業務領域とするシステムエンジニアです。あと、Salesforce.com認定デベロッパーです。AW、Salesforce、システム基盤構築・運用、サーバ/インフラ構築・運用が今の注力分野です。

【簡単な経歴】

埼玉県所沢市出身。1979年生まれ。大学からSFC。修士(政策・メディア)。ソニーエリクソンで携帯電話のアプリ・ミドル の先行開発に従事したあと、フレクトに参加。2009年6月より取締役。ベターホームレシピの開発ディレクション等、B2Cサイト構築においてアプリ開発やインフラ構築などに従事中。

会社紹介

株式会社フレクトは、
認定コンサルタント
認定上級デベロッパー
認定デベロッパー
が在籍している、セールスフォースパートナーです。
セールスフォースパートナー
また、heroku partnersにも登録されています。
herokuパートナー
株式会社フレクトのSalesforce/Force.com
導入支援サービス
弊社の認定プロフェッショナルが支援致します。
・Visualforce/Apexによるアプリ開発
・Salesforceと連携するWebアプリ開発
も承っております。
セールスフォースご検討の際は、
お気軽にお問合せください。

Twitter

頻繁ではないですが、ときどきツイートしています。 お気軽にフォローしてください。

2019年2月

          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    
ブログ powered by TypePad