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

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

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

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

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

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

我发现的其他选项如下

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

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

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

在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的好处是处理将在您的集群中分发,因此您可以完全控制计划.

猜你在找的Oracle相关文章