1、ODS的接口表信息保存在一个EXCEL表中

该表格有如下特性:

1)、所有的接口清单都在一个工作簿中;

2)、每一个sheet中存放来自一类源业务系统表的接口信息;

3)、不同阶段的接口表,只要是来自同一个源业务系统,都放在同一张sheet中,有[阶段]字段加以区分;

4)、每个sheet中也都会有一个[业务系统]字段,但对于同一个sheet,其应是同一值;

5)、对于一个sheet,可以添加一些衍生字段,如[edw期望加载方式]、[接口表测试环境存在情况]、[接口提出时间]等,但最重要的无非是下表所列示的7个;

6)、每一个sheet中都使用相同的表结构格式。

阶段

业务系统

业务系统中文名

业务系统原表名

ODS表名

ODS加载方式

备注

仓库1期

CMIS

授信合同

CMIS_SXHT

ODS_CMS_CMIS_SXHT

增量

 

仓库1期

CMIS

担保合同

CMIS_DBHT

ODS_CMS_CMIS_DBHT

增量

 

仓库2期

WFM

其他抵押资产

BIZ_COLLATERAL_ACCEPTANCEBILL

ODS_WFM_BIZ_COL_BA

全量

 

仓库2期

WFM

产品列表

BIZ_PRODUCT

ODS_WFM_BIZ_PRODUCT

全量

 

2、元数据进仓

初期,ODS要提供的接口表信息是存储在如上的EXECL表格中的。为了入仓及其他一些方面的应用,需要将EXECL中的清单信息导入到数据库中。

1)、存储ODS源接口表的表结构

-- Create table create table EDW_ODS_TAB_SRC ( STAGE VARCHAR2(18), SRC_SYS VARCHAR2(18), SRC_TAB_NAME_CN VARCHAR2(36), SRC_TAB_NAME VARCHAR2(30), ODS_TAB_NAME VARCHAR2(30), ODS_LOAD_TYPE VARCHAR2(18), REMARK VARCHAR2(100) ); -- Add comments to the table comment on table EDW_ODS_TAB_SRC is '数据仓库源数据接口清单表'; -- Add comments to the columns comment on column EDW_ODS_TAB_SRC.STAGE is '阶段'; comment on column EDW_ODS_TAB_SRC.SRC_SYS is '业务系统'; comment on column EDW_ODS_TAB_SRC.SRC_TAB_NAME_CN is '业务系统表中文名'; comment on column EDW_ODS_TAB_SRC.SRC_TAB_NAME is '业务系统表原名'; comment on column EDW_ODS_TAB_SRC.ODS_TAB_NAME is 'ODS表名'; comment on column EDW_ODS_TAB_SRC.ODS_LOAD_TYPE is 'ODS数据加载方式'; comment on column EDW_ODS_TAB_SRC.REMARK is '备注';

2)、生成插入库初始化脚本的perl程序

###################################################################### use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; ###################################################################### $Win32::OLE::Warn = 3; my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); my $fielname = q(C:/Users/nisj/Desktop/仓库源数据接口清单表设计/数据仓库源系统接口表格式.xls); my $Book = $Excel->Workbooks->Open("$fielname"); open(F,'>C:/Users/nisj/Desktop/仓库源数据接口清单表设计/Ods_Interface_Data_Int.SQL'); print F "TRUNCATE TABLE EDW_ODS_TAB_SRC;"; print F "/n"; foreach my $Sheetnum(1..$Book->Worksheets->count){ my $Sheet = $Book->Worksheets($Sheetnum)||die "over"; my $Source_Business_Systems = $Sheet->{Name}; print F "--源业务系统:【$Source_Business_Systems】接口表的加载..."; print F "/n"; my $error_count = 0; for(my $ROW = 2;;$ROW++){ last if ($error_count == 1); ($error_count++,next) unless defined $Sheet->Cells($ROW,5)->{'Value'}; my $stage = $Sheet->Cells($ROW,1)->{'Value'}; $stage=uc($stage); my $src_sys = $Sheet->Cells($ROW,2)->{'Value'}; $src_sys=uc($src_sys); my $src_tab_name_cn = $Sheet->Cells($ROW,3)->{'Value'}; $src_tab_name_cn=uc($src_tab_name_cn); my $src_tab_name = $Sheet->Cells($ROW,4)->{'Value'}; $src_tab_name=uc($src_tab_name); my $ods_tab_name = $Sheet->Cells($ROW,5)->{'Value'}; $ods_tab_name=uc($ods_tab_name); my $ods_load_type = $Sheet->Cells($ROW,6)->{'Value'}; $ods_load_type=uc($ods_load_type); my $remark = $Sheet->Cells($ROW,7)->{'Value'}; $remark=uc($remark); print F "INSERT INTO EDW_ODS_TAB_SRC(STAGE, SRC_SYS, SRC_TAB_NAME_CN, SRC_TAB_NAME, ODS_TAB_NAME, ODS_LOAD_TYPE, REMARK)"; print F "VALUES(TRIM('$stage'), TRIM('$src_sys'), TRIM('$src_tab_name_cn'), TRIM('$src_tab_name'), TRIM('$ods_tab_name'), TRIM('$ods_load_type'), TRIM('$remark'));/n"; } print F "commit;/n"; } # clean up after ourselves $Book->Close; close(F);

3、此方案只是针对ODS源表的接口清单元数据入仓的方便,其他的诸如SDM映射关系元数据入仓都是同样的道理。

EDW项目中ODS源接口表清单维护方案相关推荐

  1. 在C++项目中引入Lua(AlphaGo使用的方案)

    最近大火的AlphaGo,其中的deepmind已经开源,可以到github中下载https://github.com/deepmind/lab·,网上还有一个基于Python开源AlphaGo,那个 ...

  2. 声光报警器 | 在软件开发项目中加入声光告警、语音通知方案

    在IT软件开发项目中,有的客户有这样的需求,希望在公司的生产环境中安装硬件设备,比如声光报警灯.语音通知设备等.当软件中的某些重要信息或者异常事件发生时,向设备发送消息,通过警示音.灯光.语音三个维度 ...

  3. mysql 常用优化方案_项目中常用的 19 条 MySQL 优化方案

    声明一下:下面的优化方案都是基于 " Mysql-索引-BTree类型 " 的 一.EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划. 下面来个简单 ...

  4. 层次和约束:项目中使用vuex的3条优化方案

    问题描述 使用vuex的store的过程中,发现了一些不是很优雅的地方: store层module太多,找state.getter.mutation.action对应的module比较慢. 组件里面m ...

  5. 在maven项目中打开jsp_零基础在intellij中打开一个项目复制粘贴内容即可运行的java拼图...

    我刚学java语言,在学习java简单的拼图游戏时发现网上有些居然要导入调试,而且网上有些说的调试方法不明不白,所以我就分享了我的可直接复制在新项目中的源码,如果要直接要搞好的话就可以用结尾的分享提取 ...

  6. spring boot 项目源码_Spring Boot2 系列教程(三)理解 Spring Boot 项目中的 parent

    前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: <parent><groupId& ...

  7. IntelliJ IDEA 如何知道项目中的模块数据_如何从项目源中选择模块加入当前项目中(添加模块)_如何移除项目中的模块(移除模块/删除模块)

    文章目录 IDEA 如何获取项目的模块数据 从项目源中选择模块加入当前项目中 如何移除项目中的模块 方式一,选择模块的根目录(Content Root),鼠标右键 Remove 方式二,打开[项目结构 ...

  8. 郴州大数据产业招商会在深举行,中琛源科技签约智慧水务项目

    近日,由郴州市人民政府主办,郴州市工业和信息化局.资兴市人民政府承办,深圳市大数据产业协会.深圳市大数据研究与应用协会共同协办的"数聚郴州论道鹏城"2019年郴州大数据产业招商推介 ...

  9. 使用H5Stream实现rtsp视频流播放,在Vue项目中 (无插件、可多视频源播放、亲测可用)

    本文主要介绍用H5Stream 在Web页面播放摄像头的RTSP视频流,从0到1的过程.包括WebSocket代理.h5ss.bat文件 运行一会就自己卡死了.H5ss服务死掉自动定时重启的脚本 等可 ...

最新文章

  1. 阿里某程序员:我级别P7,工资待遇不比协和主治医师差
  2. 11 Java程序员面试宝典视频课程之网络编程
  3. 树莓派python编程自学-两个简易的树莓派初学者Python程序
  4. 你的第一个AngularJS应用--教程二:基架、建立和測试的工具
  5. java安全增加url_规范化String以在Java中创建安全URL
  6. Linux 挂载windows网络共享文件 /etc/fstab功能详解
  7. linux下tomcat ssl证书,Tomcat部署ssl证书(Linux)
  8. python之Excel操作
  9. 我的 2020 总结:跌宕起伏
  10. python只想调用函数不想执行.py
  11. thinkphp count distinct
  12. 如何将优酷独享视频kux格式转换成mp4视频
  13. Putty 使用记录
  14. 交大网络教育计算机自测选择题,交大网络计算机组成与系统结构单元自测题.doc...
  15. java jmail_jmail和javamail的区别
  16. vue.jsv-html,Vue.js-资料-组件化思想 —下
  17. 英语语法---四种句子类型的介绍
  18. 2015年9月11日
  19. abs、fabs、fabsf函数的用法区别
  20. python ls命令_ls命令

热门文章

  1. 组件化开发和模块化开发
  2. 会员模块(会员注册、会员登录、忘记密码、会员中心)
  3. APP测试/web测试/H5测试的区别
  4. 浅谈multer(出错勿喷)
  5. Uber面对都市的复杂交通战推移动速度数据服务
  6. gradle引用本地aar的方法
  7. Http 302和307的区别
  8. 美国留学ib课程和ap课程区别
  9. html杜甫怎么制作,杜甫绝句迟日江山丽教案怎样设计?
  10. 如何把pdf转换成word转换器在线