經過golang 查詢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端口
相關文章
相關標籤/搜索