首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据仓库ods层_app数据仓库搭建

数据仓库ods层_app数据仓库搭建

作者头像
全栈程序员站长
发布于 2022-11-14 03:32:13
发布于 2022-11-14 03:32:13
3.2K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

数据仓库之ODS层搭建

我们本项目中对数据仓库每层的搭建主要分为两部分,第一部分是确定都有哪些表,第二部分是确定数据装载的方式。

我们在进行ODS层搭建时,需要明确以下几点:

1)ODS层的表结构设计依托于从业务系统同步过来的数据结构

2)ODS层要保存全部历史数据,故其压缩格式应选择压缩比较高的,此处选择gzip。

3)ODS层表名的命名规范为:ods_表名_单分区增量全量标识(inc/full)。

我们在进行数据同步时,同步到的用户行为日志数据当中是json字符串格式;增量表是使用Maxwell进行同步的,也是json字符串格式;全量表使用的是DataX同步的,同步到的数据是tsv格式的。因此,我们在进行ODS层表结构设计时,需要考虑到这一点。

1.日志表设计

我们一共有两种方案,第一种方案是在建表的时候只有一个字段,一行存放的是一个json字符串,我们获取对应数据时,可以通过get_json_object()函数,从该字符串中取出对应的字段的信息;第二种方案是我们直接构建一张json表,这种表中的字段和json字符串当中的字段一一对应,这样就可以方便我们之后使用数据了。我们最终选择的方案是构建json表

1.1日志表建表语句

我们去官网查看建json表的语法:

我们结合行为数据中json的格式,最终构建的日志表建表语句如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_log_inc;
CREATE EXTERNAL TABLE ods_log_inc
(
    `common`   STRUCT<ar :STRING,ba :STRING,ch :STRING,is_new :STRING,md :STRING,MID :STRING,os :STRING,uid :STRING,vc
                      :STRING> COMMENT '公共信息',
    `page`     STRUCT<during_time :STRING,item :STRING,item_type :STRING,last_page_id :STRING,page_id
                      :STRING,source_type :STRING> COMMENT '页面信息',
    `actions`  ARRAY<STRUCT<action_id:STRING,item:STRING,item_type:STRING,ts:BIGINT>> COMMENT '动作信息',
    `displays` ARRAY<STRUCT<display_type :STRING,item :STRING,item_type :STRING,`order` :STRING,pos_id
                            :STRING>> COMMENT '曝光信息',
    `start`    STRUCT<entry :STRING,loading_time :BIGINT,open_ad_id :BIGINT,open_ad_ms :BIGINT,open_ad_skip_ms
                      :BIGINT> COMMENT '启动信息',
    `err`      STRUCT<error_code:BIGINT,msg:STRING> COMMENT '错误信息',
    `ts`       BIGINT  COMMENT '时间戳'
) COMMENT '活动信息表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_log_inc/';

我们可以看到上述建表语句中没有写压缩格式,但是我们在传输到HDFS上时使用的是gzip压缩格式,这是因为hive可以自动识别出我们的gzip压缩格式。

如下图所示,我们建表成功:

1.2日志表装载语句

我们接下来进行日志表装载语句的编写,我们将hdfs上的数据装载到对应日期分区的表当中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--数据装载
load data inpath '/origin_data/gmall/log/topic_log/2022-05-01' into table ods_log_inc partition(dt='2022-05-01');

但是该条语句只能将2022-05-01日的数据装载进表当中,因此我们需要编写一个每日装载脚本,用于每天装载日志表数据:

(1)在hadoop102的/home/hadoop/bin目录下创建hdfs_to_ods_log.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@hadoop102 bin]$ vim hdfs_to_ods_log.sh 

(2)我们在该脚本中编写如下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash

# 定义变量方便修改
APP=gmall

# 如果是输入的日期按照取输入日期;如果没输入日期取当前时间的前一天
if [ -n "$1" ] ;then
   do_date=$1
else
   do_date=`date -d "-1 day" +%F`
fi

echo ================== 日志日期为 $do_date ==================
sql="
load data inpath '/origin_data/$APP/log/topic_log/$do_date' into table ${APP}.ods_log_inc partition(dt='$do_date');
"
hive -e "$sql"

(3)给该脚本增加权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@hadoop102 bin]$ chmod +x hdfs_to_ods_log.sh

(4)我们每天只需要执行该脚本,即可完成日志数据的装载,下图是装载2022/5/1的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@hadoop102 bin]$ hdfs_to_ods_log.sh 2022-05-01

2.业务表设计

我们全量表的设计应当与Mysql业务系统当中对应表的字段保持一致,另外,我们需要设置分区,每天将数据装载到对应的分区当中。

对于增量表的设计,我们首先查看增量表中数据的格式:

我们可以看到,由于我们使用的是Maxwell进行同步,因此我们同步过来的数据是以json字符串的形式存储的,我们对于增量表,也是建立json表。我们最终留下的字段有type,ts以及data。

2.1活动信息表(全量表)设计

活动信息表的建表语句如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_activity_info_full;
CREATE EXTERNAL TABLE ods_activity_info_full
(
    `id`            STRING COMMENT '活动id',
    `activity_name` STRING COMMENT '活动名称',
    `activity_type` STRING COMMENT '活动类型',
    `activity_desc` STRING COMMENT '活动描述',
    `start_time`    STRING COMMENT '开始时间',
    `end_time`      STRING COMMENT '结束时间',
    `create_time`   STRING COMMENT '创建时间'
) COMMENT '活动信息表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_activity_info_full/';

我们将hive表中null值的存储格式设置为’‘空字符串。因为我们使用DataX将数据从mysql导到HDFS上时,DataX会将Mysql当中的空值存储成’’空字符串形式。我们为了保证hive可以正确识别空值,因此我们在此处将Hive的NULL定义为空字符串。

(Hive中默认空值格式:‘\N’,Mysql中默认空值存储格式:null,datax会把null值存为’’)

2.2活动规则表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_activity_rule_full;
CREATE EXTERNAL TABLE ods_activity_rule_full
(
    `id`               STRING COMMENT '编号',
    `activity_id`      STRING COMMENT '类型',
    `activity_type`    STRING COMMENT '活动类型',
    `condition_amount` DECIMAL(16, 2) COMMENT '满减金额',
    `condition_num`    BIGINT COMMENT '满减件数',
    `benefit_amount`   DECIMAL(16, 2) COMMENT '优惠金额',
    `benefit_discount` DECIMAL(16, 2) COMMENT '优惠折扣',
    `benefit_level`    STRING COMMENT '优惠级别'
) COMMENT '活动规则表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_activity_rule_full/';

2.3一级品类表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_base_category1_full;
CREATE EXTERNAL TABLE ods_base_category1_full
(
    `id`   STRING COMMENT '编号',
    `name` STRING COMMENT '分类名称'
) COMMENT '一级品类表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_base_category1_full/';

2.4二级品类表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_base_category2_full;
CREATE EXTERNAL TABLE ods_base_category2_full
(
    `id`           STRING COMMENT '编号',
    `name`         STRING COMMENT '二级分类名称',
    `category1_id` STRING COMMENT '一级分类编号'
) COMMENT '二级品类表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_base_category2_full/';

2.5三级品类表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_base_category3_full;
CREATE EXTERNAL TABLE ods_base_category3_full
(
    `id`           STRING COMMENT '编号',
    `name`         STRING COMMENT '三级分类名称',
    `category2_id` STRING COMMENT '二级分类编号'
) COMMENT '三级品类表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_base_category3_full/';

2.6编码字典表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_base_dic_full;
CREATE EXTERNAL TABLE ods_base_dic_full
(
    `dic_code`     STRING COMMENT '编号',
    `dic_name`     STRING COMMENT '编码名称',
    `parent_code`  STRING COMMENT '父编号',
    `create_time`  STRING COMMENT '创建日期',
    `operate_time` STRING COMMENT '修改日期'
) COMMENT '编码字典表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_base_dic_full/';

2.7省份表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_base_province_full;
CREATE EXTERNAL TABLE ods_base_province_full
(
    `id`         STRING COMMENT '编号',
    `name`       STRING COMMENT '省份名称',
    `region_id`  STRING COMMENT '地区ID',
    `area_code`  STRING COMMENT '地区编码',
    `iso_code`   STRING COMMENT '旧版ISO-3166-2编码,供可视化使用',
    `iso_3166_2` STRING COMMENT '新版IOS-3166-2编码,供可视化使用'
) COMMENT '省份表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_base_province_full/';

2.8地区表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_base_region_full;
CREATE EXTERNAL TABLE ods_base_region_full
(
    `id`          STRING COMMENT '编号',
    `region_name` STRING COMMENT '地区名称'
) COMMENT '地区表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_base_region_full/';

2.9品牌表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_base_trademark_full;
CREATE EXTERNAL TABLE ods_base_trademark_full
(
    `id`       STRING COMMENT '编号',
    `tm_name`  STRING COMMENT '品牌名称',
    `logo_url` STRING COMMENT '品牌logo的图片路径'
) COMMENT '品牌表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_base_trademark_full/';

2.10购物车表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_cart_info_full;
CREATE EXTERNAL TABLE ods_cart_info_full
(
    `id`           STRING COMMENT '编号',
    `user_id`      STRING COMMENT '用户id',
    `sku_id`       STRING COMMENT 'sku_id',
    `cart_price`   DECIMAL(16, 2) COMMENT '放入购物车时价格',
    `sku_num`      BIGINT COMMENT '数量',
    `img_url`      BIGINT COMMENT '商品图片地址',
    `sku_name`     STRING COMMENT 'sku名称 (冗余)',
    `is_checked`   STRING COMMENT '是否被选中',
    `create_time`  STRING COMMENT '创建时间',
    `operate_time` STRING COMMENT '修改时间',
    `is_ordered`   STRING COMMENT '是否已经下单',
    `order_time`   STRING COMMENT '下单时间',
    `source_type`  STRING COMMENT '来源类型',
    `source_id`    STRING COMMENT '来源编号'
) COMMENT '购物车全量表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_cart_info_full/';

2.11优惠券信息表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_coupon_info_full;
CREATE EXTERNAL TABLE ods_coupon_info_full
(
    `id`               STRING COMMENT '购物券编号',
    `coupon_name`      STRING COMMENT '购物券名称',
    `coupon_type`      STRING COMMENT '购物券类型 1 现金券 2 折扣券 3 满减券 4 满件打折券',
    `condition_amount` DECIMAL(16, 2) COMMENT '满额数',
    `condition_num`    BIGINT COMMENT '满件数',
    `activity_id`      STRING COMMENT '活动编号',
    `benefit_amount`   DECIMAL(16, 2) COMMENT '减金额',
    `benefit_discount` DECIMAL(16, 2) COMMENT '折扣',
    `create_time`      STRING COMMENT '创建时间',
    `range_type`       STRING COMMENT '范围类型 1、商品 2、品类 3、品牌',
    `limit_num`        BIGINT COMMENT '最多领用次数',
    `taken_count`      BIGINT COMMENT '已领用次数',
    `start_time`       STRING COMMENT '开始领取时间',
    `end_time`         STRING COMMENT '结束领取时间',
    `operate_time`     STRING COMMENT '修改时间',
    `expire_time`      STRING COMMENT '过期时间'
) COMMENT '优惠券信息表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_coupon_info_full/';

2.12商品平台属性表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_sku_attr_value_full;
CREATE EXTERNAL TABLE ods_sku_attr_value_full
(
    `id`         STRING COMMENT '编号',
    `attr_id`    STRING COMMENT '平台属性ID',
    `value_id`   STRING COMMENT '平台属性值ID',
    `sku_id`     STRING COMMENT '商品ID',
    `attr_name`  STRING COMMENT '平台属性名称',
    `value_name` STRING COMMENT '平台属性值名称'
) COMMENT 'sku平台属性表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_sku_attr_value_full/';

2.13商品表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_sku_info_full;
CREATE EXTERNAL TABLE ods_sku_info_full
(
    `id`              STRING COMMENT 'skuId',
    `spu_id`          STRING COMMENT 'spuid',
    `price`           DECIMAL(16, 2) COMMENT '价格',
    `sku_name`        STRING COMMENT '商品名称',
    `sku_desc`        STRING COMMENT '商品描述',
    `weight`          DECIMAL(16, 2) COMMENT '重量',
    `tm_id`           STRING COMMENT '品牌id',
    `category3_id`    STRING COMMENT '品类id',
    `sku_default_igm` STRING COMMENT '商品图片地址',
    `is_sale`         STRING COMMENT '是否在售',
    `create_time`     STRING COMMENT '创建时间'
) COMMENT 'SKU商品表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_sku_info_full/';

2.14商品销售属性值表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_sku_sale_attr_value_full;
CREATE EXTERNAL TABLE ods_sku_sale_attr_value_full
(
    `id`                   STRING COMMENT '编号',
    `sku_id`               STRING COMMENT 'sku_id',
    `spu_id`               STRING COMMENT 'spu_id',
    `sale_attr_value_id`   STRING COMMENT '销售属性值id',
    `sale_attr_id`         STRING COMMENT '销售属性id',
    `sale_attr_name`       STRING COMMENT '销售属性名称',
    `sale_attr_value_name` STRING COMMENT '销售属性值名称'
) COMMENT 'sku销售属性名称'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_sku_sale_attr_value_full/';

2.15 SPU表(全量表)设计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_spu_info_full;
CREATE EXTERNAL TABLE ods_spu_info_full
(
    `id`           STRING COMMENT 'spu_id',
    `spu_name`     STRING COMMENT 'spu名称',
    `description`  STRING COMMENT '描述信息',
    `category3_id` STRING COMMENT '品类id',
    `tm_id`        STRING COMMENT '品牌id'
) COMMENT 'SPU商品表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    NULL DEFINED AS ''
    LOCATION '/warehouse/gmall/ods/ods_spu_info_full/';

2.16购物车表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_cart_info_inc;
CREATE EXTERNAL TABLE ods_cart_info_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,user_id :STRING,sku_id :STRING,cart_price :DECIMAL(16, 2),sku_num :BIGINT,img_url :STRING,sku_name
                  :STRING,is_checked :STRING,create_time :STRING,operate_time :STRING,is_ordered :STRING,order_time
                  :STRING,source_type :STRING,source_id :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '购物车增量表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_cart_info_inc/';

2.17评论表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_comment_info_inc;
CREATE EXTERNAL TABLE ods_comment_info_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,user_id :STRING,nick_name :STRING,head_img :STRING,sku_id :STRING,spu_id :STRING,order_id
                  :STRING,appraise :STRING,comment_txt :STRING,create_time :STRING,operate_time :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '评价表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_comment_info_inc/';

2.18优惠券领用表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_coupon_use_inc;
CREATE EXTERNAL TABLE ods_coupon_use_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,coupon_id :STRING,user_id :STRING,order_id :STRING,coupon_status :STRING,get_time :STRING,using_time
                  :STRING,used_time :STRING,expire_time :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '优惠券领用表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_coupon_use_inc/';

2.19收藏表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_favor_info_inc;
CREATE EXTERNAL TABLE ods_favor_info_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,user_id :STRING,sku_id :STRING,spu_id :STRING,is_cancel :STRING,create_time :STRING,cancel_time
                  :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '收藏表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_favor_info_inc/';

2.20订单明细表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_order_detail_inc;
CREATE EXTERNAL TABLE ods_order_detail_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,order_id :STRING,sku_id :STRING,sku_name :STRING,img_url :STRING,order_price
                  :DECIMAL(16, 2),sku_num :BIGINT,create_time :STRING,source_type :STRING,source_id :STRING,split_total_amount
                  :DECIMAL(16, 2),split_activity_amount :DECIMAL(16, 2),split_coupon_amount
                  :DECIMAL(16, 2)> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '订单明细表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_order_detail_inc/';

2.21订单明细活动关联表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_order_detail_activity_inc;
CREATE EXTERNAL TABLE ods_order_detail_activity_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,order_id :STRING,order_detail_id :STRING,activity_id :STRING,activity_rule_id :STRING,sku_id
                  :STRING,create_time :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '订单明细活动关联表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_order_detail_activity_inc/';

2.22订单明细优惠券关联表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_order_detail_coupon_inc;
CREATE EXTERNAL TABLE ods_order_detail_coupon_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,order_id :STRING,order_detail_id :STRING,coupon_id :STRING,coupon_use_id :STRING,sku_id
                  :STRING,create_time :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '订单明细优惠券关联表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_order_detail_coupon_inc/';

2.23订单表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_order_info_inc;
CREATE EXTERNAL TABLE ods_order_info_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,consignee :STRING,consignee_tel :STRING,total_amount :DECIMAL(16, 2),order_status :STRING,user_id
                  :STRING,payment_way :STRING,delivery_address :STRING,order_comment :STRING,out_trade_no :STRING,trade_body
                  :STRING,create_time :STRING,operate_time :STRING,expire_time :STRING,process_status :STRING,tracking_no
                  :STRING,parent_order_id :STRING,img_url :STRING,province_id :STRING,activity_reduce_amount
                  :DECIMAL(16, 2),coupon_reduce_amount :DECIMAL(16, 2),original_total_amount :DECIMAL(16, 2),freight_fee
                  :DECIMAL(16, 2),freight_fee_reduce :DECIMAL(16, 2),refundable_time :DECIMAL(16, 2)> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '订单表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_order_info_inc/';

2.24退单表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_order_refund_info_inc;
CREATE EXTERNAL TABLE ods_order_refund_info_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,user_id :STRING,order_id :STRING,sku_id :STRING,refund_type :STRING,refund_num :BIGINT,refund_amount
                  :DECIMAL(16, 2),refund_reason_type :STRING,refund_reason_txt :STRING,refund_status :STRING,create_time
                  :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '退单表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_order_refund_info_inc/';

2.25订单状态流水表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_order_status_log_inc;
CREATE EXTERNAL TABLE ods_order_status_log_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,order_id :STRING,order_status :STRING,operate_time :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '退单表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_order_status_log_inc/';

2.26支付表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_payment_info_inc;
CREATE EXTERNAL TABLE ods_payment_info_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,out_trade_no :STRING,order_id :STRING,user_id :STRING,payment_type :STRING,trade_no
                  :STRING,total_amount :DECIMAL(16, 2),subject :STRING,payment_status :STRING,create_time :STRING,callback_time
                  :STRING,callback_content :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '支付表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_payment_info_inc/';

2.27退款表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_refund_payment_inc;
CREATE EXTERNAL TABLE ods_refund_payment_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,out_trade_no :STRING,order_id :STRING,sku_id :STRING,payment_type :STRING,trade_no :STRING,total_amount
                  :DECIMAL(16, 2),subject :STRING,refund_status :STRING,create_time :STRING,callback_time :STRING,callback_content
                  :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '退款表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_refund_payment_inc/';

2.28用户表(增量表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS ods_user_info_inc;
CREATE EXTERNAL TABLE ods_user_info_inc
(
    `type` STRING COMMENT '变动类型',
    `ts`   BIGINT COMMENT '变动时间',
    `data` STRUCT<id :STRING,login_name :STRING,nick_name :STRING,passwd :STRING,name :STRING,phone_num :STRING,email
                  :STRING,head_img :STRING,user_level :STRING,birthday :STRING,gender :STRING,create_time :STRING,operate_time
                  :STRING,status :STRING> COMMENT '数据',
    `old`  MAP<STRING,STRING> COMMENT '旧值'
) COMMENT '用户表'
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_user_info_inc/';

2.29数据建表语句执行展示

2.29数据装载脚本设计

由于上述28张表的数据装载逻辑相同,因此我们编写一个脚本来统一进行28张表的数据装载。

(1)在hadoop102的/home/root/bin目录下创建hdfs_to_ods_db.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@hadoop102 bin]$ vim hdfs_to_ods_db.sh 

(2)脚本的具体内容如下所示:

我们首先判断有没有传参数,第一个参数传的是要进行数据装载的表,可以进行单表数据的装载,也可以使用参数“all“来进行全表数据的装载。第二个参数传的是日期,在项目上线之后,可以不传该参数,会自动设置为该日的前一天日期。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
APP=gmall
if [ -n "$2" ] ;then
do_date=$2
else 
do_date=`date -d '-1 day' +%F`
fi
load_data(){ 

sql=""
for i in $*; do
#判断路径是否存在
hadoop fs -test -e /origin_data/$APP/db/${i:4}/$do_date
#路径存在方可装载数据
if [[ $? = 0 ]]; then
sql=$sql"load data inpath '/origin_data/$APP/db/${i:4}/$do_date' OVERWRITE into table ${APP}.$i partition(dt='$do_date');"
fi
done
hive -e "$sql"
}
case $1 in
"ods_activity_info_full")
load_data "ods_activity_info_full"
;;
"ods_activity_rule_full")
load_data "ods_activity_rule_full"
;;
"ods_base_category1_full")
load_data "ods_base_category1_full"
;;
"ods_base_category2_full")
load_data "ods_base_category2_full"
;;
"ods_base_category3_full")
load_data "ods_base_category3_full"
;;
"ods_base_dic_full")
load_data "ods_base_dic_full"
;;
"ods_base_province_full")
load_data "ods_base_province_full"
;;
"ods_base_region_full")
load_data "ods_base_region_full"
;;
"ods_base_trademark_full")
load_data "ods_base_trademark_full"
;;
"ods_cart_info_full")
load_data "ods_cart_info_full"
;;
"ods_coupon_info_full")
load_data "ods_coupon_info_full"
;;
"ods_sku_attr_value_full")
load_data "ods_sku_attr_value_full"
;;
"ods_sku_info_full")
load_data "ods_sku_info_full"
;;
"ods_sku_sale_attr_value_full")
load_data "ods_sku_sale_attr_value_full"
;;
"ods_spu_info_full")
load_data "ods_spu_info_full"
;;
"ods_cart_info_inc")
load_data "ods_cart_info_inc"
;;
"ods_comment_info_inc")
load_data "ods_comment_info_inc"
;;
"ods_coupon_use_inc")
load_data "ods_coupon_use_inc"
;;
"ods_favor_info_inc")
load_data "ods_favor_info_inc"
;;
"ods_order_detail_inc")
load_data "ods_order_detail_inc"
;;
"ods_order_detail_activity_inc")
load_data "ods_order_detail_activity_inc"
;;
"ods_order_detail_coupon_inc")
load_data "ods_order_detail_coupon_inc"
;;
"ods_order_info_inc")
load_data "ods_order_info_inc"
;;
"ods_order_refund_info_inc")
load_data "ods_order_refund_info_inc"
;;
"ods_order_status_log_inc")
load_data "ods_order_status_log_inc"
;;
"ods_payment_info_inc")
load_data "ods_payment_info_inc"
;;
"ods_refund_payment_inc")
load_data "ods_refund_payment_inc"
;;
"ods_user_info_inc")
load_data "ods_user_info_inc"
;;
"all")
load_data "ods_activity_info_full" "ods_activity_rule_full" "ods_base_category1_full" "ods_base_category2_full" "ods_base_category3_full" "ods_base_dic_full" "ods_base_province_full" "ods_base_region_full" "ods_base_trademark_full" "ods_cart_info_full" "ods_coupon_info_full" "ods_sku_attr_value_full" "ods_sku_info_full" "ods_sku_sale_attr_value_full" "ods_spu_info_full" "ods_cart_info_inc" "ods_comment_info_inc" "ods_coupon_use_inc" "ods_favor_info_inc" "ods_order_detail_inc" "ods_order_detail_activity_inc" "ods_order_detail_coupon_inc" "ods_order_info_inc" "ods_order_refund_info_inc" "ods_order_status_log_inc" "ods_payment_info_inc" "ods_refund_payment_inc" "ods_user_info_inc"
;;
esac

(3)我们增加该脚本的执行权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@hadoop102 bin]$ chmod +x hdfs_to_ods_db.sh

(4)使用该脚本装载2022-05-01的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@hadoop102 bin]$ hdfs_to_ods_db.sh all 2022-05-01

最终,我们查看表中是否有装载进入数据:

我们可以从上图中看出,ODS层数据已经装载成功。

3.ODS层总结

对于ODS层来说,我们每天只需要执行hdfs_to_ods_log.sh 和hdfs_to_ods_db.sh 这两个脚本将采集到HDFS上的原始数据装载到ODS层即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185570.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月5日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑软件IC软件下载 一键下载+安装教程 Adobe InCopy CC2022 Ic软件
iC3DSuiteWireless是一款极具实用性和强大功能的三维可视化包装设计软件。该软件可实时生成3D数字模型,用户可以在数分钟内生成快速、准确的3D数字原型及打印样品,极大地提高了设计效率。不管是纸盒、玻璃罐、弹性体或收缩包装,软件都能实现从概念到生产的整个设计过程的实时可视化与验证。iC3DSuite不需要特殊程序、硬件或外部协助,只需要使用简单的Illustrator文件或PDF文件即可实时处理照片的真实效果,使创意人员可以更充分地发挥他们的创意。通过使用iC3DSuiteWireless,设计周期可以缩短80%,这是您进行三维包装设计的最佳辅助软件。
资源牛牛
2023/04/16
5100
编辑软件IC软件下载 一键下载+安装教程 Adobe InCopy CC2022 Ic软件
Adobe InCopy 2022 最新中文版安装
Adobe InCopy CS6精简版是Adobe公司发布的一款协作编辑、排版和设计软件。它可以帮助用户对文章内容进行设置,并提供内置的编辑工具来设计文字。用户还可以从其他文本中添加需要排版的文字内容。通过与Adobe InDesign的紧密集成,Adobe InCopy CS6可以增强设计与编辑小组之间的协作,实现高效的工作流程。此外,Adobe InCopy CS6提供了人性化的工作区,让用户可以轻松访问主要空间和工具,提高工作效率。另外,它还支持使用Adobe Mini Bridge模板浏览和打开文件,让设计和办公人员获得更加方便的使用体验。
学习牛牛
2023/04/19
2520
InCopy(Ic)2023软件下载及安装教程永久使用 InCopy(Ic)
软件获取方式:wjk2.top/?id=复制粘贴浏览器访问或者鼠标右键转到即可下载 软件介绍 Adobe InCopy 是Adobe公司出品的一个专业的文字处理应用程序。InCopy的编辑器用于写作、
美丽之最
2023/04/19
1K0
InCopy(Ic)2023软件下载及安装教程永久使用 InCopy(Ic)
Adobe InCopy (IC)各版本软件下载安装含经验分享
ic全称为incopy,是adobe公司开发的一款文字编辑软件,其主要功能就是协同合作,能够与InDesign软件紧密集成,帮助文案人员和编辑可以设计文本样式、跟踪更改和对文档进行简单的版面修改,而设计人员可以同时在Adobe InDesign中处理同一文档。
木子学Lee
2023/03/05
6380
Adobe InCopy (IC)各版本软件下载安装含经验分享
InCopy下载 Adobe InCopy 2023版本安装教程 ——IC技巧
Adobe InCopy(简称IC)文字编写和副本编辑软件,通常与InDesign软件协同使用,增强设计与编辑小组之间的协作。设计者用InDesign把版面排好后,输出给InCopy文档供十名文字编辑使用,他们可以随意修改文稿,随后把文档再寄回给排版者,文字会自动更新,版面丝毫没变,因为文字编辑没有修改版面的权限。
木子学Lee
2023/03/10
4920
InCopy下载 Adobe InCopy 2023版本安装教程 ——IC技巧
干货分享--Adobe InCopy (IC)怎么安装?软件怎么下载?教程介绍
这是一款专业的文本编辑和协作工具,主要用于与Adobe InDesign配合使用(关于Id后期也会更新),协助编辑人员进行协同工作。它可以帮助编辑人员在InDesign文档中编辑文本、排版和格式化,而不会影响设计布局。同时,InCopy支持多人协作,多人可以同时编辑同一文档,且可以通过轻松的版本控制系统进行管理。
木子学Lee
2023/03/21
1K0
干货分享--Adobe InCopy (IC)怎么安装?软件怎么下载?教程介绍
InCopy最新版下载:IC 2024软件安装包下载+安装教程 介绍流程
Adobe InCopy是一款专业的文字编辑和排版软件,与Adobe InDesign紧密集成,广泛应用于图书出版、印刷和数字出版等领域。以下是Adobe InCopy 2024的介绍和安装条件。
用户10519159
2023/04/27
5570
Adobe InCopy CC2020:完美协同创作的专业排版软件+全版本安装包
Adobe InCopy CC2020 是一款专业的排版软件,是Adobe公司开发的辅助排版软件。其实它是一个文本编辑器,与Adobe InDesign配合使用,可以在设计过程中让作家、编辑、校对、排版师等人们协同工作。Adobe InCopy CC2020的功能涵盖了文字处理、文本编辑等各个方面,通过它在团队协作和稿件生产流程中准确、高效地完成协同操作和设计制作。这款软件支持多个平台,包括Windows和Mac OS等,用户可以根据自己的工作需要自由选择使用平台。
用户10480228
2023/04/16
4670
Adobe InCopy CC2020:完美协同创作的专业排版软件+全版本安装包
InCopy(Ic)是一种什么软件可以用来做什么?Ic详细下载安装教程
Adobe InCopy(简称Ic)是一种专业的文字处理软件,由Adobe公司开发。它通常与Adobe InDesign一起使用,用于处理和编辑文本内容,包括文章、故事、博客、电子邮件、广告和其他出版物的文字内容。
软件安装教程
2023/04/20
4.5K0
InCopy(Ic)是一种什么软件可以用来做什么?Ic详细下载安装教程
Adobe InCopy CC2020:印前工作必备的文本编辑与协作软件
Adobe InCopy CC2020是一款专为印前制作设计的文本编辑与协作软件,可以协助团队协作,改善设计师和作家之间的工作流程。让广告、出版、报纸和杂志等印刷媒体行业领域的专业人士更加顺畅地完成编辑、文字处理、印刷预览和制作工作。
用户10313071
2023/04/12
6730
Adobe InCopy CC2020:印前工作必备的文本编辑与协作软件
高效协作、无缝交付-探索Adobe InCopy2022的新功能+全版本安装包
Adobe InCopy2022是一款专业的文本编辑软件,为出版、印刷、广告等专业领域的用户提供了完美的协作工具。该软件的主要特点在于其高效的文本编辑和协作功能,可以轻松地处理复杂的出版物管理和编辑任务。
用户10313071
2023/04/11
3780
高效协作、无缝交付-探索Adobe InCopy2022的新功能+全版本安装包
Adobe InCopy2022 - 省时、高效的排版协作工具 IC 2022安装步骤
Adobe InCopy 2022是一款面向专业作家、编辑和出版人员的排版协作工具,它被广泛应用于杂志、报纸、书籍等媒体领域。软件提供了全面的文字编辑和格式化工具,使具有不同角色的用户可以协作完成设计、写作和编辑工作。在极大的提高了排版交付时间和生产效率的同时,InCopy 2022 也为用户提供了出色的用户体验和可靠的设计质量。
用户10313071
2023/04/07
4700
Adobe InCopy2022 - 省时、高效的排版协作工具 IC 2022安装步骤
Adobe InCopy2022便捷文本编辑和协作流程+全版本安装包+软件介绍
Adobe InCopy 2022是由Adobe公司推出的一款专业文本编辑和协作软件。该软件广泛应用于杂志、报纸、书籍等出版行业,提供了一种高效的文本编辑和协作流程,为用户带来更加便捷和高效的制作体验。
用户10519331
2023/04/24
3760
Adobe InCopy2022便捷文本编辑和协作流程+全版本安装包+软件介绍
Adobe InCopy 2022软件下载和安装教程
Adobe InCopy 2022是Adobe的专业文字处理软件,可以用来处理各种专业字体、图片等文件。这是一个完全集成的字体处理软件,可用于许多其他工作,包括文本编辑。它提供了一种为不同类型的文本创建优秀图像和其他图形的新方法。
肉肉软件安装
2023/01/19
3700
Adobe InCopy 2022软件下载和安装教程
Adobe InCopy 2022 软件介绍及安装教程(Win版)
InCopy 2022 v17.0.1.105是Adobe推出的一款专门为协同编辑、排版准备的工具,它是Adobe官方针对热衷写作的行业人士打造的,非常适合杂志工作室、个人作者、记者等人士使用,知识兔使用该软件文案人员和编辑可以设计文本样式、跟踪更改和对文档进行简单的版面修改,知识兔借助 InCopy 与 InDesign 之间的紧密集成,增强设计与编辑小组之间的协作。
知识兔
2022/10/23
7190
Adobe InCopy 2022 2023 软件介绍及安装教程(Win版)
InCopy 2022 v17.0.1.105是Adobe推出的一款专门为协同编辑、排版准备的工具,它是Adobe官方针对热衷写作的行业人士打造的,非常适合杂志工作室、个人作者、记者等人士使用,使用该软件文案人员和编辑可以设计文本样式、跟踪更改和对文档进行简单的版面修改,借助 InCopy 与 InDesign 之间的紧密集成,增强设计与编辑小组之间的协作。
知识兔
2022/10/18
7830
Adobe InCopy 2023软件下载和安装教程
Adobe InCopy 2023是Adobe的专业文字处理软件,可以用来处理各种专业字体、图片等文件。这是一个完全集成的字体处理软件,可用于许多其他工作,包括文本编辑。它提供了一种为不同类型的文本创建优秀图像和其他图形的新方法。
肉肉软件安装
2023/01/19
3730
Adobe InCopy 2023软件下载和安装教程
协同编辑、高效排版,提升出版流程效率 Adobe InCopy 2022
Adobe InCopy 2022是一款由Adobe公司推出的专业排版软件,主要应用于出版行业的文本编辑、布局和印刷等流程。该软件集成了多种高级的功能和工具,为用户提供了全方位的数字化协作解决方案。
用户10521990
2023/04/23
4200
协同编辑、高效排版,提升出版流程效率 Adobe InCopy 2022
轻松实现多人协作,Adobe InCopy CC 2019为编辑工作保驾护航+全版本安装包
Adobe InCopy CC 2019 是一款专门为印刷和数字出版流程而设计的编辑程序。它是 Adobe 系列中最为重要的印刷工具之一,并且应用范围非常广泛,包括报纸、杂志、图书等各种出版物。 Adobe InCopy CC 2019 可以兼容 Adobe InDesign CC 2019,并且提供协同编辑和多平台支持,使得出版作品的审校、编辑等工作变得更加高效和便捷。
用户10313071
2023/04/13
2810
轻松实现多人协作,Adobe InCopy CC 2019为编辑工作保驾护航+全版本安装包
Adobe InCopy 2019软件下载和安装教程
Adobe InCopy 2019是Adobe的专业文字处理软件,可以用来处理各种专业字体、图片等文件。这是一个完全集成的字体处理软件,可用于许多其他工作,包括文本编辑。它提供了一种为不同类型的文本创建优秀图像和其他图形的新方法。
肉肉软件安装
2023/01/19
4140
Adobe InCopy 2019软件下载和安装教程
推荐阅读
相关推荐
编辑软件IC软件下载 一键下载+安装教程 Adobe InCopy CC2022 Ic软件
更多 >
LV.2
这个人很懒,什么都没有留下~
目录
  • 数据仓库之ODS层搭建
    • 1.日志表设计
      • 1.1日志表建表语句
      • 1.2日志表装载语句
    • 2.业务表设计
      • 2.1活动信息表(全量表)设计
      • 2.2活动规则表(全量表)设计
      • 2.3一级品类表(全量表)设计
      • 2.4二级品类表(全量表)设计
      • 2.5三级品类表(全量表)设计
      • 2.6编码字典表(全量表)设计
      • 2.7省份表(全量表)设计
      • 2.8地区表(全量表)设计
      • 2.9品牌表(全量表)设计
      • 2.10购物车表(全量表)设计
      • 2.11优惠券信息表(全量表)设计
      • 2.12商品平台属性表(全量表)设计
      • 2.13商品表(全量表)设计
      • 2.14商品销售属性值表(全量表)设计
      • 2.15 SPU表(全量表)设计
      • 2.16购物车表(增量表)
      • 2.17评论表(增量表)
      • 2.18优惠券领用表(增量表)
      • 2.19收藏表(增量表)
      • 2.20订单明细表(增量表)
      • 2.21订单明细活动关联表(增量表)
      • 2.22订单明细优惠券关联表(增量表)
      • 2.23订单表(增量表)
      • 2.24退单表(增量表)
      • 2.25订单状态流水表(增量表)
      • 2.26支付表(增量表)
      • 2.27退款表(增量表)
      • 2.28用户表(增量表)
      • 2.29数据建表语句执行展示
      • 2.29数据装载脚本设计
    • 3.ODS层总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档