将数据从oracle移动到HDFS,处理并从HDFS移动到Teradata

前端之家收集整理的这篇文章主要介绍了将数据从oracle移动到HDFS,处理并从HDFS移动到Teradata前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的要求是
  1. Move data from Oracle to HDFS
  2. Process the data on HDFS
  3. Move processed data to Teradata.

还需要每15分钟进行一次整个处理.源数据的量可以接近50GB,并且处理的数据也可以是相同的.

经过互联网搜索后,我发现了

  1. ORAOOP to move data from Oracle to HDFS (Have the code withing the shell script and schedule it to run at the required interval).
  2. Do large scale processing either by Custom MapReduce or Hive or PIG.
  3. SQOOP – Teradata Connector to move data from HDFS to Teradata (again have a shell script with the code and then schedule it).

这是一个正确的选择,这是否适用于所需的时间段(请注意,这不是每日批次)?

我发现的其他选项如下

  1. STORM (for real time data processing). But i am not able to find the oracle Spout or Teradata bolt out of the Box.
  2. Any open source ETL tools like Talend or Pentaho.

分享您对这些选项的想法以及任何其他可能性.

@H_502_40@
看起来你有几个问题,所以让我们试着把它分解.

在HDFS中导入

看起来你正在寻找Sqoop. Sqoop是一个工具,可以让你轻松地将数据传入/传出HDFS,并可以本地连接到包括Oracle在内的各种数据库. Sqoop与Oracle JDBC瘦驱动程序兼容.以下是从Oracle转移到HDFS的方法

sqoop import --connect jdbc:oracle:thin@myhost:1521/db --username xxx --password yyy --table tbl --target-dir /path/to/dir

有关更多信息:herehere.请注意,您也可以直接导入带有Sqoop的Hive表,这样可以方便地进行分析.

处理

正如您所指出的,由于您的数据最初是关系型的,因此使用Hive进行分析是个好主意,因为您可能更熟悉类似sql的语法. Pig是更纯粹的关系代数,语法不是类似sql的,它更像是一个偏好问题,但两种方法都应该可以正常工作.

由于您可以使用Sqoop直接将数据导入Hive,因此您的数据在导入后应该可以直接处理.

在Hive中,您可以运行查询并告诉它在HDFS中写入结果:

hive -e "insert overwrite directory '/path/to/output' select * from mytable ..."

导出到TeraData

Cloudera去年发布了一个连接Teradata for Sqoop的连接器,如here所述,所以你应该看一下,看起来就像你想要的那样.您将如何做到这一点:

sqoop export --connect jdbc:teradata://localhost/DATABASE=MY_BASE --username sqooptest --password xxxxx --table MY_DATA --export-dir /path/to/hive/output

整个过程绝对可以在你想要的任何时间段内完成,最终重要的是集群的大小,如果你想快速,那么根据需要扩展你的集群. Hive和Sqoop的好处是处理将在您的集群中分发,因此您可以完全控制计划.

原文链接:https://www.f2er.com/oracle/205049.html

猜你在找的Oracle相关文章