kudu 查看元数据信息

package com.lala.lala.pipe.dbinfo

import org.apache.kudu.client.KuduClient

import com.lala.lala.common.query.option.KuduOptions
import collection.JavaConverters._
import scala.util.Try

class KuduShow(map: Map[String, String]) {
  private val master = map(KuduOptions.KUDU_MASTER)
  private lazy val tableName = map(KuduOptions.TBL)
  private val client = KuduShow.getClient(master)

  def getTbs: String = Try(client.getTablesList.getTablesList.asScala.mkString(",")).getOrElse("master错误或网络不可用")

  def getCols: String = {
    val table = client.openTable(tableName)
    table.getSchema
      .getColumns.asScala
      .map(col => s"${col.getName}:${col.getType.getName}")
      .mkString(",")
  }
}

object KuduShow {
  var client: KuduClient = null

  def getClient(master: String): KuduClient = {
    if (client == null || master != client.getMasterAddressesAsString) {
      client = new KuduClient.KuduClientBuilder(master).build
    }
    client
  }

}

 

转载于:https://www.cnblogs.com/jason-dong/p/10480117.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值