PowerExchange实时抽取架构介绍
工作原理
准实时抽取架构图:

以上共有核心业务系统数据库服务器、ETL服务器、BI数据库服务器〔目标数据库服务器〕,三台服务器和ETL客户端(PowerCenter客户端)。其中核心业务系统上有核心系统产生的Redo Log、安装Oracle Logminer、安装PowerExchange,ETL服务器上安装PowerCenter及PowerExhchange的客户端、BI数据库服务器为目标数据库、ETL客户端安装(PowerCenter客户端)。
核心业务系统数据库服务器在进行业务过程中,会一直写Redo Log;Logminer为Oracle日志分析工具,能够对Redo Log及Achive Log进行解析;PowerExhchange为Oracle Logminer和ETL工具PowerCenter的接口,实现对Logminer的封装,通过他来定义要获取哪些表的增量及增量数据放到哪张对应的增量表中〔增量表结构是自己定义〕。
ETL客户端主要用来定义数据的抽取、转换、加载规则,比如:定义要抽取哪些表的增量、抽取的频率、要将增量数据插入到那个数据库〔可以是任何数据库服务器上的表〕。在获取增量后如何处理这些增量(转换)等。
ETL服务器执行客户端定义好的ETL规则。在执行过程中,通过PowerExchange接口实时抽取核心业务系统产生的增量,并根据规则转换处理或不进行转换插入到BI数据库服务器上相应的目标表中。
具体执行流程是,PowerExchange和Logminer以类似服务的形式,在核心业务系统上执行,当ETL服务器启动抽取时,通过PowerExhchange接口调用在核心业务系统上的PowerExchange,PowerExhchange再调用Logminer,Logminer对核心业务系统产生的Redo Log进行解析。解析完成后将数据返回给PowerExhchange,PowerExhchange将数据返回给ETL服务器,ETL服务器根据ETL客户端指定的规则(经过加工处理或不经过加工处理)处理后将增量数据加工到BI数据库服务器相关的表中。
详细介绍




在Oracle服务器端的详细操作如下:
1、 执行以下脚本
说明:如果数据库已经是归档模式则不需要创建和指定归档日志存放路径。
必须创建针对PowerExchange使用的Oracle用户并赋予指定权限,主要是为了对Logminer解析出数据后,存放数据的视图进行操作。
设置Oracle Supplemental Logging,默认情况下。Oracle记录日志,是没有数据表中的字段数据内容,设置Supplemental Logging完成或。Redo log会记录发生变化的每条记录的前像内容和后像内容。只有这样,才能获取到变化记录内容。
创建Logminer 表空间,Logminer在进行数据解析后。会将解析的结果数据保存到,几个视图中。也就是说需要将数据暂存到数据表空间中。
编译Logminer系统包。
将Oracle Catalog复制到redo logs
Logminer根据对数据字典的使用分为三种模式〔数据字典是将redo log中的对象代码转换成具体表名等对象名的映射文件〕,user online Catalog、Extracting a LogMiner Dictionary to the Redo Log Files、Extracting the LogMiner Dictionary to a Flat File。
PowerExchange在调用Logminer时,使用Extracting the LogMiner Dictionary to a Flat File这种模式。这种模式不需生成数据字典文件,即将数据字典内容写入到redo log中,因此没有额外的对数据库的操作。
2、 在Oracle服务器端安装PowerExchange
PowerExchange主要是实现对Oracle Logminer进行封装的工具,Logminer实现了对数据库日志的解析,但是要达到实时获取增量数据的目的需要涉及以下方面的问题
(1) 如何实时进行解析
Oracle Logminer进行日志解析,需要调用Logminer的命令。每次命令可以解析整个redo log内容,也可以按照时间进行解析。但是,需要手工执行命令。PowerExchange利用自身的触发机制,对logminer进行自动的调用,实现准实时增量数据的获取
(2) 解析出的内容的处理
Logminer在解析出变化数据后,会存放到相关视图中。视图存放所有变化数据表的数据,在应用时,必须对视图进行查询,然后将数据转移到相关的数据表中。操作麻烦,需要变成处理。Logminer提供图形化操作页面,通过Navigator进行对解析数据的定义及处理。
(3) 稳定性及效率问题及和ETL工具的结合
直接调用Logminer会涉及到频率、稳定、效率等诸多考虑因素,PowerExchange做为产品这些问题都有具体的处理。同时PowerExchange做为Informatica的一个组建,非常方便的整合到ETL调度体系中。
PowerExchange在oracle服务器端,做为一个服务贮存,监控数据的产生。通过ETL工具将实时抽取配置成一个Informatica Powercenter的WorkFlow。PowerExchange获取到数据后,自动运行此WorkFlow将获取到的数据抽取到定义好的目标表中。
PowerExchange实时抽取架构介绍的更多相关文章
- 1.8-1.10 大数据仓库的数据收集架构及监控日志目录日志数据,实时抽取之hdfs系统上
一.数据仓库架构 二.flume收集数据存储到hdfs 文档:http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#hd ...
- 利用Flume将MySQL表数据准实时抽取到HDFS
转自:http://blog.csdn.net/wzy0623/article/details/73650053 一.为什么要用到Flume 在以前搭建HAWQ数据仓库实验环境时,我使用Sqoop抽取 ...
- 大型网站技术架构介绍--squid
一.大型网站技术架构介绍 1.pv高 ip高 并发量 2.大型网站架构重点 1. 高性能:响应时间,TPS,系统性能计数器.缓存,消息队列等. 高可用性High Availabilit ...
- 基于Storm 分布式BP神经网络,将神经网络做成实时分布式架构
将神经网络做成实时分布式架构: Storm 分布式BP神经网络: http://bbs.csdn.net/topics/390717623 流式大数据处理的三种框架:Storm,Spark和Sa ...
- Kafka设计解析(一)Kafka背景及架构介绍
转载自 技术世界,原文链接 Kafka设计解析(一)- Kafka背景及架构介绍 本文介绍了Kafka的创建背景,设计目标,使用消息系统的优势以及目前流行的消息系统对比.并介绍了Kafka的架构,Pr ...
- Kafka剖析:Kafka背景及架构介绍
<Kafka剖析:Kafka背景及架构介绍> <Kafka设计解析:Kafka High Availability(上)> <Kafka设计解析:Kafka High A ...
- MySQL高级第一章——架构介绍
一.简介 是一个经典的RDBMS,目前归属于Oracle 高级MySQL包含的内容: MySQL内核 SQL优化工程师 MySQL服务器的优化 各种参数常量设定 查询语句优化 主从复制 软硬件升级 容 ...
- 环信ONE SDK架构介绍
环信ONE SDK架构介绍 摘要 环信即时通讯SDK自2014年6月正式公布2.0版本号至今已走过一个年头.从主要的单聊功能,到群聊功能,再到聊天室的实现.SDK无论是功能.稳定性,还是易集成性都在一 ...
- Flume系列一之架构介绍和安装
Flume架构介绍和安装 写在前面 在学习一门新的技术之前,我们得知道了解这个东西有什么用?我们可以使用它来做些什么呢?简单来说,flume是大数据日志分析中不能缺少的一个组件,既可以使用在流处理中, ...
随机推荐
- Python2.7-shutil
shutil 模块,高级文件操作模块,支持文件或文件夹的复制和删除 模块方法: shutil.copyfileobj(fsrc, fdst[, length]):将类文件对象(在python中打开的文 ...
- Docker学习1-基本概念
Docker Docker的基本概念 Docker是为开发人员和系统管理员而设计的以容器的形式开发.部署和运行应用程序的平台.使用Linux容器去部署应用程序称为容器化,利用容器部署应用程序方便简单. ...
- Android向手机通讯录中的所有的联系人(包括SIM卡),向手机通讯录中插入联系人
package com.example.myapi.phonepersion; import java.util.ArrayList; import java.util.List; import an ...
- cloudstack 创建虚拟机失败
Trying to find a potenial host and associated storage pools from the suitable host/pool lists for th ...
- phpstorm开发环境搭建流程
1.下载phpstorm 2.网上找注册码 phpstorm 8 license key Learn Programming===== LICENSE BEGIN =====63758-1204201 ...
- React Native创建一个APP
React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 React 抽 ...
- 【小程序】 的识别
给标签添加 decode="{{true}}" space="{{true}}" 属性 eg: <text decode="{{true} ...
- Junit测试中找不到junit.framework.testcase
在使用Junit进行测试时,出现如下问题: 找不到junit.framework.testcase 解决方法: 选中项目->属性->Java构建路径->库->添加外部jar 在 ...
- 20155327 李百乾 Exp7 网络欺诈防范
20155327 李百乾 Exp7 网络欺诈防范 基础问题回答 (1)通常在什么场景下容易受到DNS spoof攻击 就此次试验来看,被收到NDSspoof攻击,首先要被攻击机扫描,并被设置为目标,所 ...
- VS编程,WPF中,获取鼠标相对于当前屏幕坐标的一种方法
原文:VS编程,WPF中,获取鼠标相对于当前屏幕坐标的一种方法 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/det ...