zoukankan      html  css  js  c++  java
  • dwd_dim_sku_info

     商品维度表

    导入策略:全量

    类似的有:优惠卷,活动维度表

    -- 就是将几个表合在一起,部分维度表大同小异
    
    -- 建表
    DROP TABLE IF EXISTS `dwd_dim_sku_info`; 
    CREATE EXTERNAL TABLE `dwd_dim_sku_info` 
    ( 
        `id` string COMMENT '商品 id', 
        `spu_id` string COMMENT 'spuid', 
        `price` double COMMENT '商品价格', 
        `sku_name` string COMMENT '商品名称', 
        `sku_desc` string COMMENT '商品描述', 
        `weight` double COMMENT '重量', 
        `tm_id` string COMMENT '品牌 id', 
        `tm_name` string COMMENT '品牌名称', 
        `category3_id` string COMMENT '三级分类 id',
        `category2_id` string COMMENT '二级分类 id', 
        `category1_id` string COMMENT '一级分类 id', 
        `category3_name` string COMMENT '三级分类名称', 
        `category2_name` string COMMENT '二级分类名称', 
        `category1_name` string COMMENT '一级分类名称', 
        `spu_name` string COMMENT 'spu 名称', 
        `create_time` string COMMENT '创建时间' 
    )COMMENT '商品维度表' 
    PARTITIONED BY (`dt` string) 
    stored as parquet 
    location '/warehouse/gmall/dwd/dwd_dim_sku_info/' 
    tblproperties ("parquet.compression"="lzo");
    
    
    --插入
    insert overwrite table dwd_dim_sku_info 
    partition(dt='2020-03-10') 
    select 
        sku.id, 
        sku.spu_id, 
        sku.price, 
        sku.sku_name, 
        sku.sku_desc, 
        sku.weight, 
        sku.tm_id, 
        ob.tm_name, 
        sku.category3_id, 
        c2.id category2_id, 
        c1.id category1_id, 
        c3.name category3_name, 
        c2.name category2_name, 
        c1.name category1_name, 
        spu.spu_name, 
        sku.create_time 
    from 
    ( 
        select * from ods_sku_info 
        where dt='2020-03-10' 
    )sku 
    join 
    ( 
        select * from ods_base_trademark 
        where dt='2020-03-10' 
    )ob 
    on sku.tm_id=ob.tm_id 
    join 
    ( 
        select * from ods_spu_info 
        where dt='2020-03-10'
    )spu 
    on spu.id = sku.spu_id 
    join 
    ( 
        select * from ods_base_category3 
        where dt='2020-03-10' 
    )c3 on sku.category3_id=c3.id 
    join 
    ( 
        select * from ods_base_category2 
        where dt='2020-03-10' 
    )c2 on c3.category2_id=c2.id 
    join 
    ( 
        select * from ods_base_category1 
        where dt='2020-03-10' 
    )c1 on c2.category1_id=c1.id;
  • 相关阅读:
    有效的工作,小记
    快排,做个笔记
    git在vs2017中的使用
    正则匹配指定字符之间的内容,并替换(多个匹配替换)
    记一个JS树结构路径查找
    追赶法求三对角矩阵
    vs 2010 Cannot find or open the PDB file
    mysql学习笔记6——用phpmyadmin和在腾讯微云中创建数据库
    mysql学习笔记5
    mysql学习笔记4
  • 原文地址:https://www.cnblogs.com/ldy233/p/14442479.html
Copyright © 2011-2022 走看看