"github.com/apache/thrift/lib/go/thrift"
host := "<YourPublicThriftIP>"
protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
socket, err := thrift.NewTSocket(net.JoinHostPort(host, port))
fmt.Println("failed to create new socket err: " + err.Error())
transport := thrift.NewTFramedTransport(socket)
client := NewTHBaseServiceClientFactory(transport, protocolFactory)
if err := transport.Open(); err != nil {
fmt.Fprintln(os.Stderr, "Error opening socket to "+host+":"+port, " ", err)
defer transport.Close()
ctx := context.Background()
tableName := "demo_test_table"
columnFamily := []byte("cf")
var ttl int32 = 7 * 86400
columnFamilies := []*TColumnFamilyDescriptor{
DataBlockEncoding: TDataBlockEncodingPtr(TDataBlockEncoding_FAST_DIFF),
CompressionType: TCompressionAlgorithmPtr(TCompressionAlgorithm_LZ4),
descriptor := &TTableDescriptor{
Qualifier: []byte(tableName),
Columns: columnFamilies,
exists, err := client.TableExists(ctx, descriptor.TableName)
fmt.Println("table exist err :" + err.Error())
err = client.CreateTable(ctx, descriptor, nil)
fmt.Println("create table err :" + err.Error())
ColumnValues: []*TColumnValue{
Qualifier: []byte("sample"),
err = client.Put(ctx, []byte(tableName), put)
fmt.Println("create table err :" + err.Error())
result, err := client.Get(ctx, []byte(tableName), get)
fmt.Println("get err :" + err.Error())
fmt.Println("get ret success")
fmt.Println("Rowkey:" + string(result.GetRow()))
for _, cv := range result.ColumnValues {
fmt.Println("Family:", string(cv.Family), "Qualifer:", string(cv.Qualifier), "Value:", string(cv.Value))
fmt.Println("get ret is nil")