Go SDK 可根據完整主鍵讀取寬表模型資料表中的一行資料。
前提條件
安裝Tablestore Go SDK並初始化用戶端。
功能說明
調用 GetRow 根據完整主鍵讀取一行資料。可以限定返回的屬性列、資料版本和版本時間範圍,也可以使用過濾器篩選屬性列。
func (tableStoreClient *TableStoreClient) GetRow(request *GetRowRequest) (*GetRowResponse, error)
以下樣本讀取 example_table 中主索引值為 row1 的一行資料。
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(可選) |
|
最多返回的版本數。 |
|
TimeRange(可選) |
|
版本時間範圍,包括起始時間、結束時間或指定版本,單位為毫秒。 |
|
ColumnsToGet(可選) |
|
要返回的屬性列名稱。未設定時返回所有屬性列。同時設定 |
|
Filter(可選) |
|
屬性列過濾器。更多資訊,請參見過濾器。 |
|
StartColumn(可選) |
|
屬性列名稱範圍的起始列,結果包含該列。 |
|
EndColumn(可選) |
|
屬性列名稱範圍的結束列,結果不包含該列。 |
|
TransactionId(可選) |
|
局部事務 ID。僅在局部事務內讀取資料時設定。更多資訊,請參見局部事務。 |
傳回值
GetRowResponse 包含以下商務資訊。如果指定行不存在,響應不包含主鍵和屬性列。
|
欄位 |
類型 |
說明 |
|
|
|
行主鍵。 |
|
|
|
返回的屬性列及其值和版本號碼。 |
情境樣本
讀取指定時間範圍內的資料版本
以下樣本讀取目前時間往前一天內的資料版本。
now := time.Now().UnixMilli()
request.SingleRowQueryCriteria.MaxVersion = 0
request.SingleRowQueryCriteria.TimeRange = &tablestore.TimeRange{
Start: now - 24*60*60*1000,
End: now,
}