SAPsender中间件2016版
来源:互联网 发布:linux graphics.h 编辑:程序博客网 时间:2024/05/16 18:10
近日,完成了一个集团GOS系统中间件取数需求:
1、读取ORACLE数据库表数据放入SQLserver中.
2、读取ERP-SAP RFC的数据放入SQLserver中.
在需求1中,我们实现了EF6 on oracle ,为以后的联通使用oracle提供了可能。
在程序部署方面,需要注意的是:
1、部署环境需要安装ODTwithODAC1120320_32bit
2、部署环境需要准备 D:\ODT\app\client\james\product\12.1.0\client_1\Network\Admin目录中,有sqlnet.ora和tnsnames.ora文件。
sqlnet.ora文件:
# sqlnet.ora Network Configuration File: D:\app\james\product\11.2.0\client_1\network\admin\sqlnet.ora# Generated by Oracle configuration tools.# This file is actually generated by netca. But if customers choose to # install "Software Only", this file wont exist and without the native # authentication, they will not be able to connect to the database on NT.SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
tnsnames.ora文件:
JCDMS = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.23.1.0 )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = JCDMS ) ))
在需求2中,使用的关键技术有
1、EF6缓存
使用EF6缓存,可以避免LINQ每次都去读取数据库,带来万倍的性能提升,
这个caching组件来源于VS2010的Nuget,要专门下载。
using EntityFramework.Caching;
使用很简单,只要在LINQ读数据时,加入自带的方法就行,还可以设置缓存时间。
var q1 = from c in db_gos.TI_WCAUTO_PRODSTOCK_M.FromCache(CachePolicy.WithDurationExpiration(TimeSpan.FromSeconds(10))) select c;
2、全数据更新策略
经过几次中间件传输的开发,这么可以明确一种全数据传输策略:
第一步,源数据库读取数据放SAPsend内存中
第二步,目的数据库读取数据放SAPsend内存中
第三步,以主键字段作为识别条件,比对原数据库和目的数据库的每一条记录,
如果源数据在目的数据库中有,对主键以外的字段,执行数据库修改操作。
如果源数据在目的数据库中没有,对主键以外的字段,执行数据库插入操作。
可以看到,对数据表中主键的定义也是很重要的。
3、并行多核计算
99%的程序都只用到单核,终于这里有一个使用了多核。在上面第三步,原数据和目的数据的比对,是一个大量计算的过程。intel x64 CPU大力发展的今天,一个最差的服务器至少也有10线程以上,如果在复杂的计算中能够用尽CPU的资源,才能使SAPsend从容应对大数据,全数据更新。MS为我们提供的并行计算粉墨登场,因为使用的多核并行计算,在我的破笔记本i3 3110M 4核上,做10000条数据中比对10000次的操作,只需要几十秒钟完成!
- SAPsender中间件2016版
- SAPsender ETL中间件工具
- SAPsender ETL中间件工具 免费
- 中间件
- 中间件
- 中间件?
- 中间件
- 中间件
- 中间件
- 中间件
- 中间件
- 中间件
- 中间件
- 中间件
- 中间件
- 中间件
- 中间件
- 中间件
- OpenCV入门八:OpenCV新建一个图片,并在图片上画由一点到另一点的直线,采用反走样形式
- 深度学习简单理解
- 前端面试中的常见的算法问题
- 【工具】gulp制作雪碧图
- 使用python抓取分析链家网二手房数据
- SAPsender中间件2016版
- Netty+Zookeeper实现一套简易的Dubbo方案
- winsock -WSAAsyncSelect函数的网络事件类型表
- Git 历险记(三)——创建一个自己的本地仓库
- UML类图新手入门级介绍
- ABAP万能该表程序(谨慎)
- 编程语言简介
- mac下挂在移动硬盘
- Linux字符驱动-scull