話單分析之 HbaseDao

object HbaseDao {

private val sdf1 =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

private val sdf2 =new SimpleDateFormat("yyyyMMddHHmmss")

//實(shí)現(xiàn)批量添加

? private val cacheList =new util.ArrayList[Put]

//創(chuàng)建Habse環(huán)境對象

? var conf: Configuration = HBaseConfiguration.create()

//讀取region數(shù)

? private val regions: Integer = Integer.valueOf(PropertiesUtil.getProperty("hbase.calllog.regions"))

//讀取命名空間

? private val nameSpace:String = PropertiesUtil.getProperty("hbase.calllog.namespace")

//讀取表名

? private val tableName:String = PropertiesUtil.getProperty("hbase.calllog.tablename")

var table:HTable =null

? //首先創(chuàng)建命名空間,在創(chuàng)建表

? if(!HBaseUtil.isExistTable(conf,tableName)){

HBaseUtil.initNamespace(conf,nameSpace)

HBaseUtil.createTable(conf,tableName,regions,"f1","f2")

}

/**

? * 把數(shù)據(jù)寫入到hbase

? * ori數(shù)據(jù)樣式: 18576581848,17269452013,2017-08-14 13:38:31,1761

? * rowkey樣式:01_18576581848_20170814133831_17269452013_1_1761

? * HBase表的列:call1? call2? build_time? build_time_ts? flag? duration

*

*

*/

? def put(str:String) = {

if(cacheList.size ==0){

val conn = ConnectionInstance.getConnection(conf)

table = conn.getTable(TableName.valueOf(tableName)).asInstanceOf[HTable]

table.setAutoFlushTo(false)

table.setWriteBufferSize(2 *1024 *1024)

}

//對數(shù)據(jù)進(jìn)行切割

? ? val splitOri = str.split(",")

val call1:String = splitOri(0)

val call1_name:String = splitOri(1)

val call2:String = splitOri(2)

val call2_name:String = splitOri(3)

val buildTime:String = splitOri(4)

val duration:String = splitOri(5)

val flag:String = splitOri(6)

//獲取region編碼

? ? val regionCode = HBaseUtil.genRegionCode(call1, buildTime,regions)

//建立通話時(shí)間

? ? val buildTimeReplace =sdf2.format(sdf1.parse(buildTime))

val buildTimeTs:String = String.valueOf(sdf1.parse(buildTime).getTime)

//生成rowKey

? ? val rowkey = HBaseUtil.genRowKey(regionCode, call1, buildTimeReplace, call2, flag, duration)

//向表中插入數(shù)據(jù)

? ? val put: Put =new Put(Bytes.toBytes(rowkey))

//主叫號碼

? ? put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("call1"),Bytes.toBytes(call1))

//主叫名稱

? ? put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("call1_name"),Bytes.toBytes(call1_name))

//被叫號碼

? ? put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("call2"),Bytes.toBytes(call2))

//被叫名稱

? ? put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("call2_name"),Bytes.toBytes(call2_name))

//通話日期

? ? put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("build_time"),Bytes.toBytes(buildTime))

//通話時(shí)間

? ? put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("build_time_ts"),Bytes.toBytes(buildTimeTs))

//通話標(biāo)識

? ? put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("flag"),Bytes.toBytes(flag))

//通話時(shí)間

? ? put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("duration"),Bytes.toBytes(duration))

cacheList.add(put)

if(cacheList.size >0){

table.put(cacheList)

table.flushCommits()

cacheList.clear()

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末券腔,一起剝皮案震驚了整個(gè)濱河市锡搜,隨后出現(xiàn)的幾起案子渗磅,更是在濱河造成了極大的恐慌,老刑警劉巖洒扎,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胯杭,死亡現(xiàn)場離奇詭異,居然都是意外死亡躬拢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門灿意,熙熙樓的掌柜王于貴愁眉苦臉地迎上來估灿,“玉大人崇呵,你說我怎么就攤上這事缤剧。” “怎么了域慷?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵荒辕,是天一觀的道長。 經(jīng)常有香客問我犹褒,道長抵窒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任叠骑,我火速辦了婚禮李皇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宙枷。我一直安慰自己掉房,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布慰丛。 她就那樣靜靜地躺著卓囚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诅病。 梳的紋絲不亂的頭發(fā)上哪亿,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音贤笆,去河邊找鬼蝇棉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛芥永,可吹牛的內(nèi)容都是我干的篡殷。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼恤左,長吁一口氣:“原來是場噩夢啊……” “哼贴唇!你這毒婦竟也來了搀绣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤戳气,失蹤者是張志新(化名)和其女友劉穎链患,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓶您,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡麻捻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了呀袱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贸毕。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖夜赵,靈堂內(nèi)的尸體忽然破棺而出明棍,到底是詐尸還是另有隱情,我是刑警寧澤寇僧,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布摊腋,位于F島的核電站,受9級特大地震影響嘁傀,放射性物質(zhì)發(fā)生泄漏兴蒸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一细办、第九天 我趴在偏房一處隱蔽的房頂上張望橙凳。 院中可真熱鬧,春花似錦笑撞、人聲如沸岛啸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽值戳。三九已至,卻和暖如春炉爆,著一層夾襖步出監(jiān)牢的瞬間堕虹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工芬首, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赴捞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓郁稍,卻偏偏與公主長得像赦政,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348