数据仓库之命名规范

数据仓库主题四--(表命名规范) 待总结 todo 阅读详情

数据仓库命名规范旨在确保数据仓库中的各种对象(如数据库、表、列、索引、视图等)具有一致、清晰且有意义的名称。这些规范有助于提高数据的可读性、可维护性和可理解性。以下是一些常见的数据仓库命名规范,涵盖了数据库对象的各个方面。

一般命名规则

1. 清晰和有意义

名称应该清晰明了,能够反映其实际用途或内容。

-- 不好的命名
SELECT * FROM tbl1;

-- 好的命名
SELECT * FROM customer_orders;

2. 避免使用保留字

避免使用SQL或其他数据库系统的保留字作为名称。

-- 不好的命名
SELECT * FROM user;

-- 好的命名
SELECT * FROM customer;

3. 使用小写字母

使用小写字母,避免使用大写或混合大小写,以提高一致性。

-- 不好的命名
SELECT * FROM CustomerData;

-- 好的命名
SELECT * FROM customer_data;

4. 单词间使用下划线分隔

使用下划线(_)分隔单词,提高名称的可读性。

-- 不好的命名
SELECT * FROM customerdetails;

-- 好的命名
SELECT * FROM customer_details;

数据库对象命名

1. 数据库

数据库名称应反映其用途或所属的业务领域。

-- 示例
CREATE DATABASE sales_data;

2. 表

表名应为复数形式,反映表中存储的数据类型。

-- 示例
CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100)
);

3. 列

列名应为单数形式,反映列中存储的数据内容。

-- 示例
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    customer_id INT,
    order_date DATE,
    total_amount DECIMAL(10, 2)
);

4. 索引

索引名称应包含表名和列名,并以idx为后缀。

-- 示例
CREATE INDEX idx_orders_customer_id ON orders (customer_id);

5. 视图

视图名称应以vw_为前缀,反映其数据来源或用途。

-- 示例
CREATE VIEW vw_customer_orders AS
SELECT c.customer_id, c.first_name, c.last_name, o.order_id, o.order_date, o.total_amount
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id;

6. 存储过程和函数

存储过程和函数名称应以sp_或fn_为前缀,反映其功能。

-- 示例
CREATE PROCEDURE sp_get_customer_orders (IN customer_id INT)
BEGIN
    SELECT * FROM orders WHERE customer_id = customer_id;
END;

CREATE FUNCTION fn_calculate_discount (amount DECIMAL(10, 2), discount_rate DECIMAL(5, 2))
RETURNS DECIMAL(10, 2)
BEGIN
    RETURN amount * (1 - discount_rate);
END;

命名约定示例

-- 数据库
CREATE DATABASE sales_data;

-- 表
CREATE TABLE customers (
    customer_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100)
);

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    customer_id INT,
    order_date DATE,
    total_amount DECIMAL(10, 2)
);

-- 索引
CREATE INDEX idx_orders_customer_id ON orders (customer_id);

-- 视图
CREATE VIEW vw_customer_orders AS
SELECT c.customer_id, c.first_name, c.last_name, o.order_id, o.order_date, o.total_amount
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id;

-- 存储过程
CREATE PROCEDURE sp_get_customer_orders (IN customer_id INT)
BEGIN
    SELECT * FROM orders WHERE customer_id = customer_id;
END;

-- 函数
CREATE FUNCTION fn_calculate_discount (amount DECIMAL(10, 2), discount_rate DECIMAL(5, 2))
RETURNS DECIMAL(10, 2)
BEGIN
    RETURN amount * (1 - discount_rate);
END;

数据仓库分层概述

  1. 原始数据层(Raw Data Layer)

    • 保存从源系统提取的原始数据,未经处理或仅经过基本清洗。
    • 命名规范:通常以raw_或stg_作为前缀。
  2. 数据集成层(Data Integration Layer)

    • 保存经过清洗、转换和集成的数据,通常用于进一步分析和处理。
    • 命名规范:通常以int_或etl_作为前缀。
  3. 数据汇总层(Data Aggregation Layer)

    • 保存聚合和汇总的数据,通常用于生成报表和仪表盘。
    • 命名规范:通常以agg_或sum_作为前缀。
  4. 数据服务层(Data Service Layer)

    • 保存最终提供给用户或应用程序的数据,通常以视图或数据集形式存在。
    • 命名规范:通常以svc_或vw_作为前缀。

分层命名规范详细介绍

原始数据层(Raw Data Layer)

原始数据层中的表和对象通常使用raw_或stg_作为前缀,后面跟随数据源名称和表名。

-- 示例
CREATE TABLE raw_sales_data (
    sale_id INT,
    product_id INT,
    sale_date DATE,
    quantity INT,
    price DECIMAL(10, 2)
);

CREATE TABLE stg_customer_data (
    customer_id INT,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100)
);

数据集成层(Data Integration Layer)

数据集成层中的表和对象通常使用int_或etl_作为前缀,后面跟随数据处理阶段和表名。

-- 示例
CREATE TABLE int_sales_data_cleaned (
    sale_id INT,
    product_id INT,
    sale_date DATE,
    quantity INT,
    price DECIMAL(10, 2),
    cleaned_flag BOOLEAN
);

CREATE TABLE etl_customer_data_transformed (
    customer_id INT,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100),
    full_name VARCHAR(100)
);

数据汇总层(Data Aggregation Layer)

数据汇总层中的表和对象通常使用agg_或sum_作为前缀,后面跟随汇总维度和表名。

-- 示例
CREATE TABLE agg_sales_monthly (
    month DATE,
    total_sales DECIMAL(10, 2),
    total_quantity INT
);

CREATE TABLE sum_customer_purchases (
    customer_id INT,
    total_purchases DECIMAL(10, 2),
    total_items INT
);

数据服务层(Data Service Layer)

数据服务层中的视图和对象通常使用svc_或vw_作为前缀,后面跟随数据服务对象的名称。

-- 示例
CREATE VIEW svc_sales_summary AS
SELECT 
    sale_date,
    SUM(quantity) AS total_quantity,
    SUM(price * quantity) AS total_sales
FROM 
    int_sales_data_cleaned
GROUP BY 
    sale_date;

CREATE VIEW vw_customer_summary AS
SELECT 
    customer_id,
    full_name,
    email,
    total_purchases,
    total_items
FROM 
    sum_customer_purchases
JOIN 
    etl_customer_data_transformed USING (customer_id);

实践中的分层命名示例

假设我们有一个电商平台的数据仓库,包含订单数据和客户数据:

原始数据层

CREATE TABLE raw_orders (
    order_id INT,
    customer_id INT,
    order_date DATE,
    product_id INT,
    quantity INT,
    price DECIMAL(10, 2)
);

CREATE TABLE raw_customers (
    customer_id INT,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100)
);

数据集成层

CREATE TABLE int_orders_cleaned (
    order_id INT,
    customer_id INT,
    order_date DATE,
    product_id INT,
    quantity INT,
    price DECIMAL(10, 2),
    cleaned_flag BOOLEAN
);

CREATE TABLE int_customers_transformed (
    customer_id INT,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100),
    full_name VARCHAR(100)
);

数据汇总层

CREATE TABLE agg_orders_monthly (
    month DATE,
    total_sales DECIMAL(10, 2),
    total_quantity INT
);

CREATE TABLE sum_customers_purchases (
    customer_id INT,
    total_purchases DECIMAL(10, 2),
    total_items INT
);

数据服务层

CREATE VIEW svc_order_summary AS
SELECT 
    order_date,
    SUM(quantity) AS total_quantity,
    SUM(price * quantity) AS total_sales
FROM 
    int_orders_cleaned
GROUP BY 
    order_date;

CREATE VIEW vw_customer_summary AS
SELECT 
    customer_id,
    full_name,
    email,
    total_purchases,
    total_items
FROM 
    sum_customers_purchases
JOIN 
    int_customers_transformed USING (customer_id);

通过遵循这些命名规范,可以显著提高数据仓库的可读性和可维护性,使得数据管理和使用更加高效。

理论篇~第二章 数据仓库的命名规范 大家可能对命名规范重视不太够。在多年的工作中,碰到太多由于命名不规范,导致代码混乱和数据管理困难等问题。这个问题在元数据管理时,体现得特别重要。 当然,每个公司的命名规范不一样,只要做到易理解、易管理就行。接下来,说说自己的理解。 1 表     表的命名首先按数据分层和主题来划分来定规范。    1.1 ODS层(操作数据层)          ODS层作为最底层,应该 阅读详情

相关推荐

数仓理论知识之数仓命名规范

数据分层 数据运营层:ODS(Operational Data Store) ODS层,最接近源数据层,为了考虑后续数据追溯,这一层不建议做过多的数据清洗工作,最好原封不动的接入原始数据。 数据仓库层:DW(Data Warehouse) 数据仓库层是我们在做数据仓库时要核心设计的一层,在这里,要从ODS层提取数据建立各种数据模型,DW层又细分为DWD层,DWM层和DWS层。 DWD(Data Warehouse Detail) DWD层要做的是将数据清理、整合、规范化、脏数据、垃圾数据、规范不一致的、状

寒暄的博客 7873

数仓---命名规范---表、字段、脚本

数仓的命名规范(表、字段、脚本)

一枚小白的博客 4328

一文带你了解数据仓库命名规范:提升效率与可维护性

在本文中,我们深入探讨了数据仓库命名规范的重要性和具体实施方法。我们覆盖了从数据库、表、字段到视图、存储过程和分区的各个方面的命名规则。提高数据仓库的可读性和可维护性减少错误和混淆提升团队协作效率为未来的扩展和变更留下空间一致的描述性的简洁的可扩展的符合业务逻辑的最后,实施命名规范是一个持续的过程。它需要团队的共同努力和定期的审查与更新。通过使用本文提到的工具和最佳实践,你可以确保你的数据仓库始终保持良好的组织和高效的运作。

一个8年大数据开发工程师的碎碎念 2248

数据仓库命名规范详解

小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)。实时(rt)、小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)、一次性任务(o)、无周期(n)实时(rt)、小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)、一次性任务(o)、无周期(n)实时(rt)、小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)、一次性任务(o)、无周期(n)实时(rt)、小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)、一次性任务(o)、无周期(n)

jiang1182427208的博客 6300

数据治理之数仓命名规范大全.pdf

一、数据运营层:ODS(Operational Data Store) ODS层,是最接近数据源中数据的一层,为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即 可,至于数据的去噪、去重、异常值处理等过程可以放在后面的DWD层来做。 二、数据仓库层:DW (Data Warehouse) 数据仓库层是我们在做数据仓库时要核心设计的一层,在这里,从 ODS 层中 获得的数据按照主题建立各种数据模型 。DW 层又细分为DWD(Data Warehouse Detail )层、DWM(DataWareHouse Middle )层和DWS(Data WareHouse Servce ) 。

IEEE Transactions on Industrial Informatics(TII)投稿全流程解析:从准备到成功提交

本文详细解析了向IEEE Transactions on Industrial Informatics(TII)投稿的全流程,涵盖从投稿前的格式准备、内容结构优化到在线提交系统实操等关键环节。重点强调了遵守TII严格的格式规范、双盲评审要求以及如何构建有说服力的学术叙述,旨在帮助研究者提升稿件质量,顺利通过评审。

weixin_28396629的博客 1866

数仓分层及命名规范

一、分层 1、ODS层 原始数据层,存放原始数据,直接加载原始日志、数据,数据保持原貌,不做任何处理。 2、DWD层 对ODS层进行清洗,比如处理里面的空值、脏数据、极限值 3、DWS层 对DWD层进行join 或者聚合、汇总操作 4、ADS层 为各种统计报表提供数据 二、分层优点 1、把复杂问题简单化 将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单、并且方便定位问题。 2、减少重复开发 规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性。 3、隔离原始

weixin_44341385的博客 3689

告别第三方插件:官方Fused Library如何重塑Android库的合并与发布流程

本文详细介绍了Android官方推出的Fused Library如何替代第三方fat-aar插件,优化Android库的合并与发布流程。通过原生支持、智能依赖管理等优势,Fused Library解决了版本兼容性、依赖传递等核心痛点,提供了更稳定高效的开发体验。文章还提供了迁移实操指南和工程实践建议,帮助开发者顺利过渡到官方方案。

weixin_42561040的博客 257

数据仓库命名规范

数据模型是企业数据管理的重要工具,其命名规范需遵循统一标准。ODS、DW、APP等各层表名需带特定前缀(如ODS_、DW_、D_),长度不超过30字符,使用英文单词和下划线分隔。索引、视图、存储过程等数据库对象也需按类型添加前缀(如IDX_、V_、SP_)。命名一律小写,避免保留字和拼音,字段名需保持一致性。数据类型选择上,字符型用char/varchar,数字型用number,日期时间优先用DATE类型,大字段避免使用。统一规范的命名设计有助于保证数据一致性和系统可维护性。

小 tom的博客 3282

【多元统计分析】均值向量和协方差阵的检验——spss上机实验

均值向量和协方差阵的检验——spss上机实验 #参考书目为《多元统计分析》(第五版)——何晓群.中国人民大学出版社 #如有错误,请指正!谢谢~ #关注公众号搜索同名文章获取数据~ 习题2.3 现选取内蒙古、广西、贵州、云南、西藏、宁夏、新疆、甘肃和青海等9个内陆边远省区。选取人均GDP、第三产业比重、人均消费支出、人口自然增长率及文盲半文盲人口占15岁以上人口的比例等5项能较好的说明各地区社会经济发展水平的指标,验证边远及少数民族聚居区的社会经济发展水平与全国平均水平间有无显著差异。 将输入导入spss

suansuannainaizi的博客 3万+

深入理解C语言内存管理:堆与栈的区别

栈是一种遵循后进先出(LIFO)原则的数据结构。在程序中,栈用于存储局部变量、函数的参数以及函数调用时的返回地址等信息。栈的内存管理由操作系统自动进行,每次函数调用时都会在栈上分配一块内存区域,函数执行完毕后,该内存区域会自动释放。在C语言中,堆与栈是两种不同的内存分配方式,各自有着不同的特点和适用场景。栈内存自动管理,访问速度快,但大小有限,适用于存储局部变量和函数调用信息。堆内存由程序员手动管理,适用于存储动态数据结构,大小不受限制,但访问速度较慢,容易导致内存泄漏等问题。

set_one的博客 1582

数据仓库开发规范之数据仓库模型表命名规范

本规范依赖《数据仓库架构》定义,需要提前理解基于Kimball维度模型指导标准三层架构方案,另外通过表命名涵盖必要业务含义模块化抽象进行命名规范设计。目标达成泛业务化的数据仓库通用命名规范定义,基于此,可以指导数据中台或数据开发平台的建设给出模块化的理论参考。

道可道非常道 1339

maxwell 平面变压器仿真(一)

在学习开关电源设计的时候,我们难免要设计变压器,采用有限元仿真软件MAXWELL 可以帮助我们确定变压器的励磁电感,漏感等参数。对于我们的理论分析大有裨益。但是苦于这破软件的教程真的是相当的零散,我相信大家用起来也总是苦于没有系统的教程指导,撰写本文的目的有两个,一个是记录自己使用的一些问题,一个是给大家提供一个可以参考的文档。

qq_45405656的博客 8252

金融数据仓库之分层命名规范

微信公众号“以数据之名”关注回复2即可获取源代码和分享资源。​关注他2 人赞同了该文章不以规矩,不能成方圆。火车之所以能奔驰千里,是因为它始终离不开两条铁轨;风筝之所以能飞翔万尺,是因为它总是情系着手中的线;大江东流,日月交替,大自然生生不息,用规则演绎着生命的轨迹。金融数据仓库构建亦是如此,我们需要先制定好分层及命名规范,并且不断的监督约束大家按照约定执行。否则开发者随意自由发挥,后期需要投入大量的人力成本和时间成本去重构,其困难程度也将不可预期。

张伟的专栏 854

《ATF(TF-A)专题精讲》目录——146篇,完整覆盖整个ATF的官方文档

本文摘要介绍了Trusted Firmware-A (TF-A)项目的技术文档体系。主要内容包括:项目概述、组件解析(如ARM RAS/RME/CCA等安全技术)、系统设计(启动流程、中断管理、信任链等)、开发指南(构建环境、移植策略)、性能分析、平台支持(涵盖NXP、Marvell、Xilinx等主流芯片厂商)、开发流程规范以及安全通告(CVE漏洞分析)。文档体系全面覆盖了ARM安全固件的技术实现、硬件适配和开发实践,为开发者提供了从理论到实践的完整参考。

Linux内核架构师 1114

STM32H750VB与AD5292通讯,写入阻值后,AD5292 的阻值没有变化,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1101

数据库命名规范--通用(sql,mysql,orcle,db)

一.数据库: 1. 基本命名规则   表 1. 基本数据库对象命名        数据库对象 前缀 表 (Table) 字段(Column) 视图 (View) 存储过程 (Stored procedure) 触发器(Trigger) 索引(Index) 主键(Primary key

boss2967的博客 1177

JAVA:Spring Boot 集成 LibreOffice 实现文档在线转换服务

本文介绍了在企业级应用开发中使用LibreOffice实现文档格式转换的技术方案。通过对比分析商业库、纯Java方案和云服务API的优缺点,重点阐述了LibreOffice在格式兼容性、转换质量和零成本方面的优势。文章详细说明了环境准备步骤,包括Windows/Linux系统安装LibreOffice、解决中文乱码问题以及Docker部署方案。最后提供了Spring Boot项目的基本配置,包括Maven依赖和application.yml配置文件,为构建稳定高效的文档转换服务奠定基础。

木头 520

数据仓库命名规范全攻略

1. 引言。

lz989796的博客 631

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

2021.4.26数据仓库之数据仓库分层设计与命名规范

复习: 上节课从维度建模开始说的,维度建模是源自于数据集市,数据集市的概念是由拉尔夫金博尔提出来的,维度建模主要应用的领域是OLAP的领域,就是数据分析的场景,维度建模里面只有事实表和维度表,事实表就是现实世界中的操作型事件就放在事实表里面,事实表是由维度和度量来组成的,维度就是看数据的角度,他和主题的区别就主题是一个更大的角度,维度就是主题底下的某一些小的角度去观察度量,事实表中的每一个维度,都是会有一个维度表与它一一对应,就像主外键关联,可以在事实表里关联到更多的维度属性来对度量进行统计,那维度表更像是

超可爱慕之 3134

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SQL Server 2005 数据库对象命名规范 Database Naming Conventions(Guidelines)

SQL Server 2005 数据库对象命名规范 Database Naming Conventions(Guidelines) 使用SQL Server 2005 命名数据库对象时可以参照微软的示例数据库AdventureWorks。其次可以参照以下内容:Database Naming Conventions Version 1.1Last Revised May 13, 2004

flyingdream123的专栏 2177

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

数据库命名规范

数据库命名规范 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:SQL Server 2014 Management Studio 作者:朱海恩 撰写时间:2019年7月12日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...

weixin_42585491的博客 5617
上一篇: Markdown介绍
下一篇: 容器之docker compose
james二次元
博客等级 码龄16年 8106粉丝 240原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值