
凌晨3点被电话叫醒:“生产环境那个table123
到底在哪?!”... 新同事接手项目,面对满屏的tmp_aaa
、mid_bbb
和不知所云的缩写,一脸茫然... 想复用一张表,却因为字段名歧义争论半天...
这些场景,是不是似曾相识?混乱的命名,是数据团队协作效率的隐形杀手!它不仅耗费大量沟通成本,更埋下了维护困难、理解偏差的深坑。
在湖仓平台的建模全链路中——从逻辑模型、物理模型,到数据同步、作业调度、指标定义——一套清晰、统一的命名规范,就是团队高效协作的“通用语言”。它能显著提升系统的可读性、可靠性、可维护性和复用性,让开发、维护人员有章可循,让新人快速上手,从根本上降低长期成本。
今天,我们就将沉淀自多个大型项目实战的湖仓平台命名规范体系,毫无保留地分享给大家! 涵盖数据库对象、数据同步、作业调度、指标应用等核心场景,助你告别命名混乱,构建高效、整洁的数据工程环境。
1 核心基础
数据库对象相关命名规范
🔥 数据库、表、字段... 命名混乱的重灾区! 这里藏着模型理解的第一道门槛。一个规范的名字,抵得上十行注释。让我们从最基础的数据库对象命名规则说起,打好规范的地基。
1、对象命名的基本规则
所有用户自定义的数据库对象名统一使用英文和下划线的格式,具体要求如下:
全小写字母;
采用表意明确的英文单词或单词缩写;
不允许使用汉语拼音;
总体长度不超过64个字符。
2、数据库
数据库命名遵循数据库对象命名的基本规则,如某集团电商业务条线的财务数据库可命名为ecommerce_finance。
3、模式
数据建模时,一个数据层一般对应一个模式。具体如下:
| ldl | Landing Data Layer | |
| idl | Integration Data Layer | |
| ddl | Delivery Data Layer |
4、表
数据库表的命名遵循数据库对象命名的基本规则。表的命名采用分层命名的两段式结构,中间用下划线分开,即模块名_对象名。如:
app_realtime_product
app_batch_product
在生产数据库上,维护等相关人员创建临时使用的表命名规则:
与业务应用相关的一些中间表,统一采用“模块名_对象名_mid”的名称;
临时表统一采用“模块名_对象名_tmp_[YYMMDD]”的名称。这样便于后期清理,避免与业务系统正式表区别开来。使用完后需主动删掉该表;
对于事实表或者维度表,可以分别添加“_fact”或者“_dim”。
(1)字段
字段命名不加任何前缀,用英文名词进行描述,由英文单词(或缩写)和下划线“_”组成,多个单词之间用下划线分开。对于单名词或有可能和数据库关键字冲突的字段名,如标志flag或日期date,需要在字段名后面加一个“_f”,其中f表示field。表的字段如果需要引用其它关键表的字段,则必须保证他们的类型和长度是相同的。
(2)表分区
分区命名分为两种:循环利用的分区和按日期分区。
循环利用的分区,模块名_对象名_p_<X>_<N位数值>。其中X为r或者l,分别表示range分区表或者list分区表;N位数值为编号。
按日期分区的分区,模块名_对象名_ p_<X>_[YYYYMMDD]。其中X为r或者l,分别表示range分区表或者list分区表;YYYYMMDD表示具体年、月、日信息。
| r | range分区 |
| l | list分区 |
X的取值范围
5、视图/物化视图
(1)视图命名规范
视图的命名规则为:模块名_对象名_v。
(2)物化视图命名规范
物化视图的命名规则为:模块名_对象名_mv。
6、函数
函数的命名规则为:模块名_对象名_f。
7、序列
序列的命名规则为: 模块名_表名_对象名_s,其中对象名为字段名或描述性的内容。
8、约束
约束的命名规则为:模块名_表名_对象名_<pk|fk|uniq|chk>,其中约束名为相应的字段名或者约束的描述。
| pk | |
| fk | |
| uniq | |
| chk |
约束的命名规则
2 任务清晰化
数据同步相关命名规范
🚀 数据同步任务满天飞?找起来像大海捞针? 文件夹结构混乱、任务名称随意,会让同步链路变成一团乱麻。清晰的命名规则,是数据高效、准确流动的“路标”。
数据同步包含任务与文件夹,文件夹可以层级嵌套。
1、文件夹
使用大驼峰英文或者中文,例如 DataSynchronization\CustomerInfo,数据同步\客户信息,以下是一个示例命名规范:
顶层文件夹:DataSynchronization;
子文件夹(按日期组织):DataSynchronization\SalesData_2023;
子文件夹(按数据类型组织):DataSynchronization\CustomerInfo;
子文件夹(按版本组织):DataSynchronization\SalesData_2023_v1.0。
2、数据同步任务
使用下划线分隔的中文或者英文,在任务名称中使用下划线“_”来分隔单词,以增加可读性。避免使用空格、连字符或其他特殊字符。此处不建议用驼峰写法,原因是相比下划线命名方式,驼峰不够清晰。示例如下:
production_to_backup_batch:从生产数据库每日同步到备份数据库;
api_data_to_warehouse_inc:从API增量同步数据到数据仓库;
orders_to_erp_cdc:将订单实时CDC同步到ERP系统;
orders_to_erp_batch:将订单实时CDC同步到ERP系统。
3 流程自动化
作业调度相关命名规范
⏱️ 定时任务、DAG工作流... 自动化执行的命脉! 作业、任务、脚本的命名,直接关系到调度系统的可管理性和排错效率。规范命名,让自动化流程一目了然。
作业调度包含作业空间、文件夹、作业(多个任务组成的DAG图)、任务(图中单个的节点)与脚本五个概念。
1、作业空间
使用大驼峰或者中文,例如 DailyReport
2、文件夹
使用大驼峰或者中文,例如 DataSynchronization\CustomerInfo。
3、作业/任务/脚本
需要使用下划线分隔,使用下划线“_”来分隔单词,以增加可读性,例如daily_backup。
4、可包含时间或频率信息
如果作业的执行与特定的时间或频率相关(如每日、每周、每小时等),则可以在名称中包含这些信息。例如,“daily_report_generator.sh”或“hourly_data_sync.py”。
5、脚本需要扩展名
根据脚本的编程语言或类型使用适当的文件扩展名。例如,Bash脚本可以使用.sh扩展名,Python脚本可以使用.py扩展名。示例如下:
daily_backup;
backup_order_item;
daily_data_backup.sh:每日数据备份的Bash脚本;
hourly_report_generation.py:每小时报告生成的Python脚本;
weekly_database_maintenance.ps1:每周数据库维护的PowerShell脚本。
4 价值可衡量
指标相关命名规范
📊 指标是数据价值的体现,但指标名看不懂等于白搭! 基础指标、衍生指标如何清晰命名?如何让业务方和技术方都能秒懂?这里的规范,让数据价值“看得见、摸得着”。
1、基础指标
基础指标一般包含多个度量及多个维度,这些度量一般来自于一个或多个业务紧密相关的事实表,形成了一个指标集。所以名字上往往与对应的事实表一致,一般为相关业务+“指标集”,例如:
投顾签约指标集
客户资产指标集
证券交易指标集
对应英文名, 用下划线连接各个单词并以”_metrics“结尾,整体都用小写字母:
investment_adviser_metrics
customer_equity_metrics
stock_exchange_metrics
2、衍生指标
衍生指标一般一个由或多个基础指标衍生而来,命名规则为: (时间周期修饰词)+维度修饰词+(其他修饰词)+度量+统计方法。其中括号中内容为选填。例如:
最近30天各部门利润总额
年度分公司销售业绩同比
公司现金分红累计
对应英文名,用下划线连接各个单词,整体都用小写字母。但日期类需要用如下规则进行缩写:
| 1d | cm | ||
| 3d | cq | ||
| 1w | fy | ||
| 2w | td | ||
| 1m | sd | ||
| 2m | tt | ||
| 3m | 1h | ||
| 6m | ts | ||
| 180天以前 | bh | f1w | |
| cw | f4w |
衍生指标命名规则
1m_department_profit_sum
fy_branch_sales_YoY
company_cash_dividend_sum
💎 一套好的命名规范,远不止是“起名字”那么简单。它是数据工程团队的“基建标准”,是协作效率的“倍增器”,更是系统长期健康运行的“守护者”。 本文分享的规范,源于我们踩过的坑、付出的沟通成本,最终凝结成的实践精华。快拿去抄作业吧!
告别命名的混乱时代,从拥抱这套规范开始,让你的湖仓平台真正“名”正言顺,高效运转!

推荐阅读











点击下方阅读原文获取行业报告



