项目开发周期短,开发的数据量大,需要做的是把流程规范化,还有就是细心,有疑问的地方一定要及时的去沟通,测试发现的问题一定要列个表单,一步步的去做,否则极易发生错误。
<1>投产所需的脚本的开发
项目投产大数据需要需要用到许多的脚本:调度平台和运维平台的配置,建表语句DDL,赋权语句DCL,中间表的赋权语句DML,还有存储过程,这里面又有许多的细节,需要一一的去进行开发。
(1)表和表之间的映射关系的编写开发
把需要用到的字段(业务部门的需要表和对应的字段)顺序确定好(一旦这里字段的顺序被确定下来,那么后续的所有监本里字段的顺序都要和此处保持一致),带上字段对应的数据类型和字段长度(这两点可以去上游表查找,需要和上游表保持一致),确定好表中字段的主键和索引字段(这里也是要和上游表保持一致),找好表之间的关联关系,继而对大数据量的表做出数据的筛选,最后再对表中的字段做出去重的处理(推荐用GROUP BY做去重的处理,而不用DISTINCT)
(某些表的开发可能没有上游表,这就需要和业务或者是部门间协商确定好主键和索引字段)
可能出现的问题:
1:从上游数据库找到的字段的数据类型或者数据类型长度和映射表里的不一致
2:表之间的关联关系错误,得到的select语句得不到预期的运行结果
3:没有用时间变量替换具体的时间日期
(2)运维平台的配置
依据模板对关键的基础位置的表名进行替换和补充,检查各个服务器的IP地址和各个路径的地址的配置,和其它部门沟通明确使用的分隔符号,最后就是关键的select语句的编写,需要在大数据平台测试运行没有问题之后才可以填入配置当中(这里用的是增量数据的抽取的模式,所以才需要编写select语句对日期和关键字段等的数据做出筛选)
可能出现的错误:
1:上传失败,一般都是服务器IP 的问题
(3)调度平台的配置
主要是依据模板,对关键的几处的表名进行替换和补充,后续步骤中可以正常上传即可
进行调度的时候可能出现的问题:
1:模块1报错:
DCP中的SELECT的执行 出现了问题
可能是select语句正常执行,但是得到的是空的结果,所以报错(报错:空文本)
2:模块2报错:调度失败,可能是替换表名的时候不小心替换到了其它的字母,也可能是服务器的IP地址对应的路径里不存在某个文件夹所导致的(报错:远端调用异常)
3:导数路径里的文件不存在,对应的导数路径里的日期存在问题,应该去大数据平台进行查询得到正确的日期的数据,重新导数即可
3:路径推送失败:对应的推送的文件此用户下没有写的权限,应对办法就是删掉这个文件,在推送之后由用户自己去创建并且插入数据,或者是让权限更大的用户去对这个文件夹增加这个用户的权限(这种情况一般不会出现,出现了也一般会是采取第一种方案)
(4)DDL的开发
建表语句的开发包含了临时表和目标表的开发。临时表只需要建表语句即可,但是目标表要写好建表语句和主键、索引还有字段的注释。
注:这里的表(包括临时表和目标表)的字段的顺序需要和映射表里的顺序保持一致
后续的每次对表的结构进行更改的话,需要及时的更新表结构在Oracle中的记录
(5)DCL的开发
这里编写赋权语句的目的是为了让目标表用户和临时表用户可以互相看到对方表中的数据,可以简化很多不必要的切换用户查看数据的操作。(可以大大的提升工作的效率)
(6)DML的开发
这个是对临时表的配置的开发,主要作用是用于对后续的上游数据的卸数操作替工支持。
(7)调用存储过程监本的开发
(8)存储过程的开发