|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一 数据开发规范$ \; k+ h$ N/ z7 F
命名标准. Y H# ~, w: G7 M9 X
这个命名包含了表命名,项目命名,作业命名等,拿表名来说,一般都是按系统来为首,业务做次之,接着是表名,最后还加上一些备注信息,demo是 系统_业务_表名_备注,比如来自外部互联网的一条用于监控的每日更新的日志表HLW_JK_LOG_RT,不过具体命名以实际业务来定,唯一需要认真的就是无论是表,项目,还是作业资源这一类的命名都要统一一致,方便后续开发以及管理7 c* b" i4 ^1 c! B5 z
+ I" V& C6 H8 c% I脚本规范
1 N f7 y% t8 X0 e5 e+ n, Y" |) g/ f0 k•脚本命名由阿拉伯数字(0~9)、字母(a~z、A~Z)、下划线(_)组成,并以字母开头,其中字母应全部为小写
1 P% u2 q" m- F9 T•{分区}_{功能简述},如:贴源区数据同步的shell脚本,ty_sjtb.sh;
, h+ n! t9 D" |5 N. S; F•需要有规范的脚本描述(头部)
: O' x7 a2 }# z/ t! ~7 t•需要有整齐的缩进格式
5 g4 u* g! G5 n) F8 T•脚本里面有详细的注释
/ u: ^: V$ t! z2 j6 D$ v' r) c, R举例说明
0 n* k: J$ j5 ^4 {4 I$ \
! q% w% i6 a4 P' l#!/bin/bash
& O" z+ O6 Y4 \7 K- L$ }################################################################################7 ^5 y% p& z( }1 [: L# ?* f
# SCRIPT_NAME : xxxx_commit_combine.sh
2 T. t9 c! s! u3 c9 a#
" ~8 [. `5 P/ T8 f5 V5 R+ v- R' C# CREATE_TIME : 2018/04/101 t, x, B2 T( v/ h3 {1 k* u
# AUTHOR : Mochou_liqb0 ^( f6 @( B& T/ l0 n. L, G! Q
#8 G6 G3 {& j+ j. p9 s5 X
# DESCRIBETION : get create_table_sql& A# k9 H1 s$ }$ w5 u- o; K# `2 p
# PARAMETER : 1 baseConf, such as XX
8 p$ Z) g; |9 R, X# G7 J# EXAMPLE : ./xxxx_commit_combine.sh XX TABLE_NAME 20181212% C& U. V' ] k6 a, _1 b7 ^& n
# 9 P" N" z7 {% o
# UPDATE_RECORD : change comments from Chinese to English and kill some bugs0 H8 E" \8 u& `& y, x( v; N k
#9 L; k& S* V6 g1 j
# DATE OPERATION CZR DESCRIBETION
4 J& N+ k; @% X+ `( N( B7 j' f0 ~# ________ _____________ ________ __________________________________+ k0 G0 o3 j+ ^& Z5 F0 z# a" M6 ^: m
#
' s+ O- ?" G- h% L% l! ^# 2018/12/11 UPDATE Mochou_liqb 3 b) y' g3 a- [/ Y1 |! @. O9 T
################################################################################
5 }: a# q2 S. a7 |( [
3 ?: y |( G; H6 q& H, ]' @8 O, n7 t% \$ ~/ [2 @, ~ p* Q& t$ t
目录规范; ^' G0 Z" z7 H) f" N( `. K, R
目录是广泛定义下的目录,包含作业,脚本,资源等,目录设置的要求需要按层级按分类逐级增加,理应有正文目录和备份目录,目录命名应简洁清晰统一,便于管理规范
. ^. V$ t0 N" P; T4 P# f5 P# ^2 C% C+ s2 ?
数据开发标准规范( W5 Z B$ u$ a
代码对照映射:根据业务整理规范得出,如果是该系统独有的代码表,则特殊处理进行标准
' r q6 r1 c1 ^2 H5 b4 J9 a! d. i, V非空字段处理:设置默认值.对于日期、字符类型数据项,暂不做处理,对于数值型字段设置为0
; J: t: p: Y; m4 y代码引用字段:对于不能为空的代码字段实际值为空的代码引用字段,默认填写“;对于标准化映射,根据代码对照映射关系, 查找到当前字段对应的标准代码表,根据原码值和标准码值的对应关系,用标准码值替换原码值
/ `! G" n) F8 ^* K日期时间字段:对于字段只需具体到天,其他统一各系统日期/时间字段的格式,在源库找出所有时间字段DATE,TIMESTAMP,$ o: \ q) d9 V6 d' D/ U u8 U
式为'YAN-MM-DDHH:MISS,对于不符合格式的字段,使用日期时间函数转换8 p: Z4 U( Q" h+ u& `0 J I8 V
数值数目字段:统一各系统数字格式,对于金額类型的数据,统一格式为保两位小数;对于利率类统一用小数表示
9 c5 F1 }$ Z. X% i% \: u" {+ {/ H e# h3 `
二 平台标准规范 E$ o6 A$ @" z/ c* ~: ?
平台规范主要包含
0 B" T& a* J2 i, j! X1 t5 s; t: z4 ?' U5 `- H' e: A
数据类型规范:主要是平台与数据库之间的数据类型映射规范,这个按照每个数据库系统实际规范来规范' S7 e& Q4 {: P D
实体命名规范:项目,表,文件夹,资源等,参考前面介绍
6 f- ~* U% u! |; {: x; @1 W作业调度规范:规范和控制作业之间前后依赖关系,从而保证数据按照设计流程进行准确加工;通过虚拟节点进行分级分类,方便作业控制与管理;虚拟节点命名规则:xnjd_etl_{虚拟节点类型};物理节点命名规则:参考数据层命名规范中的作业命名规范;/ Z9 o- {5 i Z
权限管理规范:权限严格控制,开发,生产项目权限保持界限
3 n4 S6 B" M* N4 `三 流计算规范
: v& K' r L g$ k7 m9 l流计算由于其数据应用的特殊性,是不走大数据平台的而是有自己的一套采集,规范,开发,应用的流程,这一套流程分别对应不同的工具,平台和数据库,由于各大云平台和云生态,其架构不完全统一,故这方面的规范可实际参考前两者,逐一标准$ O R d: O' E! r+ E H8 C) l
( L- F* L! e& E$ N
四 运维规范3 [" C8 }# l, b E, r5 A Z
实施运维
( r8 N8 W+ w5 ]. `( A5 v2 Z$ `$ B- T9 z, j& Q8 N
建立运维机制,每天定时检测平台流程,包括大数据平台,数据库,流计算等并输出运维文档每日提交! J. m8 B$ C5 Y! S
新增数据源依据需求在业务低峰期添加,尽量选择新增作业,做到不影响其他作业运行6 N" C1 N% ]. G0 @ g4 ~: i
流程出现问题及时实施处理,总结汇报,评估代价,并告知下游
. T e' J0 J' q: Z! _4 g
' @, B; a/ N% {) I7 ]. e- }
* B* k& v: B) p0 i |
|