这个问题有很多层次,所以我会保持它在某种程度上的一般性,以便在正确的方向上给你一个推动。
您提出了两种方法 - 一种将您的数据保存在Oracle中,另一种将其引入Hadoop。
如果您留在Oracle中,您可能需要使用Informatica,Pentaho,SAS DI或SAS Enterprise等DI工具来查询不同模式下的不同表格,提取您需要的数据并从分析中调用本地步骤或通过集成Python,R或Weka脚本。
据我所知,Hadoop本身并不与Oracle集成,而是管理自己的文件系统HDFS。在Hadoop上运行的Sqoop作业可以从Oracle中提取并写入Hive或HBase表,然后您的集成将使用Spark上的Hive Context,从而使您可以执行分析。
您可以使用R或Python直接查询数据库。 Packt在使用R的商业智能中提供了一个指导,包括使用R的ETL(提取 - 转换 - 加载)过程章节。我会告诉你,这不是行业中常见的解决方案,因为R主要是分析师的语言,而不是ETL开发人员的工具。也就是说,R应该能够查询大多数Oracle数据库,除非它们很老,并且执行集成和分析。缺点是R的内核可能需要比RStudio更强大的处理能力和线程 - 这就是为什么Oracle SQL Developer和Toad能够很好地处理大规模查询的原因。 Python可能可以使用CX_oracle库来执行该方法。