《数仓建设规范模板.docx》由会员分享,可在线阅读,更多相关《数仓建设规范模板.docx(17页珍藏版)》请在第壹文秘上搜索。
1、XX数据仓库建设规范版本号V1.O修订历史版本号作者内容提要核准人发布日期1.0初稿1飒本文档制定了XX数据仓库中数据库对象的命名规范(用户、表、视图、存储过程函数、表分区、主键索引、序列等)、数据库编程规范,JAVA编程规范为系统设计和开发工作提供统一的命名标准,提高系统的规整性和代码的可读性,减轻维护工作量,提高工作效率。2数据库对象命名规范2.1 层次划分序号4US次用途1s存放来自各个系统的原始效据;2DW根据业务分析需求,对主题域内的数据进行轻度汇总;3DM建立跨域的业务主Sfi模型,比如中高端用户,拍照用户等;不能进行同层引用;4DIM统一服务于数据中心的参数表;5APP应用层,用
2、于生成报表6XXXX数据层级按照自己数据仓库规划的命名即可2.2 表、视图、存储过程、函数命名规范对象类型.模型层次一主题一对象描述匚汇总类型匚存储类型说明:尖括号中的内容为必须项,适用于所有用户层对象方括号中的内容为可选项,会因用户层及对象的不同而不同命名约束:数据库对象命名可能受最大长度限制.因此在实际命名中如果按照规范约定的命名方式存在超长的现象,需要开发人员灵活控制。2.2.1对象类型对象类型X一模型层次X一主题域X一对象描述1.汇总类型_存储类型适用范围:所有用户层对象。TBVWTAB1.EVIEW表视图2.2.2模型层次对象类型_模型层次*_主题域X一对象描述匚汇总类型_存储类型说
3、明:对象属性一般为对象归属用户的简写。适用范围:所有用户层对象。可以参照自己的对象属性命名规范,对此不要求统一。模型层次蝴ODS获取层,存放从各个源系统接收的原始数据;DW根据业务分析需求,对数据进行汇总;DM建立跨域的业务主题模型;DIM维表APP报表层,根据DM模型数据生成报表.2.2.3主题域对象类型一模型层次X_主题域_对象描述_汇总类型匚存储类型序号或描述说明:主题域是对数据进行大类划分,不同用户下的分类有所不同。适用所有业务层;每个新增的业务主题均需到该规范备案登记。命名前称描述客户域CustomerXX泛客户2. 2.4对象描述对象类型_模型层次X_主题域XJ时象描述_汇总类型_
4、存储类型适用范围:所有用户层对象;对象描述要求简洁准确,尽可能的直观表达对象的含义,通常包含业务+功能;如果是通用命名规则:对象类型一模型层次x_主题域一对象描述_汇总类型1.存储类型,这里的对象描述是多业务的合成体,这时不加业务。汇总类型对象类型一模型层次_主题域一对象描述_汇总类型1.存储类型适用范围:除字典表、日志表之外的对象。制汇总期日DAY月MON年YEAR2.2.5存储类型对象类型x_模型层次X一主题域一对象描述1.汇总类型1.存储适用范围:所有用户层除日志、字典表、维表之外的对象。对象指逑目标程序无临时表TMP程序中格时使用的中间表,用于存放程序运行中使用的临时数据,程序运行结束
5、后表由程序自行清空,只保留结构。配置表CFG2.2.5.1 日衰日表以统计周期字段做日分区。数据保留周期为业务需要的周期,月底最后一天的数据不保存,如有需要则沉淀到月表中。2.2.5.2 月盘月表以统计周期字段做月分区。除该字段外,其余字段与日表必须相同。数据保留周期为业务需要的周期。所有的月报表月KP1.数据必须从月表出,禁止从日表出。2.2.5.3 周衰周表数据保留周期为业务需要的周期。2.3 其他对象命名规范对象命名规则说明表分区根据实际情况自行确定建议等主键PKQ表名索引IDXJ表名2.4 常用字段命名规范字段名字般说明常用字段1常用蝴1备注1字段命名需做到见名知其意,避免用中文拼音,
6、或者拼音+英语的方式。可以参考企业现有业务数据库的数据字典命名。2.5 常用单位规免约定数据仓库中字段的默认单位,比如车速默认单位是KMh.2. 6数据库对叙命名注意事项命名尽量采用富有意义的英文词汇,不准采用汉语拼音。XX2.7数据仓库建表注意事项表名,列名等需要添加注释,否则不予上线。XXO3主机目录及文件命名规范3.1 用户命名规范主机用户名命名规范:主机用户名用途1hadoop应用程序账号hadoop集群管理用户2ftp账号3.2 目录规划根目录/二级目录/三级目录/业务域/自定义目录规划不做强制性的要求,但是要做到层次清晰、命名规范,见名知意。 根目录取值为:根据物理存储挂载情况而定
7、; 二级目录取值为:主机如果没有文件系统挂载点,则二级目录为用户家目录,否则取值用户名; 三级目录取值为:用户自行定义,如果存储在用户家目录下则需要三级目录; 业务域取值为:抽取的文件按业务类型进行分类存储。业务g说明业务1说明1业务2说明2 自定义取值为:可选项,如果文件存储有其它要求,可根据实际情况灵活调整,如需要分省存放等。3. 3文件命名规范文件类型_主题域_数据周期_接口文件序号dat 主题域主题域取值情况咱定为各项目名称: 数据周期取值为:周期日数据8位长度.YYYYMMDD,月数据6位长度YYYYMM; 接口文件序号取值为:接口文件序号长度为3,默认从OOo开始;3.4文件格式规
8、范文件分隔符文件字段尽量不采用定长分隔,采用“I”等特殊字符作为分隔符,另外在抽取文件时需要确定字段内容中不会出现分隔符字符,以免错列;文件编码文件编码采用UTF-8。4数据保存周期规范鲍JB次保。周期(H1.VE)备注日ODS3665数据库编程规范5.1 参数和变命名规范5.1.1 对象变量对象变量命名规则如下:命名规则:对短类型_变量描述*5.1.2弁数和对象命名注意事项 所有名称采用英文单数名词或动词,避免出现复数. 固定长度的字符串类型采用ChSr.长度不固定的字符串采用VarChar,一定要避免长度不固定的情况下采用Char. 如无特殊需求,避免使用大字段(b1.ob.c1.ob.1
9、.ong.text.ImaRC等 命名使用英文单词,避免使用拼音,特别不应该使用拼音筒写。命名不允许使用中文或者特殊字符. 命名中若使用特殊约定或缩写,则必须要注稗说明. 使用有意义、易于记忆、描述性强、简短及唯一的英文单词,自己特有的命名风格,要自始自终保持一至,不可来回变化。 对于变量命名,禁止取单个字符(如i、j-),建议除了要有具体含义外,还能表明变量类型等。除非必要,不允许使用数字或较奇怪的字符来定义标识符。5. 2书写规范6. 2.1代码大小写规范所有数据代码统一使用小写字母书写,以方便不同数据库之间的移植,同时也避免程疔调用问题。售数和局部变量,全局变量用大写。5. 2.2代码缩
10、进规范 程序块采用缩进风格书写,保证代翦清晰易读,风格一致,缩进格数统一为4格, 必须使用空格.禁止使用TA8建。 同一条语句占用多于一行时,每行的第一个关键字应当右对齐。 对于InSertVa1.UeS和UPdate语句,一行写一个字段,这段后面紧跟注释(注释语句左对齐),va1.ues和insert左对齐,左括号和右括号与insert*va1.ues左对齐。 insert.Se1.eCt语句中,应使每行的字段厥序对应,以每行不超过80字符为准,以增强可读性,5.2.3空格及换行关建字之后要留空格.创建表、存储过程函数时,表名,存储过程名和函数名之后不要留空格. 不允许把多个语句写在一行中,
11、即一行只写一条语句, 相对独立的程序块之间,变量说明之后必须加空行. 超过80字符的语句要分行书写,长表达式应在低优先级操作符处换行,掾作符或关键字放在新行之首,划分出的新行应适当地缩进,使排版整齐,语句可读。 if后的条件要用括号括起来,括号内每行最多两个条件。 不同类型的掾作符混合使用时,建议使用括号进行隔离,以使代码清晰. 减少控制语句的检查次数,如在e1.se(ife1.se)控制语句中,对符合条件频率制的尽量放到前面. 尽量避免使用嵌套的if语句,在这种憎况应使用多个if语句来判断其可能, i6免使用SC1.eCt,语句。 insert语句必须给出字段列表,否则对后续表的扩展回带来组
12、护上的麻烦。当一个So1.语句中涉及到多个表时,必须使用别名来限定字段名,这使其它人阅读起来更方便,避免了含议模阁的引用,其中能够别名中清晰地判断出表名, 确保变和参数在类型和长度与表数据列类型和长度相匹配.5.3注释规范 一般情况下,源程序有效注释量不低于30%以上。说明:注稗的原则是有助于程序阅读理解.便于后期维护,在该加的地方都加了,注释不宜太多但也不能太少,注赭语言须准隔、易懂、简洁。 所有变量定义需要加注释,说明该变量的用途和含义, 注释内容要清晰明了,含义准确,防止注释二义性。 禁止在注将中使用缩写,特别是非常用的缩写. 注释与所描述代码进行同样的缩排。 对程序分支必须书写注释.
13、保证代码和注静的一致性,修改代码同时修改相应的注程,不再有用的注移要同步制除. 注释应与其描述的代码相似,对代码注释应放在其上方或右方(单条语句的注释)相应的位置.不可放在下面. 注释上面的代码应空行隔开, 统一文件头的注释. 在代码的功能、意图层次上进行注释,提供有用额外的信息. 函数应对返回代码详细描述。 尽量使用”父进行注释. 避免在一行代码或表达式的中间插入注释. 所有硬编码必须加注赭,如id=0,则需要优先注样0,的含义,或者在注程中说明对应的字典表.所制01和甯句Hf1.NMSQ1.,以8Q1.99为&B.说明:采用标准SQ1.编写,方便移植时各种数据库之间做对应修改.正例:de1.etefromtab1.e1.;反例:de1.etetab1.e1;敷类St采用答木敷n蜘,尽不罢使用某敷m的她.说明:采用基本数据类型,各种效据库均支持,减少不同版本的维护。设计数据类型和长度时要考虑应用编程开发的方便以及后续可维护性, 对于特别复杂的sq(特别是多层床套,带字句或相关的查询),应先考虑是否设计不当引起.对复杂的Sq1.可以通过程序实现,原则上遵般一句话只傲一件事情,避免多里嵌套SO1.的使用.必要时采用中间表. 对于超过2个以上的大表关联,必须进行执行计划验证,并在设计中有所体现. 避免隐式的数据类型转换. 不要将空的变