|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一 数据开发规范
' d, d- B% q9 m! g0 o/ G! n- q. \命名标准
B3 W0 [" P3 @2 g3 }& _这个命名包含了表命名,项目命名,作业命名等,拿表名来说,一般都是按系统来为首,业务做次之,接着是表名,最后还加上一些备注信息,demo是 系统_业务_表名_备注,比如来自外部互联网的一条用于监控的每日更新的日志表HLW_JK_LOG_RT,不过具体命名以实际业务来定,唯一需要认真的就是无论是表,项目,还是作业资源这一类的命名都要统一一致,方便后续开发以及管理
+ p+ |) E; a# _) I( T( S8 O5 l; K8 R( U% ?# E( b, r+ t$ Z4 J
脚本规范
( Y+ m2 k1 Y4 K( f! q•脚本命名由阿拉伯数字(0~9)、字母(a~z、A~Z)、下划线(_)组成,并以字母开头,其中字母应全部为小写
, G, j% X& ^7 x. ~•{分区}_{功能简述},如:贴源区数据同步的shell脚本,ty_sjtb.sh;& r! f5 K9 e# f9 G
•需要有规范的脚本描述(头部)1 y5 W4 S* l* S% F& o
•需要有整齐的缩进格式
6 S7 C6 N7 n; a) F" i•脚本里面有详细的注释: Y9 ~) L- N+ X/ F- J
举例说明4 c& ^$ ~: J( x) K! `' Z2 G
# B6 J1 Y, W Y* h6 h/ g- L
#!/bin/bash
$ z" @% m6 ~1 p################################################################################
! G3 n4 D# r C9 Q) P# SCRIPT_NAME : xxxx_commit_combine.sh
7 g7 H: V; H' K7 p( b" x#
# }5 K. M& `/ M9 K3 v# CREATE_TIME : 2018/04/10. b; n) y6 D1 P
# AUTHOR : Mochou_liqb
4 S$ I7 ~( h$ w3 g" y* W#
U, ~4 O9 c! G" n9 R" R' F# DESCRIBETION : get create_table_sql& S. a+ `; C/ ]! D+ X* s4 L
# PARAMETER : 1 baseConf, such as XX4 i3 `$ O7 t3 P, x1 A+ E6 D; j6 M
# EXAMPLE : ./xxxx_commit_combine.sh XX TABLE_NAME 20181212
/ v+ p, h; A. G6 k5 Q# : |9 r. u% U1 [1 A; ^0 w( c+ w
# UPDATE_RECORD : change comments from Chinese to English and kill some bugs& S- s; {% }' @; F0 @. l0 q
#, q- Z) w" `% n+ ]
# DATE OPERATION CZR DESCRIBETION : g, O7 S8 k# |& [( h3 N( D
# ________ _____________ ________ __________________________________
1 |1 H# p& I% z! ^2 q6 n+ ?#
6 Z& i; ]4 L3 U. R. s0 `+ z( C% V. ] h# 2018/12/11 UPDATE Mochou_liqb 1 I2 z) T2 g% e4 _ d% W% {+ F9 u
################################################################################6 ?9 O$ A6 p4 `: I
: o* K/ h9 x8 ?7 V. E$ U7 G# |! o" N& W0 ?3 h
目录规范3 Q; Y7 B# b; z d
目录是广泛定义下的目录,包含作业,脚本,资源等,目录设置的要求需要按层级按分类逐级增加,理应有正文目录和备份目录,目录命名应简洁清晰统一,便于管理规范' X: r: A5 x3 x. F) V( M1 h- O$ f# V
* Q p4 T3 j9 v; U
数据开发标准规范, P- P9 D( v9 y$ ?# r9 `) v' Y/ I
代码对照映射:根据业务整理规范得出,如果是该系统独有的代码表,则特殊处理进行标准7 }" ]& K( d/ o1 v
非空字段处理:设置默认值.对于日期、字符类型数据项,暂不做处理,对于数值型字段设置为04 o) m; K7 T5 m" r/ t7 ]/ s3 y
代码引用字段:对于不能为空的代码字段实际值为空的代码引用字段,默认填写“;对于标准化映射,根据代码对照映射关系, 查找到当前字段对应的标准代码表,根据原码值和标准码值的对应关系,用标准码值替换原码值 F/ c9 L" t8 B; @$ b
日期时间字段:对于字段只需具体到天,其他统一各系统日期/时间字段的格式,在源库找出所有时间字段DATE,TIMESTAMP,/ d, i! n! l6 [: e0 Q, @
式为'YAN-MM-DDHH:MISS,对于不符合格式的字段,使用日期时间函数转换
( |, c2 f% R H2 h3 P* \数值数目字段:统一各系统数字格式,对于金額类型的数据,统一格式为保两位小数;对于利率类统一用小数表示 D% h& |( o+ U! F Y
4 r v# c) ?: B; S0 {7 x: _
二 平台标准规范
0 ^* T: i; v w' t8 l2 @4 n& _: s平台规范主要包含2 \2 F' f. L* {
' l; m2 b E- ]' U! N8 z% ]: e
数据类型规范:主要是平台与数据库之间的数据类型映射规范,这个按照每个数据库系统实际规范来规范6 ^. }8 S& U5 |
实体命名规范:项目,表,文件夹,资源等,参考前面介绍$ Q" \' I, @+ U# d3 J& B4 g/ s
作业调度规范:规范和控制作业之间前后依赖关系,从而保证数据按照设计流程进行准确加工;通过虚拟节点进行分级分类,方便作业控制与管理;虚拟节点命名规则:xnjd_etl_{虚拟节点类型};物理节点命名规则:参考数据层命名规范中的作业命名规范;( B/ a' j& G7 L2 i3 r9 q! `# b2 g
权限管理规范:权限严格控制,开发,生产项目权限保持界限
! \ T" T$ x7 Y三 流计算规范
3 N- i* _) y. f+ `& w; c流计算由于其数据应用的特殊性,是不走大数据平台的而是有自己的一套采集,规范,开发,应用的流程,这一套流程分别对应不同的工具,平台和数据库,由于各大云平台和云生态,其架构不完全统一,故这方面的规范可实际参考前两者,逐一标准
) J. j6 ^& Q& i y6 V& L5 g" Z9 m1 `
四 运维规范
2 L, T K/ D/ b实施运维
7 p, {" W! ?7 F# m: c! d+ l4 U
& C; @$ i/ ]4 n' U建立运维机制,每天定时检测平台流程,包括大数据平台,数据库,流计算等并输出运维文档每日提交# d7 |, v8 O" r
新增数据源依据需求在业务低峰期添加,尽量选择新增作业,做到不影响其他作业运行1 \5 |, T: O, W; {
流程出现问题及时实施处理,总结汇报,评估代价,并告知下游
- s8 c6 p. a8 K( X( q6 b6 Y' A& ?. y
a0 s' c2 ~( C9 t6 Q* v |
|