Topik ini menjelaskan cara menggunakan Tablestore SDK untuk Go untuk mengambil data dengan mengeksekusi pernyataan SQL.
Prasyarat
Klien telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien Tablestore.
Tabel pemetaan telah dibuat untuk tabel tempat Anda ingin mengambil data. Untuk informasi lebih lanjut, lihat Buat Tabel Pemetaan.
Parameter
Parameter | Deskripsi |
query | Pernyataan SQL. Konfigurasikan parameter ini berdasarkan fitur yang diperlukan. |
Contoh
Contoh berikut menunjukkan cara menggunakan pernyataan select pk, long_value, double_value, string_value, bool_value from test_table limit 20 untuk mengambil data dalam tabel test_table dan mengembalikan maksimal 20 baris data. Sistem akan mengembalikan tipe permintaan dari pernyataan query, skema nilai pengembalian, dan hasil yang dikembalikan.
func queryData(client *tablestore.TableStoreClient) {
// Buat permintaan SQL.
request := &tablestore.SQLQueryRequest{Query: "select pk, long_value, double_value, string_value, bool_value from test_table limit 20"}
// Dapatkan respons terhadap permintaan SQL.
response, err := client.SQLQuery(request)
if err != nil {
panic(err)
}
// Dapatkan tipe permintaan SQL.
fmt.Printf("tipe respons: %v\n", response.StmtType.String())
// Dapatkan skema nilai pengembalian dari permintaan SQL.
columns := response.ResultSet.Columns()
fmt.Printf("meta tabel respons: [")
for i := 0; i < len(columns); i++ {
fmt.Printf("%v:%v ", columns[i].Name, columns[i].Type.String())
}
// Dapatkan hasil yang dikembalikan dari permintaan SQL.
resultSet := response.ResultSet
fmt.Println("]\nhasil set respons:")
for resultSet.HasNext() {
row := resultSet.Next()
stringValue, _ := row.GetString(0)
fmt.Printf("%v, ", stringValue)
stringValue, _ = row.GetStringByName("pk")
fmt.Printf("%v, ", stringValue)
longValue, _ := row.GetFloat64(1)
fmt.Printf("%v, ", longValue)
longValue, _ = row.GetFloat64ByName("long_value")
fmt.Printf("%v, ", longValue)
floatValue, _ := row.GetFloat64(2)
fmt.Printf("%v, ", floatValue)
floatValue, _ = row.GetFloat64ByName("double_value")
fmt.Printf("%v, ", floatValue)
stringValue, _ = row.GetString(3)
fmt.Printf("%v, ", stringValue)
stringValue, _ = row.GetStringByName("string_value")
fmt.Printf("%v, ", stringValue)
boolValue, _ := row.GetBool(4)
fmt.Printf("%v, ", boolValue)
boolValue, _ = row.GetBoolByName("bool_value")
fmt.Printf("%v\n", boolValue)
}
}Contoh respons:
tipe respons: SQL_SELECT
meta tabel respons: [pk:STRING long_value:INTEGER double_value:DOUBLE string_value:STRING bool_value:BOOLEAN]
hasil set respons:
binary_null, binary_null, 0, 0, 1, 1, a, a, false, false
bool_null, bool_null, 0, 0, 1, 1, a, a, false, false
double_null, double_null, 0, 0, 1, 1, a, a, false, false
long_null, long_null, 0, 0, 1, 1, a, a, false, false
string_null, string_null, 0, 0, 1, 1, , , false, false