让我们一起爱米兰
站内搜搜:
移动设备
请扫描二维码
或访问
m.milan100.com
您所在的位置 -> 米兰百分百 -> 数据库 -> golang使用github的sdming/goh库连接hbase的thrift服务

golang使用github的sdming/goh库连接hbase的thrift服务

点击数:1502 发表时间:2020-11-09 20:19:56 作者: 来源链接:
分享到:
分享到微信

运行环境

  • golang 1.13.5

  • hbase  2.2.5


sdming/goh库,是github中使用golang连接hbase排名第二的库。第一的暂不好用。并非thrift2。

https://github.com/sdming/goh


import "github.com/sdming/goh"

address := "192.168.17.129:9090"

client, err := goh.NewTcpClient(address, goh.TBinaryProtocol, false)
if err != nil {
	fmt.Println(err)
	return
}

if err = client.Open(); err != nil {
	fmt.Println(err)
	return
}

defer client.Close()

fmt.Println(client.IsTableEnabled(table))
fmt.Println(client.DisableTable(table))
fmt.Println(client.EnableTable(table))
fmt.Println(client.Compact(table))

最关键的FilterString也好用。

filterString := "(SingleColumnValueFilter('info', 'event_time2', =, 'binary:2020-10-19') AND SingleColumnValueFilter('info', 'event_id', =, 'binary:5381008'))"
tScan := goh.TScan{
    Columns:      []string{"info:event_time2", "info:event_id"},
    FilterString: filterString,
}
id, err := client.ScannerOpenWithScan(tableName, &tScan, nil)
if err != nil {
    panic(err)
}
defer client.ScannerClose(id)
rows, err := client.ScannerGetList(id, 100)
if err != nil {
    panic(err)
}
for _, row := range rows { //每行数据
    print(string(row.Row), " ")
    for id, column := range row.Columns { //每列
        print(id, " ", string(column.Value), " | ")
    }
    println("")
}


也可以联合查询,具体语法看官网。
http://hbase.apache.org/book.html#thrift

虽然查询不如MYSQL丰富,但毕竟场景不同。

终于找到组织了,折腾了好几天,感谢开源贡献者。


4
很 好
4
一 般
4
差 劲
热门新闻
相关文章
上一篇: Hbase rest服务启动失败
下一篇: SQL语句优化技术分析
评论区
匿名

返回首页 | 收藏本页 | 回到顶部
Copyright 2010. 米兰百分百 Powered By Bridge.
京ICP备15050557号