Tablestore SDK for Go を使用して、完全なプライマリキーを指定して Wide Column モデルのテーブルから行を読み取ります。
前提条件
Tablestore SDK for Go をインストールし、クライアントを初期化します。
概要
GetRow を呼び出して、完全なプライマリキーを指定して行を読み取ります。 返される属性列、データバージョン、バージョンの時間範囲を制限したり、フィルターを使用して属性列を絞り込んだりできます。
func (tableStoreClient *TableStoreClient) GetRow(request *GetRowRequest) (*GetRowResponse, error)
次のサンプルでは、プライマリキーの値が row1 の行を example_table テーブルから読み取ります。
primaryKey := &tablestore.PrimaryKey{}
primaryKey.AddPrimaryKeyColumn("id", "row1")
request := &tablestore.GetRowRequest{
SingleRowQueryCriteria: &tablestore.SingleRowQueryCriteria{
TableName: "example_table",
PrimaryKey: primaryKey,
MaxVersion: 1,
},
}
response, err := client.GetRow(request)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.PrimaryKey)
fmt.Println(response.Columns)
パラメーター
GetRowRequest には、次のパラメーターが含まれています。
|
名前 |
型 |
説明 |
|
SingleRowQueryCriteria (必須) |
|
行のクエリ条件。 |
行のクエリ条件
SingleRowQueryCriteria には、次のパラメーターが含まれています。
|
名前 |
型 |
説明 |
|
TableName (必須) |
|
テーブル名。 |
|
PrimaryKey (必須) |
|
行の完全なプライマリキー。 自動採番主キー列を含む行を読み取るには、実際の自動採番値も指定します。 |
|
MaxVersion (任意) |
|
返すデータバージョンの最大数。 値を 0 に設定すると、 |
|
TimeRange (任意) |
|
バージョンの時間範囲。開始時間、終了時間、または正確なバージョンをミリ秒単位で指定します。 |
|
ColumnsToGet (任意) |
|
返す属性列。 このパラメーターを指定しない場合、すべての属性列が返されます。 |
|
Filter (任意) |
|
属性列のフィルター。 詳細については、「フィルターの使用」をご参照ください。 |
|
StartColumn (任意) |
|
名前範囲の開始属性列。 この列は結果に含まれます。 |
|
EndColumn (任意) |
|
名前範囲の終了属性列。 この列は結果から除外されます。 |
|
TransactionId (任意) |
|
ローカルトランザクション ID。 このパラメーターは、ローカルトランザクションで読み取りを行う場合にのみ指定します。 詳細については、「ローカルトランザクションの使用」をご参照ください。 |
レスポンス
GetRowResponse には、次のビジネス情報が含まれています。 行が存在しない場合、レスポンスにはプライマリキーや属性列は含まれません。
|
フィールド |
型 |
説明 |
|
|
|
行のプライマリキー。 |
|
|
|
返された属性列、値、およびバージョン。 |
使用例
時間範囲内のデータバージョンの読み取り
次のサンプルでは、過去 1 日以内に生成されたすべてのデータバージョンを読み取ります。
now := time.Now().UnixMilli()
request.SingleRowQueryCriteria.MaxVersion = 0
request.SingleRowQueryCriteria.TimeRange = &tablestore.TimeRange{
Start: now - 24*60*60*1000,
End: now,
}