340 likes | 651 Views
Oracle In-Database MapReduce:当 Hadoop 遇上 Exadata. Kuassi Mensah 产品管理总监. 以下内容旨在概述产品的总体发展方向 。 该内容仅供参考,不可纳入任何合同 。 其内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据 。 此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由 Oracle 自行决定 。. 议题. 大数据与 In-Database MapReduce SQL Map Reduce
E N D
Oracle In-Database MapReduce:当Hadoop遇上Exadata KuassiMensah产品管理总监
以下内容旨在概述产品的总体发展方向。该内容仅供参考,不可纳入任何合同。其内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据。此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由 Oracle 自行决定。
议题 • 大数据与 In-Database MapReduce • SQL Map Reduce • In-Database Container for Hadoop • Oracle 大数据解决方案
大数据概念 MapReduce 基础架构 RDBMS MapReduce (阶段 I) 数据挖掘 (阶段 II) 任何数据 MapReduce规则: 在本地处理数据
当今现实生活中的大数据 MapReduce 基础架构 RDBMS 非结构化数据 (HDFS、NoSQL 等) MapReduce (阶段 I) 数据挖掘 (阶段 II) RDBMS 结构化 数据
当今大数据存在的问题 • 将数据从 RDBMS 传送到MapReduce基础架构 • 过于庞大,难以移动 • 运营问题 • 数据正确性/丢失 • MapReduce基础架构缺乏企业级安全性 • 打破MapReduce规则 • MapReduce基础架构或存储的成本 • 缺乏MapReduce开发技能 • 缺乏MapReduce部署技能
大数据与 In-Database MapReduce Hadoop 集群 RDBMS MapReduce 数据挖掘 非结构化数据 (HDFS、NoSQL 等) In-Database MapReduce MapReduce 结构化数据 (RDBMS) 数据挖掘
In-Database MapReduce 趋势 • 混合平台:DBMS + MapReduce • 项目/产品/计划 • DataStax:Cassandra + Hadoop • HadaptHadoopDB:Postgress + Hadoop • Greenplum HD • MongoDBMapReduce:JavaScript • Aster Data / TeraData • 局限 • 除了依赖DBMS,还依赖Hadoop基础架构 • 源代码兼容性:需要以不同语言重写Hadoop作业。
Oracle 大数据战略 跨数据基础架构的 MapReduce API Hadoop、R、SQL RDBMS (In-Database MapReduce) 大数据机 网页日志 销售记录
Oracle In-Database MapReduce 与 Oracle 大数据解决方案集成
Oracle In-Database MapReduce Oracle database 12c 版本的特性 In-Database Container for Hadoop (目前处于测试阶段) SQL MapReduce (12.1.0.1)
议题 • 大数据与 In-Database MapReduce • SQL Map Reduce • In-Database Container for Hadoop • Oracle 大数据解决方案
SQL MapReduce声明式 MR 分析 现有特性和新特性的集合 • SQL 分析函数 • 用户定义的聚合函数 • 并行管道化表函数 • SQL 模式匹配 MATCH_RECOGNIZE — 新!
SQL 模式匹配 股价 查找股价出现“双底”的 10 天周期 查找事件 A(“撤销权限”),要求在发生此事件后的 1 分钟内紧跟着发生了 3 次或更多次事件 B(“尝试登录”) SQL 模式匹配提供表达性强的语法并能快速执行模式匹配 新的 SQL 构造:MATCH_RECOGNIZE 使用正则表达式语法定义模式 9 12 1 天数 19
SQL 模式匹配 会话化 SELECT user_id, session_id start_time, no_of_events, duration FROM Events MATCH_RECOGNIZE ( PARTITION BY User_ID ORDER BY Time_Stamp MEASURES match_number() session_id, count(*) as no_of_events, first(time_stamp) start_time, last(time_stamp) - first(time_stamp) duration PATTERN (b s*) DEFINE s as (s.Time_Stamp - prev(Time_Stamp) <= 10) ) ORDER BY user_id, session_id;
议题 • 大数据与 In-Database MapReduce • SQL Map Reduce • In-Database Container for Hadoop • Oracle 大数据解决方案
Vanilla Hadoop Hadoop 集群 物理分区 (数据节点) Mappers 具体化 中间数据 Reducers
In-Database Container for Hadoop 组件 • Apache Hadoop • 任务执行:In-Database JVM • 数据分区及任务调度:PQ引擎 • 数据存储:表、外部表、对象视图。 • 数据类型映射:TableReader、TableWriter
In-Database Container For Hadoop RDBMS 服务器 表分区 Mappers 进程 管道化 中间数据 Reducers 进程 并行 DML
In-Database Container For Hadoop 和 Vanilla Hadoop RDBMS 服务器 Hadoop 集群 物理与逻辑数据分区 映射器 具体化 与管道化 中间数据 化简器 并行 DML
In-Database Container for Hadoop总结 • RDBMS 引擎中的“Hadoop容器”:无需Hadoop集群。 • 在原位处理数据:不需要将数据传送到单独的基础架构。 • API 和源代码兼容性:接受当前Hadoop映射器和化简器 • Java 接口:按照 vanilla Hadoop调用Hadoop作业 • SQL 接口:SQL语句中的Map和Reduce步骤
In-Database Container for Hadoop SQL 和 Java 接口 public class WordCount { public static void main() throws Exception { /* Setup the parameters and run the job */ …… job.init(); job.run(); } SELECT * FROM TABLE (HREDUCE_JP_WORDCOUNT(:ConfKey, CURSOR(SELECT * FROM TABLE (HMAP_JP_WORDCOUNT(:ConfKey, CURSOR(SELECT * from InTable))))))
管道化 Hadoop 作业 通过 SQL 接口 管道化Hadoop步骤,不包括针对中间数据的具体化操作 select * from table (HREDUCE_JP_JOB2 (:Confkey2, .... (HMAP_JP_JOB2 (:ConfKey2, .... (HREDUCE_JP_JOB1 (:ConfKey1, .... (HMAP_JP_JOB1 (:ConfKey1, ...), ))));
In-Database Container for Hadoop 预计的特性 • 重用映射器及化简器(包括 R 生成的) • 动态数据分区 • Apache Hadoop API 2.00 • 自定义可写的Hadoop类型 • 序列化数据格式 • 输入格式:HDFS、HBase及其他 • Java 接口(类似于 Vanilla Hadoop驱动程序)。 • SQL 接口:SQL查询中的Hadoop作业步骤 • Mahout
开发/部署 In-Database Container for Hadoop 重用现有Mappers及Reducers 从头开发HadoopMappers及Reducers 创建或更新 Hadoop 作业配置文件 在 RDBMS 中加载所有 Java 代码并创建调用规范 通过 Java 或 SQL 接口调用 Hadoop 作业。 用并行 INSERT 填充输出表
议题 • 大数据与 In-Database MapReduce • SQL Map Reduce • In-Database Container for Hadoop • Oracle 大数据解决方案
Oracle 大数据解决方案 Oracle Endeca Information Discovery Oracle 大数据机 Oracle Exadata Oracle Exalytics InfiniBand InfiniBand Oracle Real-TimeDecisions 获取 组织 分析 决策
Oracle In-Database MapReduce 总结 • 声明式分析 (SQL MapReduce) • 程序化分析(复杂算法、Hadoop) • SQL 查询中的MapReduce作业步骤。 • 定制扩展(输入格式) • RDBMS QoS(如企业级安全性) • 对开发人员和 DBA 友好 • 与 Oracle 大数据解决方案无缝集成