Oracle 到 Hadoop 数据的实时摄取
Posted
技术标签:
【中文标题】Oracle 到 Hadoop 数据的实时摄取【英文标题】:Oracle to Hadoop data ingestion in real-time 【发布时间】:2014-12-12 00:24:08 【问题描述】:我需要将数据从 Oracle 数据库实时摄取到 Hadoop。
在 Hadoop 上实现这一目标的最佳方法是什么?
【问题讨论】:
striim 的 CDC 阅读器,用于写入 kafka 或 hadoop。免责声明 - 我为 striim 工作。 【参考方案1】:这里的重要问题是实时从 Oracle DB 中获取数据。这通常称为Change Data Capture 或CDC。完整的解决方案取决于您如何执行此部分。
与此答案有关的其他事项是:
数据的目标是什么?您打算用它做什么? 只需存储普通 HDFS 文件并使用 Impala 之类的工具访问即席查询? 存储在 HBase 中以便在其他应用中使用? 在像 Storm 这样的 CEP 解决方案中使用? ... 您的团队熟悉哪些工具 您是否更喜欢 DIY 方法,将现有的开源工具粘合在一起并为缺失的部分编写代码? 还是您更喜欢 Informatica 这样的数据集成工具?回到 CDC,有三种不同的方法:
简单:如果您不需要真正的实时性,并且有办法使用 SQL 查询来识别新数据,该查询的执行速度足以满足所需的数据延迟。然后,您可以反复运行此查询并提取其结果(具体方法取决于目标、每个块的大小和首选工具) 复杂:推出您自己的 CDC 解决方案:下载数据库日志,将它们解析为一系列插入/更新/删除,然后将这些内容提取到 Hadoop。 昂贵:购买 CDC 解决方案,为您解决此问题(例如 GoldenGate 或 Attunity)【讨论】:
【参考方案2】:稍微扩展一下@Nickolay 提到的内容,有几个选项,但最好的选项过于基于意见的陈述。
Tungsten(开源)
Tungsten Replicator 是一个开源复制引擎,支持各种不同的提取器和应用程序模块。可以从 mysql、Oracle 和 Amazon RDS 中提取数据,并应用于事务性存储,包括 MySQL、Oracle 和 Amazon RDS; NoSQL 存储(例如 MongoDB)和数据仓库存储(例如 Vertica、Hadoop 和 Amazon rDS)。
Oracle GoldenGate
Oracle GoldenGate 是一个综合性软件包,用于在异构 IT 环境中进行实时数据集成和复制。该产品集支持运营和分析企业系统之间的高可用性解决方案、实时数据集成、事务变更数据捕获、数据复制、转换和验证。它为 HDFS 提供了一个处理程序。
Dell Shareplex
SharePlex™ Connector for Hadoop® 加载并持续将更改从 Oracle® 数据库复制到 Hadoop® 集群。这为您提供了维护源表的实时或近实时副本的所有好处
【讨论】:
【参考方案3】:Apache Sqoop 是一种数据传输工具,用于将批量数据从任何具有 JDBC 连接性(也支持 Oracle)的 RDBMS 传输到 hadoop HDFS。
【讨论】:
Sqoop 不支持实时传输。我正在寻找诸如 Tungsten 复制器工具之类的东西,它可以将 mysql 实时传输到 hadoop。以上是关于Oracle 到 Hadoop 数据的实时摄取的主要内容,如果未能解决你的问题,请参考以下文章