获取原文

简短介绍


大家好,了解了Hue、hive、sqoop、kylin、shell等等一系列工具知识之后,是不是对于大数据的开发有了一定的认知了呢?那么今天分享下常规数仓开发规范。都是比较通用的,无论在哪个公司都会有类似的一套规范。

01-数仓开发常规-规范

  • 1、规范目的

一般数仓开发规范,都是为了能够很好的规范集群中数据库的内容而制定的。在数仓中往往存在大量的表和字段。为了使数据开发者通过表名一眼就能识别出表是做什么用的,并且里面存放的是什么类型的数据,从而制定的规范。(^_^ 是不是很神奇呢?你也可以的)

  • 2、数据分层设计规范

2.1、大数据中数据分层,通常是集群中创建单独的数据库来实现的。我们数仓通常会分为四层:原始数据层、清洗层、模型层、应用层。当然还有一些带有开发测试属性的层,例如:开发层、公共层、临时层。

数据库命名说明(仅供参考和学习)

层次描述

层次简写

数据库名

举例说明

基础数据层

STG

STG

统一选用parquet文件格式做存储

清洗整合层

ODS

ODS

统一选用parquet文件格式做存储 对数据进行整合、码表进行规范、空值进行处理

数据仓库层

DW

DW

统一选用parquet文件格式做存储 最好分区(默认15天)

数据应用层

DM

DM

统一选用parquet文件格式做存储 最好分区(默认15天)

数据公共层

PUB

PUB

统一选用parquet文件格式做存储 公共数据库(用存储维度相关信息便于权限管理)

清洗临时层

TMP

TMP

统一选用parquet文件格式做存储 调度中间临时库,用做作业临时表存储

开发测试层

DEV

DEV

统一选用parquet文件格式做存储 开发测试临时库

注意:

STG  创建表默认 业务类型_来源库名_表名_(增量:inc) 字段默认为string 类型

ODS  创建表默认ODS_模型表名_(增量:inc ) 字段严格按照模型字段类型

DW   创建表默认DW_主题_业务内容

DM   创建表默认DM_主题_业务内容

TMP  创建表默认目标表_(编号00-99)

RPT  创建表默认RPT_部门简称(公有-pub)_业务内容_(日期表-ds/ws/ms/qs/ys)

2.2、数据流向

通常STG原始层保持与业务源一样的结构和数据,之后通过sql将数据做清洗整合存入ODS层,再将ODS层数据相互关联提炼成模型放入DW层,最终报表和数据支撑通过查询DW数据可落入DM应用层做结果展示。简单理解数据流向为:stg-> ods -> dw -> dm

  • 3、数据对象设计规范

3.1、表命名规范

l STG层(原始层 分全量分区表及全量不分区表)

Ø全量不分区表{业务简称}_{库名简称}_{表名}。

Ø全量分区表 {业务简称}_{库名简称}_{表名}_pt。

l ODS层(中间表层 每个分区都是全量数据)

Ø表名(ods)_业务整合表_(inc增量)_(分区表ds)。

l PUB(数据公共层)

Ø表名(维度表dim)_业务内容表_(历史表His)。

l DW层(模型层 每个分区都是全量数据)

Ø表名按(事实_fact、维度_dim)_主题_业务数据_统计内容_(增量 inc)(分区表ds)。

Ø按天周月份季度年度统计的表后缀 天_ds周_ws 月份_ms 季度_qs 年度_ys

l DM层(应用层)

Ø 表名按_应用(报表rpt 标签系统 lbl)_业务数据_统计内容_(增量 inc)(分区表ds)。

Ø 按天周月份季度年度统计的表后缀 天_ds周_ws 月份_ms 季度_qs 年度_ys

3.2、字段命名规范

l 由大小写字母,下划线,数字组成,以字母开头,不包含中文和特殊字符

l 使用富有意义的英文词汇,参照常用字段关键词说明,过长单词使用缩写

l 统计字段,后缀

金额 _amt

次数 _cnt

人数 _num

l 日期字段,后缀

日期(不带时分秒) _dt

日期(带时分秒)   _time

分区日期默认dt

l ods\dw层日期  默认string类型(yyyyMMdd)

l dm层日期  默认日期类型(yyyy-MM-dd)

3.3、字段类型规范

l 字符型使用STRING类型

l 非整型数值型使用DECIMAL类型,使用DECIMAL型时必须指定长度和精度

l 最大值10位及以上的整数使用BIGINT

l 最大值在3-9位的整数使用INT

l 最小粒度在天的日期型使用DATE类型

l 最小粒度在小时及以下的日期型使用TIMESTAMP类型

3.4、敏感字段脱敏规范

数仓中带有如下字段的表都需要进行脱敏处理。敏感字段包含:

l 姓名

l 手机号

l 身份证号

l 银行卡号

l 详细地址

3.5、空值处理规范(在进入清洗整合层时需要标准化)

缺省值定义说明(仅供参考和学习)

字段类型

空值替换值

STRING

‘’

DECIMAL

0

FLOAT

0

DOUBLE

0

INT

0

BIGINT

0

DATE

1900-01-01

TIMESTAMP

1900-01-01 00:00:00.000

注意:

★如果缺少定义的字段类型可以添加

3.6、通用字段名称定义

字段关键词说明(仅供参考和学习)

关键词描述

关键词

说明

id

id

 

名称

name

 

描述、详情

desc

 

会员

member

 

产品

product

车、房、保险、信用卡

订单流水号

serialid

固定组合

资源

resource

 

平台

plat

 

设备

device

 

会话

session

 

用户

user

 

城市

city

 

province

 

区域

arearegion

如华南区域、华东区域

county

town

 

continent

 

国家

country

 

国际

inter

 

日期

createdate

 

时间

createtime

 

创建

create

 

更新

update

 

消费

consume

 

出行

travel

 

回团

return

 

订单

order

 

乘客

passenger

 

保险

insurance

 

支付

pay

 

支付方式

payment

 

ticket

 

金额

amount

 

价格

price

 

营收

revenue

如marketrevenue

时长

market

 

总营收

totaltakeoff

固定组合

GMV

GMV

 

标识

flag

 

状态

status

 

测试

test

 

是否

is

0为否,1为是

有效

valid

 

开始

start

 

结束

end

 

经度

lon

 

纬度

lat

 

体系、系统

sys

 

注册

reg

 

等级

level

 

类型

type

 

点评

comment

 

红包

coupon

 

投诉

complain

 

邮箱

email

 

手机号

mobile

 

性别

sex

 

身份证号

identityno

 

出生日期

birthday

 

联系人

linkman

 

微信

weixin

 

页面

page

 

事件

event

 

过滤

filter

 

财务

finance

 

发票号、单据号

billno

 

文件

file

 

注意:

★如果缺少定义的关键词可以添加

02-小结

通过对数仓建设中,常规数据开发规范的了解。是不是觉得很清晰易懂了呢?在我们实际工作中如果严格遵守开发规范。就算数仓在庞大也是很容易维护。所以各位小伙伴可以多多了解数仓开发规范方面的知识。这些都是很重要的哦^_^。

小白篇(十七):大数据数仓常规-规范相关推荐

  1. 【大数据数仓项目集群配置 一】

    本文用于记录我的第一次内网大数据集群配置过程. 本篇主要实现基础配置. 配置使用的软件版本和脚本参考自尚硅谷,链接如下: 链接: https://www.bilibili.com/video/BV1r ...

  2. Python+大数据-数仓实战之滴滴出行(二)

    Python+大数据-数仓实战之滴滴出行(二) 1. 数据转移 #验证sqoop是否工作 /export/server/sqoop-1.4.7/bin/sqoop list-databases \ - ...

  3. 大数据数仓建模(3)

    大数据数仓建模(3) 2.2.6 人员配置参考 1.旁敲侧击的问你到底做过没有 2.你们大概规模,数据量 1整体架构 属于研发部/技术部/数据部/基础平台部,我们属于大数据组,其他还有后端项目组,前端 ...

  4. 大数据/数仓面试灵魂30问

    1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 2.如何建设数据中台?可简单说下理解与思路 3.数据仓库.数据中台.数据湖的理解 4.传统数仓的程度(建模工具 ...

  5. 大数据/数仓面试灵魂30问(转)

    1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 2.如何建设数据中台?可简单说下理解与思路 3.数据仓库.数据中台.数据湖的理解 4.传统数仓的程度(建模工具 ...

  6. Python + 大数据 - 数仓实战之智能电商分析平台

    Python + 大数据 - 数仓实战之智能电商分析平台 1. 项目架构 2. 数据仓库维度模型设计-事实表 事实表的特征:表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一 ...

  7. Python+大数据-数仓实战之滴滴出行(一)

    Python+大数据-数仓实战之滴滴出行(一) 1. 项目架构图 1.1 数据流程处理 1.2 数仓分层 1.3 创建数据库 在Hive中创建数据库-- 创建ods库 create database ...

  8. 大数据数仓高级面试题整理

    大家好,给大家整理了一下大数据数仓高级面试题,希望大侠们能够喜欢. 数仓高内聚低耦合是怎么做的 定义 高内聚:强调模块内部的相对独立性,要求模块内部的元素尽可能的完成一个功能,不混杂其他功能,从而使模 ...

  9. 数据查询和业务流分开_传统数仓和大数据数仓的区别是什么?

    概念与容器 为什么先说这个,其实很简单:因为绝大多数人都把这两个概念混为一谈.然后就会出现各种各样的问题:oracle不是数据库么,怎么又是数据仓库?Hive不是数据仓库么?怎么又是数据库? 数据仓库 ...

最新文章

  1. 学点Webpack吧
  2. C#中DataGrid控件的基本使用
  3. 刚发现博客园又遇到了问题
  4. BZOJ 1412 狼和羊的故事
  5. mysql数据库项目例子_很实用的MySql数据库语句(项目中的例子)
  6. PHP error:ERROR: No pool defined. at least one pool section must be specified in config file
  7. STM32很难?这些工具可以帮大忙!
  8. 理财平台频繁暴雷,羊毛党该要本金还是撸利息?
  9. 开源项目管理软件禅道使用帮助下载
  10. php字符串怎么传到html_php字符串函数(四):html与字符串之间的转换
  11. [转载] Java获取泛型T的类型 T.class
  12. Kalman Filter : 理解卡尔曼滤波的三重境界
  13. Mysql 版本号、存储引擎、索引查询
  14. arcgis中dem坐标定义_ArcGIS中的地理坐标系转换方法参数(二) | 学步园
  15. 给pmbus添加mfr_id, mfr_version, mfr_model节点显示
  16. Excel如何在表格内打勾
  17. 光量子计算机技术突破,真正突破光刻机封锁的技术诞生了!可编程光量子计算芯片是什么?...
  18. 谈谈自己关于阅读源码的一点鄙见
  19. WIFI基础入门--802.11--成帧细节(管理帧)--5
  20. 学校计算机工作室制度,邵鹏飞计算机工作室2019-2020学年工作计划

热门文章

  1. 路径规划与避障算法(六)---DWA算法流程之二---自行车模型与路径采样空间
  2. 计算机内部的线路能承受多高的温度,揭秘:CPU到了120°会不会坏?它到底能承受多高的温度...
  3. WEB打印控件---无限制完全免费版
  4. [创业-17]:财务报表之综述
  5. OCR实时翻译软件 Bob 0.5.0.beta3 Mac中文版
  6. 新手搭建网页web项目:包括服务器搭建、后台、前端、交互
  7. kernel32 ntdll
  8. Keil MDK打开代码折叠功能(代码折叠按钮消失的解决办法)
  9. Anaconda 使用简介
  10. 抖音获取在线主播房间号和抖音号,再获取抖音主播在线观看用户信息