2.3.1 关联方式
(1)方法 1:用明细表依次和每个维度表进行关联
➢
订单明细和商品关联
order_detail --> sku_id
➢
订单明细商品宽表和 spu 关联
订单明细宽表(spu_id) --> spu 得到 spuname
➢
订单明细商品和 spu 宽表和品牌关联
订单明细宽表(tm_id) --> tm 得到 tm_name
➢
订单明细商品、spu、品牌宽表和品类关联
订单明细宽表(category3_id) --> cate 得到 cate_name
这种方式,订单明细事实表记录很多,每条记录都进行 4 次关联,效率较低。
(2)方法 2:维度退化
➢
先用商品维度表和 Spu、品牌、品类维度表提前进行关联(维度退化)
➢
订单明细和 --> sku 维度宽表
我们使用这种方式
2.3.2 在 Hbase 中创建表与维表对应
接收用户数据的新增和修改 保存到 hbase
(1)创建品牌表
(2)创建分类表
2.3.3 创建对应的样例类
(1)品牌样例类
(2)分类样例类
(3)Spu 样例类
(4)商品样例类
2.3.4 采集 Kafka 中维表数据到 Hbase 对应的表中
(1)采集 Kafka 中品牌数据到 Hbase
(2)采集 Kafka 中分类数据到 Hbase
(3)采集 Kafka 中 Spu 数据到 Hbase
(4)采集 Kafka 中商品 Sku 数据到 Hbase
2.3.5 订单明细事实表和 Sku 维度关联
OrderDetailApp 中添加如下代码:
2.3.6 测试
(1)启动 Hdfs、ZK、Kafka、Redis、Hbase、Maxwell
(2)运行 BaseDBMaxwellApp
(3)运行 BaseTrademarkApp,初始化品牌数据,在 Hbase 品牌
表中查看效果
bin/maxwell-bootstrap --user maxwell --password 123456 --host hadoop202
--database gmall2020 --table base_trademark --client_id maxwell_1
(4)运行 BaseCategory3App,初始化分类数据,在 Hbase 分类表
中查看效果
bin/maxwell-bootstrap --user maxwell --password 123456 --host hadoop202
--database gmall2020 --table base_category3 --client_id maxwell_1
(5)运行 SpuInfoApp,初始化 SPU 数据,在 Hbase 的 SPU 表中
查看效果
bin/maxwell-bootstrap --user maxwell --password 123456 --host hadoop202
--database gmall2020 --table spu_info --client_id maxwell_1
(6)运行 SkuInfoApp,初始化商品数据,在 Hbase 商品表中查看
效果
bin/maxwell-bootstrap --user maxwell --password 123456 --host hadoop202
--database gmall2020 --table sku_info --client_id maxwell_1
(7)运行 OrderDetailApp,运行模拟生成业务数据的 jar 包,查看
控制台输出