dim的表,只有一天的分区的表,才交换分区,目的是保证在处理单分区的时候不影响表的性能

下面是交换分区的案例:

CREATE TABLE `dm_stock_itmst_info_df` (

  `item_nbr` int(11) NULL COMMENT "商品编码",

  `tera_item_nbr` int(11) NULL COMMENT "tera商品编码",

  `store_nbr` int(11) NULL COMMENT "门店号",

  `division_1` varchar(200) NULL COMMENT "分区1",

  `division_2` varchar(200) NULL COMMENT "分区2",

  `dept_nbr` int(11) NULL COMMENT "部门编号",

  `cate_nbr` int(11) NULL COMMENT "品类编码",

  `fineline` varchar(200) NULL COMMENT "细分品类编码",

  `upc` varchar(200) NULL COMMENT "UPC编号",

  `store_price` decimal64(18, 2) NULL COMMENT "门店售价",

  `unit_cost` decimal64(18, 2) NULL COMMENT "商品单位成本",

  `whse_nbr` int(11) NULL COMMENT "DC编号",

  `channel_mthd_code` int(11) NULL COMMENT "送货方式编码",

  `channel_mthd` varchar(200) NULL COMMENT "送货方式",

  `stop_repl_eff_date` date NULL COMMENT "停止补货生效日期",

  `stop_repl_expir_date` date NULL COMMENT "停止补货失效日期",

  `drp_time_fence` date NULL COMMENT "可以开始补货日期",

  `is_sro` int(11) NULL COMMENT "是否停止系统补货SRO",

  `is_drp` int(11) NULL COMMENT "是否停止补货DRP",

  `is_with_eol` int(11) NULL COMMENT "是否退场策略商品",

  `is_playbook` int(11) NULL COMMENT "是否playbook商品",

  `is_artr` int(11) NULL COMMENT "是否AR/TR变价商品",

  `is_prom` int(11) NULL COMMENT "是否促销商品",

  `is_slow_moving` int(11) NULL COMMENT "是否慢销商品",

  `manual_exp_date` date NULL COMMENT "手工补货失效日期",

  `is_on_mod` varchar(200) NULL COMMENT "在图商品",

  `is_o2o` int(11) NULL COMMENT "O2O商品",

  `is_jddj` int(11) NULL COMMENT "京东到家",

  `is_wmdj_jsd` int(11) NULL COMMENT "沃尔玛到家极速达",

  `is_wmdj_qcp` int(11) NULL COMMENT "沃尔玛到家全城配",

  `store_type` varchar(200) NULL COMMENT "业态",

  `is_count_instock_all` int(11) NULL COMMENT "是否计算有货,包含SRO",

  `is_instock_all` int(11) NULL COMMENT "对比预测是否有货,包含SRO",

  `is_instock_all_2d` int(11) NULL COMMENT "对比预测2天是否有货,包含SRO",

  `is_count_instock` int(11) NULL COMMENT "是否计算有货,不包含SRO",

  `is_instock` int(11) NULL COMMENT "对比预测是否有货,不包含SRO",

  `is_instock_2d` int(11) NULL COMMENT "对比预测2天是否有货,不包含SRO",

  `o2o_min_qty` int(11) NULL COMMENT "最小露出量",

  `is_instock_o2o` int(11) NULL COMMENT "对比o2o露出量是否有货",

  `etl_load_time` datetime NULL COMMENT "数据导入时间",

  `ts` date NULL COMMENT "日期分区"

) ENGINE=OLAP

DUPLICATE KEY(`item_nbr`)

COMMENT "门店商品维表"

PARTITION BY RANGE(`ts`)

(

start ("2022-01-01") end ("2025-12-31") every (interval 1 day)

)

DISTRIBUTED BY HASH(`item_nbr`) BUCKETS 1

PROPERTIES (

"replication_num" = "3",

"dynamic_partition.enable" = "true",

"dynamic_partition.time_unit" = "DAY",

"dynamic_partition.time_zone" = "Asia/Shanghai",

"dynamic_partition.start" = "-2147483648",

"dynamic_partition.end" = "3",

"dynamic_partition.prefix" = "p",

"dynamic_partition.buckets" = "10",

"dynamic_partition.replication_num" = "2",

"in_memory" = "false",

"storage_format" = "DEFAULT"

);

 

-- 删除临时分区

alter table ${DM}.dm_scm_repl_analysis_sams_df drop temporary partition if exists sr_tpar_yestoday_str;

-- 创建临时分区

alter table ${DM}.dm_scm_repl_analysis_sams_df

add temporary partition if not exists sr_tpar_yestoday_str values [('${yyyy-MM-dd-1d}'), ('${yyyy-MM-dd}'))

( "in_memory" = "false") distributed by hash(`ts`) buckets 1;

-- 插入临时分区[]

insert into ${DM}.dm_scm_repl_analysis_sams_df temporary partition (sr_tpar_yestoday_str)

select

       item_nbr                           -- 商品编号

     , upc_nbr                            -- 商品条码

     , store_nbr                          -- 门店编号

     , mds_fam_nbr                        -- 商品父编号

     , repl_group_nbr                     -- 补货组编号

     , cate_nbr                           -- 大类编号

     , cate_name_cn                       -- 大类中文名称

     , sub_cate_nbr                       -- 子类编号

     , sub_cate_name_cn                   -- 子类中文名称

     , item_name_cn                       -- 商品中文名称

     , item_name_en                       -- 商品英文名称

     , item_type_nbr                      -- 商品类型编号

     , warm_layer                         -- 温层

     , vnpk_qty                           -- 供应商箱包规格

     , whpk_qty                           -- 仓库箱包规格

     , vendor_nbr_6d                      -- 供应商号_6位

     , vendor_nbr_9d                      -- 供应商号_9位

     , vendor_name                        -- 供应名称

     , ti                                 -- 单层箱数

     , hi                                 -- 堆叠层数

     , tihi_item_qty                      -- 卡板商品数量

     , season_code                        -- 季节编码

     , item_cluster_code                  -- 商品流速编码

     , region_name_cn                     -- 管理大区名称-中文

     , region_name_en                     -- 管理大区名称-英文

     , city_name_cn                       -- 城市名称-中文

     , city_name_en                       -- 城市名称-英文

     , province_name_cn                   -- 省份名称-中文

     , province_name_en                   -- 省份名称-英文

     , store_name_short                   -- 门店简称

     , sub_operation_type                 -- proto类型

     , open_date                          -- 开店日期

     , is_comp_store                      -- 是否可比店

     , price_without_tax                  -- 门店未税零售价

     , store_cost_amt                     -- 门店成本金额

     , store_item_status_code             -- 商品门店状态编码

     , calc_date                          -- 计算日期

     , year_week_wm                       -- 沃尔玛周

     , calc_month                         -- 计算月份

     , calc_year                          -- 计算年份

     , is_di                              -- 是否进口

     , is_nbo                             -- 是否永不缺货商品

     , is_top                             -- 是否top商品

     , is_db_next_sched                   -- 是否DB下一档期

     , db_next_sched_start_date           -- DB下一档期开档日期

     , db_next_sched_end_date             -- DB下一档期结束日期

     , db_next_sched_main_item_nbr        -- DB下一档期主商品编码

     , is_db_curr_sched                   -- 是否DB当前档期

     , db_curr_sched_start_date           -- DB当前档期开档日期

     , db_curr_sched_end_date             -- DB当前档期结束日期

     , db_curr_sched_main_item_nbr        -- DB当前档期主商品编码

     , is_feature_curr_sched              -- 是否feature当前档期

     , feature_curr_sched_start_date      -- feature当前档期开档日期

     , feature_curr_sched_end_date        -- feature当前档期结束日期

     , feature_curr_sched_main_item_nbr   -- feature当前档期主商品编码

     , feature_display_type_code          -- feature陈列类型

     , feature_display_qty                -- feature陈列量

     , shelf_display_type                 -- 货架陈列类型

     , shelf_display_qty                  -- 货架陈列量

     , is_count_instock                   -- 是否计算有货率

     , is_instock                         -- 是否整体有货

     , is_club_instock                    -- 是否母店有货

     , is_cloud_count_instock             -- 是否云仓计算有货率

     , is_cloud_instock                   -- 是否云仓有货

     , cloud_safety_stock_qty             -- 云仓安全库存数量

     , safety_stock_qty                   -- 门店安全库存数量

     , cloud_avail_qty_00h                -- 0点云仓可用库存数量

     , cloud_on_hand_qty_00h              -- 0点云仓在店库存数量

     , club_on_hand_qty_00h               -- 0点母店在店库存数量

     , cloud_avail_qty                    -- 8点云仓可用库存数量

     , cloud_on_hand_qty                  -- 8点云仓在店库存数量

     , club_on_hand_qty                   -- 8点母店在店库存数量

     , on_hand_qty_00h                    -- 0点在店库存数

     , on_hand_qty                        -- 8点在店库存数

     , on_order_qty                       -- 在订库存数

     , in_tras_qty                        -- 在途库存数

     , in_whs_qty                         -- 在仓库存数

     , in_whs777_qty                      -- 在库777库存数

     , total_stock_qty                    -- 库存总数(0点现货库存)

     , on_hand_retail_amt_00h             -- 0点在店库存零售额

     , on_hand_retail_amt                 -- 8点在店库存零售额

     , on_order_retail_amt                -- 在订库存零售额

     , in_tras_retail_amt                 -- 在途库存零售额

     , in_whs_retail_amt                  -- 在仓库存零售额

     , in_whs777_retail_amt               -- 在库777库存零售额

     , total_stock_retail_amt             -- 库存总零售额(0点现货库存)

     , on_hand_cost_amt_00h               -- 0点在店库存成本金额

     , on_hand_cost_amt                   -- 8点在店库存成本金额

     , on_order_cost_amt                  -- 在订库存成本金额

     , in_tras_cost_amt                   -- 在途库存成本金额

     , in_whs_cost_amt                    -- 在仓库存成本金额

     , in_whs777_cost_amt                 -- 在库777库存成本金额

     , total_stock_cost_amt               -- 库存总成本金额(0点现货库存)

     , sales_qty_l7d                      -- 近7日销量

     , sales_amt_l7d                      -- 近7日销售额

     , sales_qty_l28d                     -- 近28日销量

     , sales_amt_l28d                     -- 近28日销售额

     , sales_qty                          -- 当日销售量

     , sales_cost_amt                     -- 当日销售成本

     , sales_retail_amt                   -- 当日销售额

     , online_sales_qty                   -- 当日线上销售量

     , online_sales_cost_amt              -- 当日线上销售成本

     , online_sales_retail_amt            -- 当日线上销售额

     , offline_sales_qty                  -- 当日线下销售量

     , offline_sales_cost_amt             -- 当日线下销售成本

     , offline_sales_retail_amt           -- 当日线下销售额

     , cloud_sales_qty                    -- 云仓履约当日销售数量

     , cloud_sales_cost_amt               -- 云仓履约当日销售成本

     , cloud_sales_retail_amt             -- 云仓履约当日销售额

     , sales_fcst_qty_w                   -- 本周预测销量

     , sales_fcst_qty_nt1w                -- 未来第1周预测销量

     , sales_fcst_qty_nt2w                -- 未来第2周预测销量

     , sales_fcst_qty_nt3w                -- 未来第3周预测销量

     , sales_fcst_qty_nt4w                -- 未来第4周预测销量

     , sales_fcst_qty_nt5w                -- 未来第5周预测销量

     , sales_fcst_qty_nt6w                -- 未来第6周预测销量

     , sales_fcst_qty_n4w                 -- 未来4周预测销量,不包含当周

     , smape_weight_lt1w                  -- 上周预测准确率SMAPE权重

     , fcst_accuracy_denom                -- 预测准确率分母

     , rcvd_item_qty                      -- 当日商品收货数量

     , rcvd_item_cost_amt                 -- 当日商品收货成本金额

     , rcvd_item_retail_amt               -- 当日商品收货零售金额

     , rtv_qty                            -- 当日退货数量

     , rtv_cost_amt                       -- 当日退货成本

     , rtv_retail_amt                     -- 当日退货零售额

     , waste_qty                          -- 当日损耗数量

     , waste_cost_amt                     -- 当日损耗成本

     , dc_on_hand_qty                     -- DC现货库存数量

     , dc_on_hand_cost                    -- DC现货库存成本

     , dc_on_hand_retail                  -- DC现货库存零售额

     , orig_vnpk_order_box_qty            -- 原始截止日期供应商规格订货箱数

     , orig_vnpk_rcvd_box_qty             -- 原始截止日期供应商规格收货箱数

     , orig_vnpk_ot_rcvd_box_qty          -- 原始截止日期供应商规格准时收货箱数

     , orig_vnpk_early_rcvd_box_qty       -- 原始截止日期供应商规格提前收货箱数

     , orig_vnpk_late_rcvd_box_qty        -- 原始截止日期供应商规格超时收货箱数

     , orig_vnpk_early_rcvd_box_qty_1d    -- 原始截止日期供应商规格提前1天收货箱数

     , orig_vnpk_late_rcvd_box_qty_1d     -- 原始截止日期供应商规格超时1天收货箱数

     , mabd_vnpk_order_box_qty            -- 最新截止日期供应商规格订货箱数

     , mabd_vnpk_rcvd_box_qty             -- 最新截止日期供应商规格收货箱数

     , pur_update_time                    -- 采购指标更新时间

     , etl_load_time                      -- ETL刷数时间

     , ts                                 -- 分区日期  

 from hive.${DM}.dm_scm_repl_analysis_sams_df

where ts = '${yyyy-MM-dd-1d}'

;

-- 交换分区

alter table ${DM}.dm_scm_repl_analysis_sams_df replace partition (p${yyyyMMdd-1d}) with temporary partition (sr_tpar_yestoday_str);