首页/数据/数仓建模速查/临时表与测试表命名
分层与规范64 条

临时表与测试表命名

临时表加 tmp_ 前缀并带日期与负责人,任务结束即删除;测试表加 test_ 前缀放在测试库,禁止长期停留在正式库中。

数仓建模速查数据更新于 2026-10-13

临时表为什么要有规范

临时表与测试表是开发期最常见的元数据污染源。它们没有 Owner、没有生命周期约定时,会沉淀成事实上的生产表,既占存储又让人不敢删。规范的核心是三点:可识别的命名前缀、明确的责任人、明确的存在期限。

基本信息

临时表命名tmp_ 前缀 + 日期 + 负责人标识
测试表命名test_ 前缀,放在测试库或临时库
存放位置独立临时库或独立 schema,避免混入正式库
生命周期任务结束即删除,最多不超过约定天数
巡检口径超期未清理的表纳入日常巡检告警

典型使用场景

  • 中间结果落地:复杂多步计算需要复查中间数据时临时落表
  • 问题排查:复现线上口径差异,用临时表留住当时的快照
  • 数据核对:把两套口径的结果并排放进临时表逐行比对
  • 旁路试算:新口径上线前先试跑,不影响生产链路
  • 权限受限场景:无法建正式表时用临时表过渡

临时表用法

临时表用法
-- 命名带日期与负责人,一眼看出归属和过期时间
DROP TABLE IF EXISTS tmp_20261012_zhang_order;

CREATE TABLE tmp_20261012_zhang_order AS
SELECT order_id, pay_amt
FROM dwd_trade_order_di
WHERE dt = '2026-10-12';            -- 只取本次排查需要的数据

-- 用完立即清理,不要留给下一位同事猜
DROP TABLE IF EXISTS tmp_20261012_zhang_order;

-- 能用一条查询解决的场景直接写 CTE,不落表最干净
-- WITH base AS (SELECT ...) SELECT ... FROM base;

表类型对照

表类型前缀位置生命周期
临时表tmp_临时库或独立 schema任务结束即删,最长 7 天
测试表test_测试库随测试用例生命周期
备份表bak_备份库或历史分区按保留策略定期清理
正式表无特殊前缀生产库长期维护,需文档与 Owner
把临时表数量与超期天数纳入巡检指标是成本最低的治理手段:超过保留期限的自动列出并通知创建人,能避免元数据里堆积大量无人认领的表。
test_ 前缀的表长期留在正式库会带来两个问题:数据集市目录与权限审计被污染,且下游可能误把它当成可用数据源引用,随后被清理时引发下游报错。

易错点

  • 临时表不带日期与负责人,过一段时间没人敢删也没人认领,最终沉淀成隐形生产表
  • 任务正常链路依赖临时表,清理时下游立刻失败,说明临时表被当成了正式加工层
  • 把测试数据写进正式库的测试表,被下游误引用后污染报表口径
  • 临时表只建不删,元数据与存储持续膨胀,影响建表与查询性能

数据来源与参考

  • 阿里《大数据之路:阿里巴巴大数据实践》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌