1、在Hive中如何管理表的生命周期
1.1、外部表
可以使用外部表进行管理,这样在删除表的时候只是删除了表的元数据,而真正的数据不会被删除。
1.2、写代码进行删除时间过早的分区
通过metastore,连接到hive的元数据,然后分库,循环表进行表分区判断,可以删除距今前一个月的分区
2、在Dataworks或Wedata管理表生命周期
在建表时,可以直接通过"LIFECYCLE"关键字指定表生命周期,如下
CREATE TABLE IF NOT EXISTS ${ts_cdm}.dws_wms_inventory_detail_df (
`year` STRING COMMENT '年份'
,`month` STRING COMMENT '月份'
,`day` STRING COMMENT '天'
,`whseid` STRING COMMENT '库位ID'
,`db_alias` STRING COMMENT '库名'
,`sku` STRING COMMENT '物料号'
,`deser` STRING COMMENT '物料名称'
,`unit` STRING COMMENT '单位'
,`gear_position` STRING COMMENT '档位'
,`erp_org_id` STRING COMMENT '组织ID '
,`ledger_short_name` STRING COMMENT '账套'
,`sku_status` STRING COMMENT '物料状态码'
,`sku_status_desc` STRING COMMENT '物料状态'
,`storage_age` STRING COMMENT '库龄(天)'
,`quality_status` STRING COMMENT '质量状态'
,`erploc` STRING COMMENT 'ERP货位'
,`ext_udf_attribute` STRING COMMENT '批次号'
,`nowqty` DECIMAL ( 30 , 8 ) COMMENT '库存现有数量'
,`qty` DECIMAL ( 30 , 8 ) COMMENT '库存可用数量'
,`lpn` STRING COMMENT '托盘号'
,`warehousing_date` STRING COMMENT '入库日期'
,`loc` STRING COMMENT 'loc'
,`storerkey` STRING COMMENT 'storerkey'
,etl_time STRING COMMENT 'etl_time'
)
COMMENT '成品仓库存明细'
LIFECYCLE 32 ;```