EDW项目中ODS源接口表清单维护方案
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源接口表清单维护方案相关推荐
- 在C++项目中引入Lua(AlphaGo使用的方案)
最近大火的AlphaGo,其中的deepmind已经开源,可以到github中下载https://github.com/deepmind/lab·,网上还有一个基于Python开源AlphaGo,那个 ...
- 声光报警器 | 在软件开发项目中加入声光告警、语音通知方案
在IT软件开发项目中,有的客户有这样的需求,希望在公司的生产环境中安装硬件设备,比如声光报警灯.语音通知设备等.当软件中的某些重要信息或者异常事件发生时,向设备发送消息,通过警示音.灯光.语音三个维度 ...
- mysql 常用优化方案_项目中常用的 19 条 MySQL 优化方案
声明一下:下面的优化方案都是基于 " Mysql-索引-BTree类型 " 的 一.EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划. 下面来个简单 ...
- 层次和约束:项目中使用vuex的3条优化方案
问题描述 使用vuex的store的过程中,发现了一些不是很优雅的地方: store层module太多,找state.getter.mutation.action对应的module比较慢. 组件里面m ...
- 在maven项目中打开jsp_零基础在intellij中打开一个项目复制粘贴内容即可运行的java拼图...
我刚学java语言,在学习java简单的拼图游戏时发现网上有些居然要导入调试,而且网上有些说的调试方法不明不白,所以我就分享了我的可直接复制在新项目中的源码,如果要直接要搞好的话就可以用结尾的分享提取 ...
- spring boot 项目源码_Spring Boot2 系列教程(三)理解 Spring Boot 项目中的 parent
前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: <parent><groupId& ...
- IntelliJ IDEA 如何知道项目中的模块数据_如何从项目源中选择模块加入当前项目中(添加模块)_如何移除项目中的模块(移除模块/删除模块)
文章目录 IDEA 如何获取项目的模块数据 从项目源中选择模块加入当前项目中 如何移除项目中的模块 方式一,选择模块的根目录(Content Root),鼠标右键 Remove 方式二,打开[项目结构 ...
- 郴州大数据产业招商会在深举行,中琛源科技签约智慧水务项目
近日,由郴州市人民政府主办,郴州市工业和信息化局.资兴市人民政府承办,深圳市大数据产业协会.深圳市大数据研究与应用协会共同协办的"数聚郴州论道鹏城"2019年郴州大数据产业招商推介 ...
- 使用H5Stream实现rtsp视频流播放,在Vue项目中 (无插件、可多视频源播放、亲测可用)
本文主要介绍用H5Stream 在Web页面播放摄像头的RTSP视频流,从0到1的过程.包括WebSocket代理.h5ss.bat文件 运行一会就自己卡死了.H5ss服务死掉自动定时重启的脚本 等可 ...
最新文章
- 阿里某程序员:我级别P7,工资待遇不比协和主治医师差
- 11 Java程序员面试宝典视频课程之网络编程
- 树莓派python编程自学-两个简易的树莓派初学者Python程序
- 你的第一个AngularJS应用--教程二:基架、建立和測试的工具
- java安全增加url_规范化String以在Java中创建安全URL
- Linux 挂载windows网络共享文件 /etc/fstab功能详解
- linux下tomcat ssl证书,Tomcat部署ssl证书(Linux)
- python之Excel操作
- 我的 2020 总结:跌宕起伏
- python只想调用函数不想执行.py
- thinkphp count distinct
- 如何将优酷独享视频kux格式转换成mp4视频
- Putty 使用记录
- 交大网络教育计算机自测选择题,交大网络计算机组成与系统结构单元自测题.doc...
- java jmail_jmail和javamail的区别
- vue.jsv-html,Vue.js-资料-组件化思想 —下
- 英语语法---四种句子类型的介绍
- 2015年9月11日
- abs、fabs、fabsf函数的用法区别
- python ls命令_ls命令