數據倉庫命名規范

1. 概述

數據模型是數據管理的分析工具和交流的有力手段;同時,還能夠很好地保證數據的一致性,是實現商務智能(Business Intelligence)的重要基礎。因此建立、管理一個企業級的數據模型,應該遵循標準的命名和設計規范。

文章目錄

    • 1. 概述
    • 2. 數據倉庫命名規范
      • 2.1. 命名規范
        • 2.1.1. 表屬性規范
          • 2.1.1.1. 表名
          • 2.1.1.2. DW事實表表名
          • 2.1.1.3. APP應用層表名
          • 2.1.1.4. DW/DM維度表表名
          • 2.1.1.5. 元數據表名
        • 2.1.2. 索引
          • 2.1.2.1. 普通索引
          • 2.1.2.2. 主鍵索引
          • 2.1.2.3. 唯一索引
          • 2.1.2.4. 外鍵索引
          • 2.1.2.5. 函數索引
          • 2.1.2.6. 簇索引
        • 2.1.3. 視圖
        • 2.1.4. 物化視圖
        • 2.1.5. 存儲過程
        • 2.1.6. 觸發器
        • 2.1.7. 函數
        • 2.1.8. 數據包
        • 2.1.9. 序列
        • 2.1.10. 普通變量
        • 2.1.11. 游標變量
        • 2.1.12. 記錄型變量
        • 2.1.13. 表類型變量
        • 2.1.14. 數據庫鏈接
      • 2.2. 命名
        • 2.2.1. 語言
        • 2.2.2. 大小寫
        • 2.2.3. 單詞分隔
        • 2.2.4. 保留字
        • 2.2.5. 命名長度
        • 2.2.6. 字段名稱
        • 2.2.7 命名風格比較
          • 建議
      • 2.3. 數據類型
        • 2.3.1. 字符型
        • 2.3.2. 數字型
        • 2.3.3. 日期和時間
        • 2.3.4. 大字段
        • 2.3.5. 唯一鍵
    • 3. 數倉表命名的分層與后綴規則
      • 3.1常見規則
      • 3.2 推薦命名模板
        • 3.2.1 示例
      • 3.3設計要點
        • 3.3.1示例
      • 3.4 設計要點
      • 3.5 多系統同名表處理規則
        • 3.5.1處理原則
        • 3.5.2命名規則



2. 數據倉庫命名規范

2.1. 命名規范

2.1.1. 表屬性規范
2.1.1.1. 表名
  • ODS層表名
    前綴為ODS_應用系統名(縮寫)_數據表名。數據表名稱必須以有特征含義的單詞或縮寫組成,中間可以用“_”分割,例如:ODS_FUN_CUSTOMERINFO。表名稱不能用雙引號包含,表名長度不超過30個字符。如果ODS設計采用貼源設計,數據表名應與源系統一致。
    系統和應用名規則:
    • 核心 COR
    • 對公信貸 CLN
    • 個貸 PLN
    • 基金 FUN
    • 票據 TIC
    • 理財 FIN
    • 報表 RPT
    • ……
2.1.1.2. DW事實表表名
  • 前綴為DW_主題名(縮寫)_功能描述。數據表名稱必須以有特征含義的單詞或縮寫組成,中間可以用“_”分割,例如:DW_ORD_DETAIL。表名稱不能用雙引號包含,表名長度不超過30個字符。
    主題名規則:
    • 訂單 ORD
    • 營銷活動 MKC
    • 貸款 LN
    • 網銀 NET
    • 客戶 CUS
    • ……
      數據表名規則:
    • 基礎表 _BA
    • 日匯總表 _D
    • 月匯總表 _M
    • 歷史累計 _H
    • 全量加載 _A
    • 增量加載 _I
2.1.1.3. APP應用層表名
  • 前綴為APP_主題名(縮寫)_功能描述。數據表名稱必須以有特征含義的單詞或縮寫組成,中間可以用“_”分割,例如:APP_RPT_DEALER_GOODS。表名稱不能用雙引號包含,表名長度不超過30個字符。
    參考DW層表名稱規范。
2.1.1.4. DW/DM維度表表名
  • 前綴為D_。數據表名稱必須以有特征含義的單詞或縮寫組成,中間可以用“_”分割,例如:D_ACCOUNTD_PUB_DATE。表名稱不能用雙引號包含,表名長度不超過30個字符。
    數據表名規則:
    • 日期維度 D_PUB_DATE
    • 城市 D_CITY
2.1.1.5. 元數據表名
  • 前綴為M_應用名(縮寫)_功能描述。數據表名稱必須以有特征含義的單詞或縮寫組成,中間可以用“_”分割,例如:M_ETL_TASK。表名稱不能用雙引號包含,表名長度不超過30個字符。
    應用名規則:
    • ETL ETL
    • 報表 RPT
    • OLAP分析 OLP
    • 源系統 SRC
    • 數據庫 DB
    • 軟硬件 SHW
    • ……
2.1.2. 索引
2.1.2.1. 普通索引
  • 前綴為IDX_。索引名稱應是前綴+表名+構成的字段名。如果復合索引的構成字段較多,則只包含第一個字段,并添加序號。表名可以去掉前綴。
2.1.2.2. 主鍵索引
  • 前綴為IDX_PK_。索引名稱應是前綴+表名+構成的主鍵字段名,在創建表時用using index指定主鍵索引屬性。
2.1.2.3. 唯一索引
  • 前綴為IDX_UK_。索引名稱應是前綴+表名+構成的字段名。
2.1.2.4. 外鍵索引
  • 前綴為IDX_FK_。索引名稱應是前綴+表名+構成的外鍵字段名。
2.1.2.5. 函數索引
  • 前綴為IDX_func_。索引名稱應是前綴+表名+構成的特征表達字符。
2.1.2.6. 簇索引
  • 前綴為IDX_clu_。索引名稱應是前綴+表名+構成的簇字段。
2.1.3. 視圖
  • 前綴為V_。按業務操作命名視圖。
2.1.4. 物化視圖
  • 前綴為MV_。按業務操作命名實體化視圖。
2.1.5. 存儲過程
  • 前綴為SP_。按業務操作命名存儲過程。
2.1.6. 觸發器
  • 前綴為Trig_。觸發器名應是前綴+表名+觸發器名。
2.1.7. 函數
  • 前綴為Func_。按業務操作命名函數。
2.1.8. 數據包
  • 前綴為Pkg_。按業務操作集合命名數據包。
2.1.9. 序列
  • 前綴為Seq_。按業務屬性命名。
2.1.10. 普通變量
  • 前綴為Var_。存放字符、數字、日期型變量。
2.1.11. 游標變量
  • 前綴為Cur_。存放游標記錄集。
2.1.12. 記錄型變量
  • 前綴為Rec_。存放記錄型數據。
2.1.13. 表類型變量
  • 前綴為Tab_。存放表類型數據。
2.1.14. 數據庫鏈接
  • 前綴為dbl_。表示分布式數據庫外部鏈接關系。

2.2. 命名

2.2.1. 語言

命名應該使用英文單詞,避免使用拼音,特別不應該使用拼音簡寫。命名不允許使用中文或者特殊字符。

2.2.2. 大小寫

名稱一律小寫,以方便不同數據庫移植,以及避免程序調用問題。

2.2.3. 單詞分隔

命名的各單詞之間可以使用下劃線進行分隔。

2.2.4. 保留字

命名不允許使用SQL保留字。

2.2.5. 命名長度

表名、字段名、視圖名長度應限制在20個字符內(含前綴)。

2.2.6. 字段名稱

同一個字段名在一個數據庫中只能代表一個意思。不同的表用于相同內容的字段應該采用同樣的名稱,字段類型定義。

2.2.7 命名風格比較

在數據庫及相關系統開發中,常見的命名風格主要有以下三種:

命名風格格式示例特點適用場景優缺點
蛇形命名法(snake_case)customer_info, order_detail全小寫單詞,中間用下劃線分隔數據庫表名、字段名、文件名優點:可讀性強、與SQL關鍵字區分度高、跨語言兼容好;缺點:名稱稍長
駝峰命名法(camelCase / PascalCase)小駝峰:customerInfo;大駝峰:CustomerInfo單詞間不加分隔符,每個單詞首字母大寫(小駝峰首個單詞小寫)程序變量名、函數名、類名優點:簡潔;缺點:在SQL中可讀性差,對大小寫敏感的系統易出錯
匈牙利命名法(HungarianNotation)strCustomerNameiOrderCount前綴表示數據類型或用途(str=字符串,i=整數)早期Windows編程、部分嵌入式開發優點:類型信息直觀;缺點:冗余、與現代IDE類型推斷重復,不適合現代數據庫命名
建議
  • 數據庫表名與字段名:推薦使用蛇形命名法(snake_case),全小寫+下劃線分隔,保證跨平臺可移植性與可讀性。
  • 程序代碼(如存儲過程、函數):可根據語言習慣選擇駝峰命名法,但仍建議與數據庫命名保持一定一致性。
  • 匈牙利命名法:不建議用于現代數據庫對象命名,可在少數特殊嵌入式場景保留。

示例

  • 表名(snake_case):dw_order_detail
  • 字段名(snake_case):customer_idorder_date
  • 存儲過程(PascalCase):SP_UpdateCustomerInfo

2.3. 數據類型

2.3.1. 字符型

固定長度的字串類型采用char,長度不固定的字串類型采用varchar。避免在長度不固定的情況下采用char類型。

2.3.2. 數字型

數字型字段盡量采用number類型,要注意精度。

2.3.3. 日期和時間
  • 系統時間:由數據庫產生的系統時間首選數據庫的日期型,如DATE類型。
  • 外部時間:由數據導入或外部應用程序產生的日期時間類型采用varchar類型,數據格式采用:YYYYMMDDHH24MISS
2.3.4. 大字段

如無特別需要,避免使用大字段(blobcloblongtextimage等)。

2.3.5. 唯一鍵

對于數字型唯一鍵值,盡可能用自增產生。

3. 數倉表命名的分層與后綴規則

為了方便在日常開發與運維中快速識別表的用途、刷新頻率、加載方式,可以在表名中通過前綴、主題縮寫、功能后綴等方式進行標簽化命名。

3.1常見規則

類型前綴示例含義
ODS(貼源層)ods_ods_fun_customerinfo源系統原始數據,貼近源結構
DW/DM事實表dw_ / dm_dw_ord_detail存放業務事件明細,如訂單、交易等
維度表d_d_customer, d_pub_date存放業務維度信息(客戶、日期等)
APP應用層表app_app_rpt_dealer_goods面向業務應用或報表的結果集
全量表后綴 _adw_ord_detail_a每次全量加載,覆蓋寫入
全刪全導表后綴 _fa / _fulldw_ord_detail_fa加載前全量刪除再寫入(truncate+load)
日增量表后綴 _d / _idw_ord_detail_d按天增量加載,數據粒度為日
月增量表后綴 _mdw_ord_detail_m按月增量加載,數據粒度為月
歷史累積表后綴 _hdw_ord_detail_h保存歷史全量數據,帶時間版本
實時同步表(Flink/Kafka)前綴 rt_ / ods_rt_ / dw_rt_ods_rt_trade_detail實時數據采集表,由Flink或Kafka流處理寫入
快照表后綴 _snapdw_account_snap某時刻的全量快照
臨時表前綴 tmp_tmp_sales_analysis任務運行中臨時使用
中間結果表前綴 mid_mid_sales_summary數據加工中間結果

3.2 推薦命名模板

  • 層級前綴:ods / dw / dm / d / app / rt
  • 主題縮寫:如 ord(訂單)、cus(客戶)、ln(貸款)
  • 功能描述:表的業務含義
  • 刷新標識:a(全量)、fa(全刪全導)、d(日增量)、m(月增量)、h(歷史)、rt(實時)

3.2.1 示例
表名解析
ods_fun_customerinfoODS層,基金系統的客戶信息,貼源表
dw_ord_detail_aDW層,訂單明細,全量加載
dw_ord_detail_dDW層,訂單明細,日增量加載
dw_ord_detail_hDW層,訂單明細歷史累積表
d_customer維度表,客戶維度
rt_trade_detail實時交易明細表,Flink/Kafka同步

3.3設計要點

  • 層級前綴:ods / dw / dm / d / app / rt
  • 主題縮寫:如 ord(訂單)、cus(客戶)、ln(貸款)
  • 功能描述:表的業務含義
  • 刷新標識:a(全量)、fa(全刪全導)、d(日增量)、m(月增量)、h(歷史)、rt(實時)

3.3.1示例
表名解析
ods_fun_customerinfoODS層,基金系統的客戶信息,貼源表
dw_ord_detail_aDW層,訂單明細,全量加載
dw_ord_detail_dDW層,訂單明細,日增量加載
dw_ord_detail_hDW層,訂單明細歷史累積表
d_customer維度表,客戶維度
rt_trade_detail實時交易明細表,Flink/Kafka同步

3.4 設計要點

  1. 前綴代表層級,中間部分代表主題,后綴代表刷新策略或加載方式。
  2. 實時表必須有顯式標識rt__rt),否則容易被誤認為批處理表。
  3. 對于全刪全導表,建議用 _fa(full append)或 _full 明確風險,提醒使用者數據全覆蓋。
  4. 盡量保證不同層級和刷新策略不混淆,一眼就能看出表的特性。

3.5 多系統同名表處理規則

在集團公司或多系統環境中,常常會遇到不同業務系統存在同名表的情況。例如:

  • OA 系統emp(員工信息表,OA中用于考勤、人事流程)
  • ERP 系統emp(員工信息表,ERP中用于薪資、財務成本)
  • POS 系統emp(員工信息表,POS中用于銷售員信息)

如果不加區分直接同步到 ODS 層,會造成表名沖突和含義混淆。

3.5.1處理原則
  1. 表名唯一化
    在 ODS 層命名時加入系統標識(系統縮寫),保證不同系統的同名表在數倉中不會沖突。
  2. 保持可追溯性
    表名應能快速反映來源系統,方便數據溯源和問題排查。
  3. 貼源設計
    ODS 層表結構與源系統一致,盡量減少字段改動,確保原貌。
3.5.2命名規則
  • 系統縮寫:建議統一在企業級數據標準中定義,如:

    • OA 系統:oa
    • ERP 系統:erp
    • POS 系統:pos
    • HR 系統:hr
    • CRM 系統:crm
  • 表名:與源系統一致(保持貼源原則)

    示例

來源系統源表名ODS 表名
OAempods_oa_emp
ERPempods_erp_emp
POSempods_pos_emp

設計要點

  • 系統縮寫應全局唯一,避免縮寫重復導致歧義。
  • 如果同一個系統中存在多個子模塊(如 ERP 財務、ERP 生產),可以擴展縮寫:
    • ERP 財務模塊:erp_fin
    • ERP 生產模塊:erp_mfg
  • 在元數據管理平臺(如 Data Catalog)中登記系統縮寫及表名映射關系,方便后續管理。
  • 對于實時同步的同名表,可以在系統縮寫后增加 _rt
    • ods_oa_emp_rt
    • ods_pos_emp_rt

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92534.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92534.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92534.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FlinkSQL Joins全解析

1. Lookup Join用途:用于流表與外部維表(靜態或緩慢變化表)的關聯(如 MySQL、HBase 等)。特點:通過 實時查詢外部存儲 獲取維度數據。僅支持 處理時間(Processing Time)語義&#xf…

【FileZilla】基于 FTP 的 Windows 和 Linux 文件傳輸

在嵌入式開發過程中我們經常需要在 Windows 和 Linux 下進行文件傳輸,本文就介紹一種通過 FTP 實現 Windows 和 Linux 文件傳輸的方法。 Windows 為物理主機,Linux 是在 Vmware 虛擬機中安裝運行的 Ubuntu,版本為 18.04。 Ubuntu 安裝 FTP …

【GPT入門】第42課 ollama安裝與運行llama3模型

【GPT入門】第42課 ollama安裝與運行llama3模型1. 安裝ollama2.運行模型3.測試模型3.1 直接在命令行交互3.2 openai接口1. 安裝ollama https://ollama.com/ 選download, 選linux 執行安裝命令: curl -fsSL https://ollama.com/install.sh | sh2.運行模型 啟動服…

Lua語言元表、協同程序

元表元表的定義允許我們改變table的行為。setmetatable(普通表,元表)-- 元表a {"a","b","c"} -- 普通表 b {} --元表c setmetatable(a,b)print("------------------------")f {}print("f:",f)d setmetatabl…

[已解決]VSCode右鍵菜單消失恢復

前言 莫名其妙,好似VSCode自動更新以后,右鍵菜單就失效了,重裝也無果. 手動搞一個吧 保存下面代碼到桌面修復VSCODE右鍵菜單.reg,雙擊運行即可. Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]"使用 VSCode 打開""…

什么是瀏覽器標識?

瀏覽器標識 層面一:網絡層指紋 (HTTP/TLS) 這是最基礎的指紋,即使不用瀏覽器,只用Go的 net/http 發請求也會留下。HTTP Headers (請求頭): User-Agent: 最著名的標識,聲明自己是什么瀏覽器。很容易偽造,但也很容易被識…

五十八、【Linux系統nginx服務】nginx代理服務器、nginx優化

Nginx代理技術全景圖 #mermaid-svg-0dRktnHYPXypO9xB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-0dRktnHYPXypO9xB .error-icon{fill:#552222;}#mermaid-svg-0dRktnHYPXypO9xB .error-text{fill:#552222;stroke…

[0CTF 2016]piapiapia

usernamepassword回顯推斷admin123Invalid user name or passwordadmin123Invalid user name or passwordadmin123Invalid user name or passworda123Invalid user name說明username是adminadmin1Invalid password這很奇怪了admin0200?admin11Invalid user name or …

人工智能系列(7)人工神經網絡中的無監督學習

一. 無監督學習簡介神經網絡的一個關鍵屬性是能夠從環境中學習,并在不斷學習的過程中持續改善性能。在無監督學習(又稱自組織學習,self-organized learning)中,網絡無需外部教師提供目標輸出,而是通過對輸入…

250810-OpenWebUI集成Dify應用

A. 最終效果 B. 環境配置 配置并啟動Open-WebUI 隨后瀏覽器訪問:http://localhost:8080 pip install open-webui open-webui serve配置并啟動Pipelines Pipelines默認占用80端口相比于Docker的啟動方式,可以在相同的命令行中,查看pipelines …

day22|學習前端ts語言

抽象類,繼承。不能創造實例class類:屬性聲明,構造器,方法,實例繼承super()override重寫父類繼承的方法聲明提升(hoisting)同一個js作用域內部,編譯階段把函數…

【網絡安全】CTF——[網鼎杯2018]Unfinish-SQL注入-二次注入

目錄 一、前言 二、環境 三、復現 3.1尋找注入點 3.2嘗試盲注 3.3正則限制 3.4腳本注入獲取flag 四、總結 一、前言 前兩天復現了一道CTF題目[網鼎杯 2018]Comment,今天繼續來學習一下SQL二次注入。 二、環境 BUUCTF在線評測 三、…

【langchain】如何給langchain提issue和提pull request?

什么是issue? 可以這么理解,bug是issue的子集。issue可以包含bug\feature\sercurity and others. https://github.com/langchain-ai/langchain/issues/32484 什么是pull request? 其實我真不是很理解,但不妨我來提pr https://github.com/langchain-ai/…

MySQL的存儲引擎:

目錄 InooDB引擎: MyISAM引擎: InooDB引擎與MyISAM存儲引擎的區別: Archive引擎: Blackhole引擎: CSV引擎: Memory引擎: Federated引擎: Merge引擎: NDB引擎&a…

Mock與Stub

一、核心概念與差異對比特性MockStub核心目的驗證對象間的交互行為提供預定義的固定響應驗證重點方法調用次數、參數、順序不關注調用過程,只關注結果行為模擬可編程的智能模擬靜態的簡單響應適用場景驗證協作關系隔離依賴、提供固定數據復雜性較高(需要…

香港服務器容器網絡插件的多節點通信性能基準測試

香港服務器容器網絡插件的多節點通信性能基準測試在云計算和容器化技術快速發展的今天,香港服務器因其優越的地理位置和網絡環境,成為眾多企業部署容器服務的首選。本文將深入探討香港服務器環境下容器網絡插件的多節點通信性能,通過詳實的基…

Vue3 學習教程,從入門到精通,Vue 3 全局 API 語法知識點及案例詳解(32)

Vue 3 全局 API 語法知識點及案例詳解 Vue 3 提供了豐富的全局 API,用于創建應用實例、注冊全局組件、指令、插件等。以下將詳細介紹 Vue 3 的主要全局 API,并結合詳細的案例代碼進行說明。每個案例代碼都包含中文注釋,幫助初學者更好地理解…

UE5多人MOBA+GAS 41、制作一個飛彈,添加準心索敵

文章目錄添加新角色(不寫了)創建一個發射技能創建一個飛彈類添加擊中特效添加準星UI獲取瞄準目標添加新角色(不寫了) 將原本的機器人藍圖改為BP_PlayerCharacter,以此創建子藍圖 創建動畫藍圖模板(具體就…

解決渲染抖動與滾動錨點定位不準確問題的方法與經驗分享

場景描述:React 虛擬列表(Virtualized List)是當我們在處理大列表時,為了提升性能而采用的一種技術。然而在實現過程中,可能會遇到渲染抖動問題以及滾動錨點定位不準確的問題。??解決方案:React虛擬列表實…

OpenAI 時隔多年再開源!GPT-OSS 120B/20B 發布,支持本地部署,消費級 GPU 即可運行

OpenAI 近期做出了一項令人矚目的戰略轉變:宣布推出兩款開放權重(Open Weight) 語言模型 GPT-OSS-120B 和 GPT-OSS-20B。這不僅是其自 GPT-2 之后首次開源模型,更關鍵的是,這兩款模型特別針對消費級硬件進行了深度優化…