このトピックでは、PHP SDK を使用して Tablestore データテーブルを作成する方法について説明します。
使用上の注意
データテーブルを作成した後、データに対して操作を実行する前に、テーブルがロードされるまで待機してください。そうしないと、操作は失敗します。このプロセスには通常数秒かかります。
前提条件
メソッドの説明
public function createTable(array $request)サンプルコード
データテーブルの作成
次のサンプルコードは、1 つの String 型のプライマリキーを含む test_table テーブルを作成します。
$request = array (
// テーブル構造情報
'table_meta' => array (
'table_name' => 'test_table',
// データテーブルを作成するには、少なくとも 1 つのプライマリキーが必要です
'primary_key_schema' => array (
array('id', PrimaryKeyTypeConst::CONST_STRING)
),
// (オプション) 事前定義列を追加します
'defined_column' => array (
array('name', DefinedColumnTypeConst::DCT_STRING)
)
),
// (オプション) テーブル構成情報
'table_options' => array (
// (オプション) データのライフサイクル。-1 は、データの有効期限が切れないことを示します
'time_to_live' => -1,
// (オプション) バージョンの最大数
'max_versions' => 1,
// (オプション) 最大バージョンオフセット
'deviation_cell_version_in_sec' => 86400,
// (オプション) 更新を許可するかどうか
'allow_update' => true
),
// (オプション) Stream 情報を設定します
'stream_spec' => array (
'enable_stream' => true,
'expiration_time' => 168
),
// データテーブルを作成するときは、予約済みの読み取り/書き込みスループットを設定する必要があります (CU モードの高性能インスタンスのみ、予約済みの読み取り/書き込みスループットにゼロ以外の値を設定できます)
'reserved_throughput' => array (
'capacity_unit' => array (
'read' => 0,
'write' => 0
)
)
);
try{
$client->createTable( $request );
echo "Create table succeeded."; // テーブルの作成に成功しました。
} catch (Exception $e) {
echo "Create table failed."; // テーブルの作成に失敗しました。
}セカンダリインデックスを持つデータテーブルを作成する
次のサンプルコードは、セカンダリインデックスを持つデータテーブルを作成します。
$request = array (
// テーブル構造情報
'table_meta' => array (
'table_name' => 'test_table',
// プライマリキー
'primary_key_schema' => array (
array('id', PrimaryKeyTypeConst::CONST_STRING)
),
// 事前定義列
'defined_column' => array (
array('name', DefinedColumnTypeConst::DCT_STRING)
)
),
// 予約済みの読み取り/書き込みスループット (CU モードの高性能インスタンスのみ、予約済みの読み取り/書き込みスループットにゼロ以外の値を設定できます)
'reserved_throughput' => array (
'capacity_unit' => array (
'read' => 0,
'write' => 0
)
),
// セカンダリインデックス情報
'index_metas' => array(
array(
'name' => 'test_table_index',
'primary_key' => array('id'),
'defined_column' => array('name'),
'index_type' => IndexTypeConst::LOCAL_INDEX,
'index_update_mode' => IndexUpdateModeConst::SYNC_INDEX
)
)
);
try{
$client->createTable( $request );
echo "Create table succeeded."; // テーブルの作成に成功しました。
} catch (Exception $e) {
echo "Create table failed."; // テーブルの作成に失敗しました。
}