首页 > 其他分享 >数仓分层实例:表命名

数仓分层实例:表命名

时间:2024-12-30 11:32:38浏览次数:1  
标签:数仓 Data 数据表 分层 实例 命名 2.2 数据

在数据分析具体项目中,表命名往往是一项颇具挑战性的任务。尤其当项目时间紧迫时,如何为不同应用场景下的各类数据表进行合理命名,着实让人抓耳挠腮。笔者平时工作总使用的是TIDB,在此,结合工作中的一些实践,期望能为读者提供一些有益的帮助。

1. 分层命名规范

1.1. 分层命名规则

在数据仓库的构建过程中,为了便于区分不同层次、不同用途的各类数据表,通常可依据分层规则来进行命名。分层命名规则能够清晰地体现出表所属的层次以及其大致的功能用途,从而在整个数据处理与分析流程中,为数据的管理与使用提供极大的便利。

1.2. 实际执行情况

然而,在实际的工作过程中,笔者自身并未严格按照上述分层命名规则来进行表的命名操作,遗憾!遗憾!在今后的工作中,将尽可能地遵循这一规则,以确保数据仓库中各类数据表命名的规范性与系统性,进而提升数据处理与分析的整体效率。

2. 数据分层与命名

2.1. ODS层

ODS(Operational Data Store)层主要用于存储从各个原始数据来源同步而来的数据。在本部门的实践中,借助TiDB自身的同步组件实现了这一数据同步过程。同步后数据库命名不变,例如,贷后生产环境数据来源,对应的表命名为puhui_repay。

2.2. 部门级DM(Data Mart)

2.2.1. DWD层(Data Warehouse Detail Layer)

DWD层作为数据明细层,本质上是部门级的数据集市,其数据粒度与ODS层保持一致。该层旨在对原始数据进行初步的整理与细化,以便为后续的数据处理与分析奠定基础。我们会把一些维度表放入到这一层。

2.2.2. DWM层(Data Warehouse Middle Layer)

DWM层为中间表层,其中绝大部分表均为中间表。其主要功能在于对ODS层的数据进行简单聚合操作,通过这种方式对原始数据进行一定程度的提炼,为进一步的数据分析提供更为便捷的基础数据。我们主要是因为有些表涉及到的计算比较复杂,强行拆分出一层,相当于计算层。

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层得到相应的各个产品的按日回收率数据。

3. 不同项目应用

在涉及不同项目的应用场景时,为了更精准地标识数据表的来源及其具体用途,可在表命名中加入项目的名称以及项目具体应用的名称等相关信息。

例如,针对资金部的相关应用,以及资金部待验证项目的具体应用场景,可将对应的表命名为ods_zj_dyz_case。此表作为一个源数据存储表,主要用于存储大量由CSV文件导入数据集市的数据,其主键为单个被冻结案件。通过这样的命名方式,能够在众多数据表中迅速明确该表的来源、用途以及数据特征等关键信息。

标签:数仓,Data,数据表,分层,实例,命名,2.2,数据
From: https://www.cnblogs.com/DidierFeng/p/18640602

相关文章

  • 分层数据流图
    分层数据流图(HierarchicalDataFlowDiagram,H-Diagram)是通过一系列层次化的图表来逐步细化系统功能的一种方法。它从顶层(0层)开始,逐层向下分解,直到每个处理过程都被详细描述清楚为止。这种分层的方式有助于理解复杂系统的结构和行为,同时保持每层的清晰度和可管理性。以下是关于......
  • Simulink开发项1000例实战专栏--实例29:基于Simulink平台开发一个多逆变器协同控制系统
    目录基于Simulink的分布式控制(DistributedControl)的多逆变器协同控制(Multi-InverterCoordinatedControl)项目实例介绍1.项目背景2.系统架构2.1主电路设计2.2分布式控制器设计2.2.1下垂控制(DroopControl)2.2.2虚拟阻抗控制(VirtualImpedanceControl)2.2.3一致......
  • Yocto 项目中的交叉编译:原理与实例
    Yocto项目是一个强大的工具集,它专注于为嵌入式系统生成定制的Linux发行版。交叉编译在Yocto项目中扮演着核心角色,它使得开发者能够在功能强大的宿主机上构建适用于资源受限目标设备的软件系统。这篇文章将从运行原理、实际案例和工具链组成等角度全面解析Yocto项目中......
  • net 命令按功能分类和层级结构制作的思维导图表格化版本。这个表格有助于清晰地展示 n
    net命令按功能分类和层级结构制作的思维导图表格化版本。这个表格有助于清晰地展示net命令的各种功能,并且按不同的任务和管理类型进行了分层。net 命令功能分类与层级结构表格类别命令子命令/参数功能描述示例命令用户管理netuser/add添加一个用户账户。ne......
  • java通过模拟post方式提交表单实现图片上传功能实例
    java通过模拟post方式提交表单实现图片上传功能实例|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-----......
  • 星海智算:如何更换实例内各类下载源
    软件源更换指南概述本指南旨在帮助非技术人员更换软件源,以加快软件下载速度和提高系统稳定性。我们将介绍如何更换Debian/Ubuntu/CentOS系统的软件源、Docker源、pip源和conda源。1.更换系统软件源步骤:01复制并运行脚本bash<(curl-sSLhttps://linuxmirrors.cn/......
  • java 多线程处理list集合数据的实例应用
    众所周知创建线程的三种方式:继承Thread,重写run方法实现Runnable接口,重新run方法实现Callable接口,重写call方法下面使用Callable,来说一下为什么使用1.Thread类和Runnable接口都不允许声明检查型异常,也不能定义返回值。没有返回值这点稍微有点麻烦。不能声明抛出检查型异常则......
  • 如何声明、实例化和使用委托(C# 编程指南)
    Learn  .NET  C# 使用英语阅读保存    如何声明、实例化和使用委托(C#编程指南)项目2023/04/0714个参与者反馈本文内容示例可靠编程另请参阅可以使用以下任一方法声明委托:使用匹配签名声明委托类型并声明方法:C#复制 //Decl......
  • windows 驱动实例分析系列: PL2303芯片开发实战之二
    经过对linux代码的解读和在windows下面的简单测试,已经总结出来PL2303的基本使用方式了,接下来就可以进行windows平台下的驱动开发了,同时还需要一个com驱动的例子,幸运的是之前已经写过了:windows驱动实例分析系列-PL2303芯片开发实战之一windows驱动实例分析系列-定时日志的C......
  • Python基础--类方法、实例方法、静态方法
    一、什么是类和实例类(Class)是一个蓝图或模板,它定义了对象的行为和属性。例如,你可以把“汽车”作为一个类,它定义了所有汽车共有的属性(比如颜色、品牌)和行为(比如启动、刹车)。实例(Instance)是类的具体对象。每一个具体的对象都是一个类的实例,比如“我的红色宝马车”就是“汽车”类的......