Zetta TableStore Go Client
$ go get github.com/zhihu/zetta-client-go
cfs := []* tspb.ColumnFamilyMeta {
{
Id : 0 ,
Name : "default" ,
Attributes : nil ,
},
}
cs := []* tspb.ColumnMeta {
{
Id : 0 ,
Name : "name" ,
ColumnType : & tspb.Type {Code : tspb .TypeCode_STRING },
IsPrimary : true ,
NotNull : false ,
Family : "default" ,
},
{
Id : 1 ,
Name : "age" ,
ColumnType : & tspb.Type {Code : tspb .TypeCode_STRING },
IsPrimary : false ,
NotNull : false ,
Family : "default" ,
},
}
tableMeta := & tspb.TableMeta {
TableName : "users" ,
ColumnFamilies : cfs ,
Columns : cs ,
PrimaryKey : []string {"name" }, // there must be a PK
Attributes : nil ,
Interleave : nil ,
ExtraStatements : nil ,
}
if err := adminClient .CreateTable (ctx , DB_NAME , tableMeta , nil ); err != nil {
panic (err )
}
TABLE_NAME := "users"
cols := []string {"name" , "age" }
vals := []interface {}{"user-01" , "18" }
rawMS := zetta .InsertOrUpdate (TABLE_NAME , cols , vals )
err := client .Mutate (context .Background (), rawMS )
if err != nil {
panic (err )
}
keys := zetta.KeySet {
Keys : []zetta.Key {[]interface {}{"user-01" }},
}
resp , err := client .Read (context .Background (), "users" , keys , "" , []string {"name" , "age" }, 10 )
if err != nil {
panic (err )
}
for _ , row := range resp .SliceRows {
if len (row .GetCells ()) != 2 {
panic ("invalid values" )
}
name := row .Cells [0 ].GetValue ()
age := row .Cells [1 ].GetValue ()
fmt .Println ("read name:" , name .GetStringValue ())
fmt .Println ("read age:" , age .GetStringValue ())
}