通过golang 查询impala

本文介绍如何使用Golang连接Cloudera Impala,详细展示了配置连接参数、执行查询及获取结果的过程。通过github上的go-impala库,开发者可以轻松实现与Impala的数据交互。
cloudera官方没有提供impala基于golang的驱动,github有github.com/bippio/go-impala
 
package main

import (
   "context"
   "github.com/bippio/go-impala"
   "log"
   "time"
)

func main() {
   host := "prd-activity-3"
   port := 21000
   opts := impalathing.DefaultOptions

   // enable LDAP authentication:
   opts.UseLDAP = false
   opts.Username = "<username>"
   opts.Password = "<password>"

   // enable TLS
   opts.UseTLS = false
   opts.CACertPath = "<ca-cert-path>"

   con, err := impalathing.Connect(host, port, &opts)
   if err != nil {
      log.Fatal(err)
   }

   query, err := con.Query(context.Background(), "SELECT * from impalademo.test1")

   startTime := time.Now()
   results := query.FetchAll(context.Background())
   log.Printf("Fetch %d rows(s) in %.2fs", len(results), time.Duration(time.Since(startTime)).Seconds())
}
端口说明:
    21000 :Impala Daemon Beeswax端口,被 impala-shell, Beeswax, Cloudera ODBC 1.2 驱动 用于传递命令和接收结果
    21050:Impala Daemon HiveServer2端口,被使用 JDBC 或 Cloudera ODBC 2.0 及以上驱动的诸如 BI 工具之类的应用用来传递命令和接收结
    所有通过java jdbc驱动调用的时候就使用21050端口,但是golang是通过thrift协议来调用impala的,就是使用21000端口
 
 

转载于:https://www.cnblogs.com/qizhelongdeyang/p/10338909.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值