当前位置:文档之家› Oracle 大数据连接器

Oracle 大数据连接器

Oracle 大数据连接器Hadoop与 Oracle 数据库集成罗海雄以下内容旨在概述产品的总体发展方向。

该内容仅供参考,不可纳入任何合同。

该信息不承诺提供任何资料、代码或功能,并且不应该作为制定购买决策的依据。

描述的有关Oracle 产品的任何特性或功能的开发、发行和时间规划均由 Oracle 自行决定。

获取、组织、分析所有数据Oracle数据库云服务器获取组织分析和可视化流Oracle商务智能云服务器Oracle大数据机OracleBig DataConnectorsEndeca Information Discovery议题•Oracle Hadoop装载器•Oracle Hadoop分布式文件系统直接连接器•Oracle Data Integrator Hadoop适配器•Oracle R Hadoop连接器•总结概述 MapReduce 工作流的 最后阶段分区表和未分区表在线和离线加载SHUFFLE /SORTSHUFFLE /SORTREDUCE REDUCE REDUCEMAP MAP MAPMAP MAP MAPREDUCEREDUCE ORACLE HADOOP 装载器SHUFFLE /SORTSHUFFLE /SORT REDUCE REDUCE REDUCEMAPMAP MAPMAP MAP MAPREDUCEREDUCE3. 从Reducer节点连接到数据库,并行加载到数据库分区(JDBC或OCI方式)1. 从数据库读取目标表元数据2.执行分区、排序和数据转换在线模式SHUFFLE /SORTSHUFFLE /SORTREDUCEREDUCEREDUCEMAPMAPMAPMAP MAPMAP REDUCEREDUCE1. 从数据库读取目标表元数据2. 执行分区、排序和数据转换3. 从Reducer 节点写入 Oracle Data Pump 文件5. 使用外部表机制并行导入数据库数据 数据数据 数据 数据4. 将文件从 HDFS 复制到数据库可以访问这些文件的位置离线模式4. 1 使用 ODCH 访问 HDFS 中的 datapump 文件(稍后介绍)实施步骤•步骤1: 选中数据输入格式使用内置的格式:Hive表输入-HivetoAvro 或者文本文件-DelimitedText或者自己写Java类,实现接口:org.apache.hadoop.mapreduce.RecordReader以支持自定义格式•步骤2: 创建装载器映射文档创建装载器映射文档,说明目标表,列,以及列和输入数据的映射关系•步骤3: 指定表的元数据指定JDBC连接,装载器自动从数据库中获取,适用于Loader直连接数据库的情况或者通过 OraLoaderMetadata 工具将元数据提取成XML格式的文档,适用于Loader不直接连接数据库•步骤4: 运行装载器Run: hadoop ${OLH_HOME}/jlib/oraloader.jar oracle.hadoop.loader.OraLoader -conf MyConf.xml •步骤5: 如果使用离线模式,则需要处理离线文件优点:与 SQOOP、OraOOP 相比较•将数据库服务器处理压力分流到 Hadoop:–将输入数据转换为最终数据库格式–对数据进行预分区–在表分区内按主键对行进行排序–使用OCI 在线加载模式时,进行高性能的直接路径加载•生成二进制 datapump 文件•跨Reducer的负载均衡议题•Oracle Hadoop装载器•Oracle Hadoop分布式文件系统直接连接器•Oracle Data Integrator Hadoop适配器•Oracle R Hadoop连接器•总结从 Oracle 数据库直接访问对 HDFS 的 SQL 访问外部表视图数据查询或导入DCH DCH外部表DCH DCH DCH DCH SQL 查询InfiniBandHDFS 客户端HDFSOracle 数据库SHUFFLE /SORTSHUFFLE /SORT REDUCE REDUCE REDUCEMAPMAP MAPMAP MAP MAPREDUCEREDUCE数据数据数据数据数据任何 MAPREDUCE 作业外部表SQL 查询ODCHODCH1. 创建外部表2. 发布HDFS数据文件路径3. 通过外部表访问数据实施步骤•步骤1: 定义好外部表CREATE TABLE SALES_HDFS_EXT_TAB ( .. )ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY "SALES_EXT_DIR"ACCESS PARAMETERS (RECORDS DELIMITED BY NEWLINE FIELDS TERMINATED BY ',‘(PREPROCESSOR "HDFS_BIN_PATH:hdfs_stream“ )LOCATION ('sales1','sales2','sales3'));hdfs_stream is a map/reduce program to extract HDFS data file as data stream for Oracle DB.•步骤2: 生成HDFS文件对应的位置文件hadoop jar orahdfs.jar oracle.hadoop.hdfs.exttab.ExternalTable -conf config_file -publish优势•直接访问HDFS 上的数据文件(无需FUSE插件)–创建指向HDFS上文件位置的外部表–使用SQL 从数据库查询数据–需要时将数据加载到数据库•快速数据移动:并行、优化、自动负载平衡•数据文件可以是–带分隔符文本文件格式原始数据–Oracle Loader for Hadoop 创建的Data Pump 文件从 Oracle 数据库访问Hadoop 数据Oracle Loader for Hadoop 用例特性通过JDBC 在线加载最简单的未分区表用例通过直接路径在线加载分区表的快速在线加载通过datapump文件离线加载外部表的最快加载方法数据库服务器上的加载较少避开高峰期Oracle Direct Connector for HDFS从 Oracle 数据库对HDFS 进行 SQL 访问数据留在 HDFS 上从数据库并行访问与Oracle Loader for Hadoop 联用访问由 OLH 创建的文件或导入 Oracle 表议题•Oracle Hadoop装载器•Oracle Hadoop分布式文件系统直接连接器•Oracle Data Integrator Hadoop适配器•Oracle R Hadoop连接器•总结高性能、产能和低TCO基于集的声明式设计 数据变更的捕获E-LT 转换 与 E-T-L可热插拔的架构 任何数据仓库任何计划系统OLTP 数据库源应用程序源传统数据源可插入的知识模块下一代架构“E -LT”加载提取传统 ETL 架构提取加载转换•E-LT 提供了灵活的架构以优化性能 益处:•利用基于集的转换 •无额外的网络传输节点•利用现有硬件转换转换手动脚本手动 脚本通过 E-LT 优化了数据加载可插入的知识模块架构SAP/R3Siebel Log MinerDB2 JournalsSQL ServerTriggersOracle DBLinkDB2 Exp/ImpJMS Queues Check MS ExcelCheck SybaseOracleSQL*LoaderTPump/MultiloadType II SCDOracle MergeSiebel EIMSchemaOracle Web 服务DB2 WebServices现成的知识模块示例元数据的反向工程日志记录(CDC)从源加载到临时存储检查约束条件集成、转换数据服务ODI-EE知识模块能提供灵活性和可扩展性自动生成 MapReduce 代码管理进程加载到数据仓库Oracle Hadoop 装载器Oracle Data Integrator Oracle Data Integrator Hadoop 适配器提高大数据产能和效率SHUFFLE /SORTSHUFFLE /SORTREDUCEREDUCEREDUCEMAPMAPMAPMAP MAPMAP REDUCEREDUCE1. 将本地文件或 HDFS 文件加载到 Hive 数据库数据 数据数据数据 数据HDFSORACLE 数据库ODCH ODCH2. 在 Hive 中转换和验证数据3. 将处理后的数据从 Hive 加载到 Oracle 中Oracle Data Integrator Hadoop 适配器Oracle Data Integrator Hadoop适配器知识模块1. 将本地文件或HDFS 文件加载到Hive 数据库知识模块 -- IKM File to Hive2. 在 Hive 中转换和验证数据知识模块 -- IKM Hive Control Append知识模块 -- IKM Hive Transform知识模块 -- RKM Hive3. 将处理后的数据从Hive 加载到 Oracle 数据库中知识模块 -- IKM File/Hive to Oracle (OLH)Oracle Data Integrator Hadoop适配器优势•提高数据集成性能–在Hadoop 集群中处理大部分任务,以利用Hadoop 集群的资源–使用高性能的Hive知识模块–使用高性能的OLH 知识模块•提高开发和数据集成效率–使用统一的ODI编程接口–使用与SQL类似的HiveQL 语言。

无需编写Map/Reduce程序。

–在 ODI 内进行Hadoop 作业调度议题•Oracle Hadoop装载器•Oracle Hadoop分布式文件系统直接连接器•Oracle Data Integrator Hadoop适配器•Oracle R Hadoop连接器•总结Oracle R Hadoop 连接器实现在原生R 中访问 HadoopORE客户端主机R 引擎Hadoop 集群 软件R 引擎MapReduce节点 HDFSOracle 大数据机Oracle数据库云服务器R 引擎OREORHCORHC原生的R MapReduce原生的R HDFS 访问若不用 ORHC,则需Java 技能— Mapper和Reducerimport java.io.IOException;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapred.MapReduceBase;import org.apache.hadoop.mapred.Mapper;import org.apache.hadoop.mapred.OutputCollector;import org.apache.hadoop.mapred.Reporter;public class WordMapper extends MapReduceBaseimplements Mapper<LongWritable, Text, Text, IntWritable> {public void map(LongWritable key, Text value,OutputCollector<Text, IntWritable> output, Reporter reporter)throws IOException {String s = value.toString();for (String word :s.split("\\W+")) {if (word.length() > 0) {output.collect(new Text(word), newIntWritable(1));}}}} import java.io.IOException;import java.util.Iterator;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapred.OutputCollector;import org.apache.hadoop.mapred.MapReduceBase;import org.apache.hadoop.mapred.Reducer;import org.apache.hadoop.mapred.Reporter;public class SumReducer extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> {public void reduce(Text key, Iterator<IntWritable> values,OutputCollector<Text, IntWritable> output, Reporter reporter)throws IOException {int wordCount = 0;while (values.hasNext()) {IntWritable value = values.next();wordCount += value.get();}output.collect(key, new IntWritable(wordCount));}}在R中直接使用Map/Reduce •dfs <- hdfs.attach("ontime_DB")•res <- hadoop.run(dfs,mapper = function(key, value) {if (key == 'SFO' & !is.na(x$ARRDELAY)) { keyval(key, value)}else {NULL}},reducer = function(key, values) {for (x in values) {sumAD <- sumAD + x$ARRDELAYcount <- count + 1}res <- sumAD / countkeyval(key, res)})> hdfs.get(res)key val11 SFO 17.44828Oracle R Hadoop 连接器架构客户端主机(例如笔记本电脑)R 引擎orhcHadoop 集群软件Java VM服务器(例如大数据机)R 引擎orhc-drv 包 Java VMDBMS 机(例如数据库云服务器)R 引擎ORE 库Oracle 数据库ORE 软件包Hadoop 集群任务节点…任务节点JobTrackerMapReduce 节点HDFS 节点数据节点数据节点…名称节点ORE 软件包ORE 客户端软件包orhcOracle R Hadoop连接器优势•支持透明访问 Hadoop 集群:MapReduce 和 HDFS 文件•R 用户无需学习新语言或了解界面即可使用 Hadoop•可以利用开源的 R 软件包处理 HDFS文件•工作从实验室过渡到 Hadoop 集群上的生产部署无需了解 Hadoop 内幕、Hadoop CLI、或 IT 基础架构•Hadoop 集群管理员无需学习 R 即可在生产中进行 R MapReduce 作业调度议题•Oracle Hadoop装载器•Oracle Hadoop分布式文件系统直接连接器•Oracle Data Integrator Hadoop适配器•Oracle R Hadoop连接器•总结Oracle Big Data Connectors总结•Oracle Loader for Hadoop–实现 Hadoop 数据到 Oracle 数据库的高性能加载•Oracle Direct Connector for HDFS –支持使用 SQL 对 Hadoop 数据进行高性能、高效访问•Oracle Data Integrator–在本地解释 Hive 元数据并生成优化的 HiveQL 代码•Oracle R Connector for Hadoop –支持从 R 对 Hadoop 数据进行交互式访问更多信息•Oracle 技术网Oracle 技术网•在线文档Big Data Connector 在线文档•下载Big Data Connector 下载问答。

相关主题