数据仓库编程规范.docx
《数据仓库编程规范.docx》由会员分享,可在线阅读,更多相关《数据仓库编程规范.docx(24页珍藏版)》请在课桌文档上搜索。
1、数据仓库编程规范文档触号:VI.O文档名称:数据仓库编程规范文档(1.0).doc文档编号:文档修订号:文档建立日期:2022-228电子版文件名:未经允许,不可全部或者部份发表、复制、使用于任何目的文档修订摘要日期修订号描述著者审阅者批准人/日期1引言编写目的编写数据仓库开辟规范(dbsql系统)(1.0)的目的是:dbsql封装了访问db2,oracle,greenplum,SybaseTeradata数据库的方法,形成为了一套访问db2,oracle,greenplum,Sybase和Teradata数据库的统一接口。dbsql不仅提供了对db2oracle,greenplum,Syba
2、se和Teradata访问方法的统一,而且提供了一些方法屏蔽5个数据库之间sql语言的差别。这样对于应用程序,只需要编写一套代码,就可以控制db2,oraclee,greenplum,Sybase和Teradata数据库,对开辟工程师而言,只用熟悉sql92的标准sql和此文档sql函数就本文档供以下相关人员阅览:令参于数据仓库设计评审的专家人员;令参预数据仓库软件开辟的软件部人员;令参预数据分析系统测试人员。1.1 背景介绍令开辟的软件系统的名称:数据仓库编程规范令开辟单位:数据分析部令系统使用单位:令该软件系统是数据仓库底层开辟跨平台异构数据仓库的基础平台1.2 术语定义1.3 参考资料参
3、考资料共包括:令Tclk编程权威指南令ExpertOneonOne:OracIe令(Oracle数据库DBA专题技术精粹2DBsqI环境配置2.1 目录设置2.2 环境变量主要环境变量设置包括: $DBSQL:程序安装点,开辟时设置为个人目录。 Sagentlogdir:SCehdUIeSerVer日志采集目录,通常设置为SDBSQMog $AGENTTRACEDIR:日志及TRACE文件目录。(ScheduleServer集,可用于存放调试信息) STOOLS:存放tcl运行环境包及异构数据库编译的动态包安装目录。用户可以在用户目晏下创建.profile文件,例如:exportH0ME=ho
4、medw/dwexportDBSQL=$HoMEexportAGENTLc)GD工R=$DBSQL/logexportAGENTTRACED工R=$DBSQL/trace2.3 开辟与安装开辟时需要作如下设置: 将dss及_8mmon.tcl复制到$DBSQL/bin下; 将_common.cfg复制至IJ$DBSQL/etc下; 参照dwd_trade_base_ds.tcl开辟各处理程序,有关dwd_trade_base_ds.tcl的详细说明参见具体面子;如需要专用配置文件则在$DBSQUetC下创建Vrootname.cfg文件,专用配置文件中允许覆盖公共配置项,但需要慎用。执行方法(
5、以dwd_trade_base_ds.tcl为例):homedw.profiledss-sdwd_trade_base_ds.tcl-t20220228-u100-v200-o注意:1) $DBSQL在安装时被定义为安装点路径,因此,每一个用户需要在开辟时把该变量定义到自己的开辟目录下。2) dss、_cOmmon.tcl为公用程序,mmon.cfg为公共配置,均不得进行修改。3DBsqI编程规范3.1注释A在每一个td源文件头部都要加之关于本文件的注释,列出:文件名、功能描述、作者、住成FI期、修改日志、版权说明塾建议采用如下格式:# *文件名称:# *功能描述:# *创建者:# *创建日期
6、:# *修改日志:# *修改日期修改人修改内容# *# *# *Copyright(c)Co.,Ltd(# *AllRightsReserved.# *元数据注释信息# #METADATABEG工N# *数据仓库元数据配置信息# 工NPUT_TABLE=ODS_SQL_SAMPLE_(YYYYMMDD)注:如果是月表则TABLE_NAME_YYYYMM,多个表名之间以逗号“,“分割,下同# OUTPUjTABLE=DWD_SQL_SAMPLE_YYYYMMDD# DIM_TABLE=DlM_SQL_SAMPLE# TMP_TABLE=ODS_SQL_TEMP# T_TABLE=向来保留不做删除
7、暂时表# MAIN_JOIN_COLUMN=表表和之间的关联字段,但和维表字段的关联无需填写,多个字段之间以逗号“,“分割# HMETADATA_END*在每一个函数头部都要加之关于本函数的注释,列出:函数名称、功能描述、输入参数、输出参数、返回值等。建议采用如下格式:# *函数名称:# *功能描述:# *输入参数:# *输出参数:# *返回值:注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。在程序块的结束行下一行加注释标记,以表明某程序块的结束。当代码段较长,特殊是多重嵌套时,这样做可以使代码更清晰,更便于阅读。if#progr
8、amcodewhileindexMAX_INDEX)# programcode)# endofwhile(index若有较长的表达式或者语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。划分出的新行要进行适当的缩进,使排版整齐,语句可读。if$5PoPrGrP=0&$tmp0prID!=0&$tmp0prID!=1&$operself_node=$tmpNodeIDprogramcodeA程序块的分界符(如大括号和)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、以及讦、for、while,switch语句中的程序都要采用的缩进方式。对
9、双目操作,需要在操作符先后加空格;对单目操作,则不必加空格。settotal_numexpr$a+$bif$total_num=10if!is_null6注释与所描述内容进行同样的缩排。这样可使程序排版整齐,并方便注释的阅读与理解。procExampleFun(paraval)(# codeonecommentsCodeBlockOne# codetwocommentsCodeBlockTwo)# 7将注释与其上面的代码用空行隔开。# codeonecommentsprogramcodeone# codetwocommentsprogramcodetwo避免在一行代码或者表达式的中间插入注释,
10、否则容易使代码可理解性变差。3.3 表名程序名命名规范令表名命名格式说明:层次主题L表内容分表规则令解释:今层次:数据仓库的分层定义,目前数据库自低到高分为ODS,DWD,DW,DM,ST,表命名时根据表具体所属层次填写,如C)DS_TRD_BYD_BASE_YYYYMMDD,DWD_TRD_BYD_BASE_YYYYMMDD今主题:数据仓库的当前主题主题名英文缩写客户主题CRD交易主体TRD产品主题PRD资金FND收费CHG安全SCR今表内容:在表名总长度不超过30个字符,尽量详尽说明表的具体内容,在所有层次中表内容应保持一致。对于浮现一下关键字单词的按以下规则进行缩写,如果缩写后表名部分出
11、现和主题相同的缩写请去除表名中该缩写(如对表DWD_BEYOND_TRADE_FUND_BILL进行规范划缩写则为DWD_TRD_BYD_TRD_FUND_BILL,h现重复TRD,所以最后缩表名应为DWD_TRD_BYD_FUND_BILL):关键字单词缩写BEYONDBYDACCOUNTACTONLINEOLWITHDRAWWTHDRWUNFNSHUNFHDETAILDTLFREEZEFRZINSTRUCTIONISTRNTRADETRD分表规则:日表YYYYMMDD,月表YYYYMM,日汇总DS,月汇总MS,日累计DT1月累计MT令程序名命名格式说明目标表名(去除分表规则部份)程序类型N
12、cl程序名称一律小写令解释:目标表名(去除分表规则部分):目标表名为程序生成数据的表名,如数据ODS_TRD_BYD_BASE_YYYYMMDD-DWD_TRD_BYD_BASE_YYYYMMDD,那末程序命名成dwd_trd_byd_base_dd.tcl程序类型:类型说明英文缩写每日运行程序,且目标表为日表dd每月运行程序,且目标表为月表mm每日运行程序,且目标表为日汇总ds每月运行程序,且目标表为月汇总ms每日运行程序,且目标表为口累计dt每月运行程序,且目标表为月累计mt3.4 标识符命名规则标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或者大家基本可以理解的缩写,避免使人产
13、生误解。较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。例如如下单词的缩写能够被大家基本认可。temp可缩写为tmpmessage可缩写为msgA函数或者过程名建议统一采用匈牙利记法,函数或者过程的名称能够简单体现函数或者过程的功能。GetCustStatusOdsToBaIanceGetNotNuII对于局部变量命名,可以采用全小写加下划线的风格,也可以用单个有具体含义的单词做变量名,但禁止用单个字符(如i、j、k.)做变量名,i、j、k可以做局部循环变量。例如:IogJdtracejdA对于全局变量命名,尽量使用匈牙利记法,首字母小写
14、,与过程名区分。例如:OpTimeCityld3.5 SQL书写规范由于SQL语句在DBSQL系统中是一个非常重要的组成部份,所以对SQL语句的书写规范做单独说明。1、SQL语句的所有表名、字段名全部小写,系统保留字、内置函数名、SQL保留字大写。SELECTemployee-idzemloyee_name,SUM(salary)FROMemployeeGROUPBYemployee_id;连接符or、in、and、以及=、v=、=等先后加之一个空格。卜多表连接时,使用表的别名来引用列。对较为复杂的SQL语句加之注释,说明算法、功能。注释风格:七注释单独成行、放在语句前面。忆应对不易理解的分支
15、条件表达式加注释;七对重要的计算应说明其功能;忆过长的函数实现,应将其语句按实现的功能分段加以概括性说明;七每条SQL语句均应有注释说明(表名、字段名)。七字段别名需要使用AS,如SySdateASNOWJlME七常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围(可选)。SQL语句的缩进风格&一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进;&Where子句书写时,每一个条件占一行,语句令起一行时,以保留字或者者连接符开始,连接符右对齐。wherea.id=$idANDa.payed_status=b.payed_statusANDb.owe_flag=1忆不要采用se
16、lect*的方式查找纪录,必须显示地写出字段名,每一个字段占一行,连接符右对齐。SELECTBUYER_USER_ID,SELLER_L0G工N_EMAIL,BUYER_LOGIN_EMAIL,SELLERJrYPE,BUYER_TYPE,TRADE_FR0M_ID,PARTERNER_ID,OPERAT0R_R。LE,TRADE_STATUS_IDFROMdwd_trade_base_20220228A书写优化性能建议:&避免嵌套连接。例如:A=BandB=CandC=D5曰Where条件中尽量减少使用常量比较,改用主机变量;&尽量避免相同语句由于书写格式的不同,而导致多次语法分析;七尽量使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据仓库 编程 规范
链接地址:https://www.desk33.com/p-405189.html