一、DIM层处理
### --- DIM层处理
~~~ 最原始的表 mysql中 yanqi_area ----> (hbase)
~~~ 转化yanqi_area ---> 地区id,地区的名字,城市的id,城市的名字, 省份的id,省份的名字
~~~ # --> 存入 hbase中
~~~ mysql --- hbase 管道数据流处理 / 事务型数据流处理
~~~ 在分析交易过程时,可以通过买家、卖家、商品和时间等维度描述交易发生的环境。
~~~ 所以维度的作用一般是查询约束、分类汇总以及排序等。
~~~ 从mysql:yanqi_area原始表中下沉数据到hbash下yanqi_area表中,
~~~ 再从hbash:yanqi_area表中下沉数据到dim_yanqi_area表中
二、编程代码实现
### --- 编程实现工具类一:ConnHBase
package ods
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.hbase.client.{Connection, ConnectionFactory}
import org.apache.hadoop.hbase.{HBaseConfiguration, HConstants}
class ConnHBase {
def connToHbase:Connection ={
val conf : Configuration = HBaseConfiguration.create()
conf.set("hbase.zookeeper.quorum","hadoop01,hadoop02,hadoop03")
// conf.set("hbase.zookeeper.quorum","hadoop01,hadoop02")
conf.set("hbase.zookeeper.property.clientPort","2181")
conf.setInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,30000)
conf.setInt(HConstants.HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD,30000)
val connection = ConnectionFactory.createConnection(conf)
connection
}
}
### --- 编程实现样例类一:AreaDetail
package dim
case class AreaDetail(id: Int, name:String, pid: Int)
### --- 编程实现样例类二:DimArea
package dim
/**
*
* @param areaId 区的id
* @param aname 区的名字
* @param cid 城市的id
* @param city 城市的名字
* @param proId 省份的id
* @param province 省份的名字
*/
case class DimArea(areaId:Int,aname:String,cid:Int,city:String,proId:Int,province:String)