数仓分层应用实例:表命名
在数据分析具体项目中,表命名往往是一项颇具挑战性的任务。尤其当项目时间紧迫时,如何为不同应用场景下的各类数据表进行合理命名,着实让人抓耳挠腮。我们平时工作总使用的是TIDB,在此,结合工作中的一些实践,期望能为读者提供一些有益的帮助。
1. 分层命名规范
1.1. 分层命名规则
在数据仓库的构建过程中,为了便于区分不同层次、不同用途的各类数据表,通常可依据分层规则来进行命名。分层命名规则能够清晰地体现出表所属的层次以及其大致的功能用途,从而在整个数据处理与分析流程中,为数据的管理与使用提供极大的便利。
1.2. 实际执行情况
然而,在实际的工作过程中,我们自身并未严格按照上述分层命名规则来进行表的命名操作,遗憾!遗憾!在今后的工作中,将尽可能地遵循这一规则,以确保数据仓库中各类数据表命名的规范性与系统性,进而提升数据处理与分析的整体效率。
2. 数据分层与命名
2.1. ODS层
ODS(Operational Data Store)层主要用于存储从各个原始数据来源同步而来的数据。在本部门的实践中,借助TiDB自身的同步组件实现了这一数据同步过程。同步后数据库命名不变,例如,贷后生产环境数据来源,对应的库命名为post,TIDB同步过来之后,仍旧命名为post。
2.2. 部门级DM(Data Mart)
2.2.1. DWD层(Data Warehouse Detail Layer)
DWD层作为数据明细层,本质上是部门级的数据集市,其数据粒度与ODS层保持一致。该层旨在对原始数据进行初步的整理与细化,以便为后续的数据处理与分析奠定基础。我们会把一些维度表放入到这一层,前缀为dwd。
2.2.2. DWM层(Data Warehouse Middle Layer)
DWM层为中间表层,其中绝大部分表均为中间表。其主要功能在于对ODS层的数据进行简单聚合操作,通过这种方式对原始数据进行一定程度的提炼,为进一步的数据分析提供更为便捷的基础数据。我们主要是因为有些表涉及到的计算比较复杂,强行拆分出一层,相当于计算层,前缀为dwm。
2.2.3. DWS层(Data Warehouse Service Layer)
DWS层属于服务层,本层的表多为宽表形式。在实际应用场景中,它们主要是为了满足不同业务应用场景下的具体数据分析需求而构建的。我们主要使用的是这一层,大量的表都以这一层进行命名。比如命名为dws_post_out_case,该表是贷后out项目的case表。
2.2.4. ADS层(Application Data Store Layer)
ADS层主要用于存储常用的数据报表相关数据,这些数据往往与可视化呈现密切相关,例如各类可视化报表所涉及的数据。具体而言,ADS层通常会对DWM层的数据进行深度聚合操作,以生成满足特定业务需求的数据结果。以每日分产品的回收率统计为例,通过对DWM层相关数据的深度聚合处理,能够在ADS层得到相应的各个产品的按日回收率数据。我们属于部门级数据分析,数据报表很多,但是通常会直接使用dws层、或者dwm层数据进行深度聚合,ADS层数据放的不是太多。如果放到ADS层,通常会将前缀命名为ads。
3. 新项目应用
在涉及不同项目的应用场景时,为了更精准地标识数据表的来源及其具体用途,可在表命名中加入项目的名称以及项目具体应用的名称等相关信息。
例如,针对资金部的相关应用,以及资金部待验证项目的具体应用场景,可将对应的表命名为ods_zj_dyz_case。此表作为一个源数据存储表,主要用于存储大量由CSV文件导入数据集市的数据,其主键为单个被冻结案件。通过这样的命名方式,能够在众多数据表中迅速明确该表的来源、用途以及数据特征等关键信息。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?