首页 > 其他分享 >大数据开发规范

大数据开发规范

时间:2023-11-18 09:01:31浏览次数:41  
标签:comment ods 规范 datetime 开发 dt 数据

一、数据中台顶层架构

二、数据模型架构规范

1.模型架构层次划分:

分大三层:

  1. 操作贴源数据层(分为stg和ods)
  2. 数据仓库层 (分为dwd+dws)
  3. 应用数据层(分为dm+st)
  4. 操作数据层:Operational Data Store,操作数据层,在结构上其与源系统的增量或者全量数据基本保持一致。它相当于一个数据准备区,同时又承担着基础数据的记录以及历史变化。其主要作用是把基础数据引入到MaxCompute。
    Stg:缓冲层,抽取增量数据或者原始敏感数据存放区
    Ods:存放最终脱敏后的数据或者经增量合并后的最终数据
  5. DW:DataWare house,数据仓库中间层,又细分为DWD和DWS。它的主要作用是完成数据加工与整合、建立一致性的维度、构建可复用的面向分析和统计的明细事实表以及汇总公共粒度的指标。
    DWD:Data Warehouse Detail,明细数据层。
    DWS:Data Warehouse Summary,轻度汇总数据层。
  6. ADS:Application Data Service,应用数据层。可以细分为st、dm等层次
    DM : 数据集市层,为cube准备的表
    ST : 报表应用层表,单一数据应用表
    三、公共规范
    1. 层次调用规范
    1) Ods层数数据只能被dw层的dwd调用
    2)DWD只允许调用ods层的数据
    3)Dws 只允许调用dwd层的数据,原则上dw层的数据不允许相互调用
    4)Ads 应用层的数据可以调用DWS,DWD的数据,不允许直接访问ods的数据
    2. 除特殊维表外,所有的表都需要用分区表
    3. 字段命名规范:使用英文、下划线、小写、数字、避免使用拼音
    4. 分区字段规范:
    按天分区(yyyymmdd):dt
    小时分区(hh): ht
    月分区(yyyymm):mt
    周分区(yyyyww): wt
    天小时分区(yyyymmddhh):dht
    5. Maxcomputor数据类型规范
    Bigint
    Datetime
    String
    Decimal(38,5)
    Double
    timestamp
    Date 使用string代替
    四、数据同步规范

1.ODS表命名规范:o(ds)_业务板块_源库缩写_源表表名_{全/增量标识}

全量:df 增量:di

注:目前默认全量不加后缀df

Stg增量表:stg_数据库名_源表表名_di

2. ODS建表规范

1) 建表示例

CREATE TABLE if not exists o_upc_dim_ye_df (

caiwuyear bigint comment '财务年',

y_wkm bigint comment '财务年',

y_from_dt datetime comment '财务年',

w_from_dt datetime comment '财务年',

w_end_dt datetime comment '财务年',

y_end_dt datetime comment '财务年',

yoy_caiwuyear bigint comment '财务年',

yoy_y_wkm bigint comment '财务年',

yoy_y_from_dt datetime comment '财务年',

yoy_w_from_dt datetime comment '财务年',

yoy_w_end_dt datetime comment '财务年',

yoy_y_end_dt datetime comment '财务年'

)

Comment 'year财务表'

PARTITIONED BY (dt STRING COMMENT 'yyyymmdd');

2)ods表存储类型

数据表类型数据范围描述存储方式生命周期管理(默认)
Ods全量表 从历史到当天所有的数据 按天存放从历史到当天所有的数据 999
ODS增量表 按时间戳天存放的增量数据 按天存放流水时间戳的数据
Stg增量表 抽取增量变动的数据   30
       

3)关系型数据库与odps数据类型同步对应参考

SQL SERVER数据类型Maxcomputor数据类型
char/varchar/nchar/nvarchar String
Int/smallint/tinyint/bigint Bigint
decimal(m,n) decimal(38,5)
Decimal/float double
MYSQL数据类型Maxcomputor数据类型
char/varchar/boolean string
int/smallint/tinyint/bigint bigint
decimal(m,n) decimal(38,5)
datetime datetime

3. ODS数据同步规范

1)命名规范 :表名

2)重跑次数 : 默认设置3,间隔2分钟

3) 生成实例方式 :T+1 次日生成

4)第一优先选择源表

4. ods源数据库同步方式

1)全量同步

2)全量同步+增量合并

增量数据放在stg_开头的表中

3)纯增量数据的同步

5. 其他同步方式

数据库日志binlog同步方式

6. ods抽取数据脱敏规范

ods敏感信息采用数据脱敏方式处理

ods一律不抽取敏感数据到数据平台

脱敏规则

类型脱敏前脱敏后
姓名 刘德华 刘**
证件号 310101193829383434 3101011938****3434
手机号 13917881234 1391788****
密码 123456 ******
其他 abcdefghijkl abc******kl

五、数据建模规范

1.数仓建模流程图

2. 数据模型构建步骤

1)数仓规划(业务域板块划分)

2)数据规范定义

以业务视角进行数据统一和标准定义,确保计算的口径一致,算法一致,命名规范且统一的实现: 以维度建模作为理论基础,构建总线矩阵,划分和定义数据域、业务过程、维度、度量/院子指标、修饰类型、修饰词、时间指标、派生指标

3)指标规范定义

区分业务过程、原子指标、维度,构建总线矩阵

  1. 数据模型建设定义

a. 事实表设计

1)事务型事实表 (dwd)

2)轻度汇总事实表 (dws)

3)数仓表命名规范

dwd_业务板块_数据域_自定义_全量/增量

dws_业务板块_数据域_自定义_全量/增量

b. 维度表设计

六、数据开发规范(dataworks)

解决方案为可选,可以由多个业务过程自动组成解决方

  1. 业务流程规范
    业务流程按照业务板块、数据架构层次划分,即按照ODS、DW、ADS划分
    业务板块_层次_数据域
    例1:ods_iedu_edus
    例2:dw_iedu_class ,数据域较少情况下可以合并,如dw_iedu_class
    3. 脚本规范
    INSERT OVERWRITE TABLE dwd_iedu_agr_contract PARTITION(dt='${bizdate}')
    SELECT order_form_id AS contract_id
    ,pk_school AS stu_dept_id
    ,pk_stu AS student_id
    ,create_date AS src_cre_dtm
    ,update_date AS src_upd_dtm
    ,zd_of_type AS contract_kind
    ,start_date AS contract_start_dt
    ,end_date AS contract_end_dt
    ,all_money AS contract_amt_total
    ,must_pay_money AS contract_amt_real
    ,STATUS AS contract_sta
    ,pk_result_type AS contract_type
    ,pk_organ_school_1 AS contract_dept_id
    ,new_all_money_time AS feeall_dt
    FROM o_iedu_order_form
    WHERE dt = '${bizdate}';
    4. 时间戳字段规范
    dw建表需要加时间戳upd_dtm
    5.临时表规范
    临时表用完后,删除7天以前的临时表
    6.严禁使用视图
    7.表和字段必须有注释
    8.数据量较大的表,需要设置生命周期
    9.脚本需要考虑可以多次跑的
    七、调度规范
  • 调度时间设置:根据各业务数据库时间戳相应的结束时间统一设置
  • 业务流程与业务流程之间的task可以相互依赖
  • 除ods层及第一层外,必须要有依赖,禁止估算
  • 出错重跑和间隔设置
    Ods: 3次+ 2分钟间隔
    DW/ADS : 2次+ 2分钟
    八、命名规范

1.业务流程命名规范

    1. 方法 1)数据模型层命名:业务名_层次名 如upc_dw层次名枚举:ods、dw、ads
    2. 方法 2)ads_自定义 ads: 应用层 如dm_salar全部小写

2.dws表命名规范

标签:comment,ods,规范,datetime,开发,dt,数据
From: https://www.cnblogs.com/qqflying/p/17840045.html

相关文章

  • python:第十九章:数据类型之None
    一,什么是None?None表示空值,其类型为NoneType,内存中值为None的对象是同一个实例123456789#None的类型print("None的类型:",type(None)) #输出<class'NoneType'> #值为None的对象是同一个实例,#由于内存None只有一个,所以aisb的结果为True......
  • python:第二十章:数据类型转换之bool
    一,如何得到对象的布尔值?Python中,所有的数据都是对象,如整数、浮点数、字符串、列表、字典等。每个对象都有一个布尔值,用于表示对象的真假内置函数bool()能用来获取对象的布尔值。它把对象转换为布尔值,返回True或False,表示对象为真或假看例子:非0数字的布尔值为True,0的布尔值......
  • 提取另一列没有出现过的数据,这个技巧一定要掌握!
    1职场实例小伙伴们大家好,今天我们来讲解一个Excel在职场中的经典案例:如何通过函数公式法,判断某列在另外一列中没有出现过的数据,并显示在一个单元格内?下面我们用一个简单的例子说明一下原理。如下图所示:A列和C列为两列姓名数据,两列姓名数据可能存在交叉相同的姓名,现在我们想要统计一......
  • 【misc】[CISCN 2021初赛]robot --流量包数据提取,坐标画图
    打开附件的流量包可以发现有很多的tcp协议数据,追踪tcp协议数据看看可以发现tcp数据流中有很多类似坐标的东西,先把这些数据另存为txt保存,如何用正则表达式提取这些数据,提取脚本如下:importrewithopen("data.txt","r",encoding="utf-8")asf:    data=f.read......
  • 数据库的备份与还原
    数据库的备份与还原一、使用mysqldump命令进行备份1、备份所有数据库mysqldump-uroot-p123456-a>filename.sql2、备份部分数据库mysqldump-uroot-p123456--databasesdbname1dbname2>filename.sql3、备份某个数据库中的某些表mysqldump-uroot-p123456dbname1......
  • opengl开发:win11已阻止应用程序访问图形硬件如何处理?
     开发中出现这种问题: 请到设置里面搜索:图形设置,浏览,加入exe,选择选项然后设置。不要选择让windows决定即可。 ......
  • 【文档翻译】每个开发者都必须了解的关于Unicode和字符集的基本知识
    本文档译自joelonsoftware.com的文章"TheAbsoluteMinimumEverySoftwareDeveloperAbsolutely,PositivelyMustKnowAboutUnicodeandCharacterSets(NoExcuses!)",作者joel,原文参见此处概述-Overview你是否在某一个平凡的日子,思考过那个神秘的Content-Type标......
  • FPGA和ZYNQ 开发平台
    FPGA,全称为Field-ProgrammableGateArray,即现场可编程门阵列,是一种FPGA,全称为Field-ProgrammableGateArray,即现场可编程门阵列,是一种数字集成电路。它是一种半定制电路,既能解决定制电路的不足,又克服了通用器件的缺点。FPGA的基本结构主要包括可编程输入/输出单元(I/O)、可编程逻......
  • 抖音快手小红书贴吧cookie上号登录工具,可对接私信评论!谷歌浏览器内核开发
    这个源码是用精易VIP模块开发的,优点:由C++开发,专为易语言深度定制,自动化测试框架,纯C++开发,为易语言进行针对性优化,并且结合易语言人群的编程习惯,采用更人性化的命名规范,执行效率更高,使得操作更简单,稳定性更强。所以它是直接调用谷歌谷歌浏览器内核的,只要你的账号支持在谷歌浏览器......
  • linux上安装数据库
    linux上安装数据库导航目录linux上安装数据库导航1、检查是否已经安装有数据库2、查看是否有安装mariadb,该软件与MySQL数据库有冲突,需要手动卸载3、把从官网下载的数据库压缩包上传到虚拟机的/soft/mysql目录上4、将压缩包解压5、安装插件6、安装rpm包7、启动MySQL服务,连接My......