maemaewaterの日記

エンジニア兼ゲーマーの人の日記です。PHP/Python/JavaScript/C#/C++などによるプログラムに関することを主に書いています。

DynamoDBでのqueryの使用 (AWS SDK for PHP version 2)

Amazon DynamoDBではHash KeyとRange Keyをテーブルに設定することができますが、この場合、queryを使用して指定したHash Keyに対してRange Keyの値の範囲を指定して検索することができます。

PHPを指定してqueryを使用するプログラムは次の通りです。テーブルtest_rをあらかじめ作成してから実行します。test_rはid(Hash Key)とdate(Range Key)を設定しています。

(AWS SDK for PHP version 2を使用)

<?php
require_once 'AWSSDKforPHP/aws.phar';

use Aws\Common\Aws;

$aws = Aws::factory('/[入力する]/config.php');

$ddb = $aws->get('dynamodb');

date_default_timezone_set("Asia/Tokyo");
$dateString = date("Y-m-d H:i:s", strtotime("now"));

$put_result = $ddb->putItem(array(
        'TableName' => 'test_r',
        'Item' => array(
                'id' => array( 'S' => 'test_data'),
                'date' => array ('S' => $dateString),
                'text' => array('S' => 'this is test.')
                )
        )
    );

$query_result = $ddb->query(array(
        'TableName' => 'test_r',
        'HashKeyValue' => array(
                'S' => 'test_data'
        ),
        'RangeKeyCondition' => array(
                'ComparisonOperator' => 'LT',
                'AttributeValueList' => array(
                        array(
                                'S' => $dateString
                        )
                )
        )

    )
);
print_r($query_result["Items"]);
echo 'OK';
?>

プログラムを書くにはAmazonの説明(http://docs.amazonwebservices.com/ja_jp/amazondynamodb/latest/developerguide/GettingStartedPHPQuery.html)を参考にしています。

関連するページ: